when trying to look up the state of this proposal, I noticed:

- there seem to be two parallel versions (probably signatures
   is an older form, and all references ought to point to annotations
   instead?):

   http://hackage.haskell.org/trac/haskell-prime/wiki/HaskellExtensions
   points to:
   http://hackage.haskell.org/trac/haskell-prime/wiki/PartialTypeSigs
   http://hackage.haskell.org/trac/haskell-prime/ticket/40

   whereas

   http://hackage.haskell.org/trac/haskell-prime/report/9
   points to:
   http://hackage.haskell.org/trac/haskell-prime/wiki/PartialTypeAnnotations
   http://hackage.haskell.org/trac/haskell-prime/ticket/86

- the proposal focusses on using "_" as a place holder for unspecified parts of a type or context, without discussing the alternative I'd favour:

   instead of introducing holes in types and contexts to leave
   parts of a declaration unspecified, why not use type subsumption?

   the idea being, that instead of declaring the precise type, one
   would declare an upper bound on the type, and the precise type
inferred needs to be subsumed by the one declared. type and context syntax would remain unchanged, but in addition to "::"
   for precise type annotations, there'd be ":::" (or "::<", or whatever)
   to indicate the difference in intended semantics.

   pro: would easily allow for omission of type details or parts
           of context (a type with more context, or with more specific
           type components, is subsumed by the declaration)

   cons: as long as we only specify an upper bound, the inferred
           type could be more specific than we'd like (we can't say
           that we don't want context, or that some type variable
           must not be instantiated)

cheers,
claus

_______________________________________________
Haskell-prime mailing list
[email protected]
http://haskell.org/mailman/listinfo/haskell-prime

Reply via email to