On Wed, 17 Nov 1999, Koen Claessen wrote:
>   foo :: (..) => a -> b -> c

This is certainly something I've been bitten by. 

I like ? better than .., but maybe the Haskell "don't care"-symbol _
could be even more suggesting:

  q :: a -> _ -> c
  q    a    _ =  c

Syntactically this is closer to what is currently allowed as type
variables and it would easily (in the sense that such a production is in
the grammar already, while ? is an operator character) extend to "named
meta variables" _a, _b and so on.

Named meta variables would probably be useful, but maybe add
sufficiently to the complexity of type checking to not be worth while.
Semantically it also looks a little "discontinuous" to have _ stand for a
new meta variable each time, while _a is always the same.

As a side note, incomplete terms (terms with _ or ? in them) are
extensively used in the Alf/Agda/Alfa dependently typed languages.

Patrik Jansson


Reply via email to