| > >* 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 Haskell-prime@haskell.org http://www.haskell.org/mailman/listinfo/haskell-prime