Manuel M T Chakravarty wrote:
Simon Peyton-Jones:
Nothing deep. Just that "=" means so many things that it seemed better to use a different notation.

Also, using "=" would have entailed significant changes to GHC's parser. Type constraints are in the same syntactic category as types and types can appear as part of expressions in type annotations (such as "e::t") and on the lhs of let-bindings (such as "let x::t = e in e'"). Especially, considering the later, imagine "t" can now also contain the symbol "=" which in the grammar serves as a separator between the lhs and the rhs of a let bindings.

I actually did try using "=", but it got too messy.

oh, because it doesn't require parentheses:
f :: a ~ b => a -> b
f = id
and also because, it sounds like you say, current parser looks at "type-class" and "type" expressions the same, so one doesn't really want to distinguish them just for this.
x :: a = b => c = x
really is too confusing, even if I can't see any way to make it ambiguous given current set of available language extensions.

okay!

Isaac
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to