Fwd: Problem with forall type in type declaration

Oops, forgot to reply-all again...
---------- Forwarded message ----------
From: Chris Smith
Sorry, it was just a persudo code. This might be more clear:
run :: (Monad m) => m IO a -> IO a
Unfortunately, that's not more clear. For the constraint (Monad m) to hold, m must have the kind (* -> *), so then (m IO a) is meaningless. I assume you meant one of the following: run :: MonadTrans m => m IO a -> IO a or run :: MonadIO m => m a -> IO a (Note that MonadIO is the class from the mtl package; there is no space there). Can you clarify which was meant? Or perhaps you meant something else entirely? -- Chris Smith
participants (1)
-
Chris Smith