
17 Apr
2003
17 Apr
'03
10:56 a.m.
"Simon Peyton-Jones"
GHC and Hugs both do. In fact, GHC supports arbitrary-rank universal quantification.
The example I tried failed, so I assumed it wasn't supported. $ cat Exists.hs module Exists where data T = forall a. Enum a => Foo (a->a) f :: T -> (Int,Bool,Char) f (Foo g) = (g 0, g False, g 'a') $ ghc -fglasgow-exts -c Exists.hs Exists.hs:4: Couldn't match `Int' against `Bool' Expected type: Int Inferred type: Bool In the first argument of `g', namely `False' In the definition of `f': (g 0, g False, g 'a') Regards, Malcolm