| p :: Maybe ((?param :: a) => a) | p = return g; Neither GHC nor Hugs allow a polymorphic type variable (the argument of Maybe) to be instantiated to a polymorphic type. Systems which do are called 'impredicative' (or is it the other way around?). Going impredicative has big negative implications for type inference, and I have always steered well clear!
| Not only that, but they both complain about this: | | q :: b -> ((?param :: a) => a) | | ...even though it can only mean this: | | q :: (?param :: a) => b -> a Hmm. GHC is supposed to "hoist" for-alls that occur at the right hand end of function arrows (yet another non-std extension), but it obviously isn't quite working right. I'll look into that. Simon _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
