On Nov 9, 2014, at 2:11 PM, Simon Peyton Jones <[email protected]> wrote:
> 
> * One other possibility would be two => thus
>       pattern P :: (Eq b) => (Num a, Eq a) => ...blha...
> 

I should note that I can say this in 7.8.3:

foo :: Show a => Eq a => a -> String
foo x = show x ++ show (x == x)

Note that I've separated the two constraints with a =>, not a comma. This 
syntax does what you might expect. (I actually believe that this is an 
improvement over the conventional syntax, but that's a story for another day.) 
For better or worse, this trick does not work for GADT constructors (which is a 
weird incongruence with function type signatures), so adding the extra arrow 
does not really steal syntax from GADT pattern synonyms.

Richard
_______________________________________________
ghc-devs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/ghc-devs

Reply via email to