| > >* The ability to put foralls *after* a function arrow is definitely
| > >useful, especially
| > >when type synonyms are involved. Thus
| > > type T = forall a. a->a
| > > f :: T -> T
| > >We should consider this ability part of the rank-N proposal. The
| > >"Practical type
| > >inference" paper deal smoothly with such types. GHC's rank-2 design had an
| > >arbitrary and unsatisfactory "forall-hoisting" mechanism which I hated.
|
| Without impredicativity, putting forall's in type synonyms raises extra
| issues, e.g. a programmer must fully expand the definition of a type T
| to know whether Maybe T is a legal type.
But similar things are already true. Is this legal:
f :: T
f x = x
Well, you have to expand T to find out.
Simon
_______________________________________________
Haskell-prime mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-prime