I note that GHC by default gives this type for "return id": (return id) :: forall m a. (Monad m) => m (a -> a)
Wouldn't this be more general: (return id) :: forall m. (Monad m) => m (forall a. a -> a) (return return) :: forall m. (Monad m) => m (forall m1 a. (Monad m1) => a -> m1 a) ...? Is this something GHC could ever do, or are there good reasons why it would never work in Haskell? -- Ashley Yakeley, Seattle WA _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell