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

Reply via email to