On Mon, 10 Nov 2014, Richard Eisenberg wrote:

pattern P :: forall a. Num a => forall c. (Eq a, Ord Bool, Show c) => c -> Bool 
-> T a Bool
pattern C :: (Eq b, Num b) => () => b -> c -> X Maybe (Maybe b)

Of course, you can drop the `forall`s in `P`'s type.

This has, I believe, several advantages over the other order:
- If you write the `forall`s in, the scope builds left to right. In the other order, the scoping is very bizarre.

I am by now convinced that allowing two separate sets of `forall`s is overkill, we don't need the extra specificity. One `forall` with a mixed bag of type variables should be enough.
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs

Reply via email to