I don't think some of the things he writes, like "MonadIO m =&#62; m () -&#62; IO ()" are generally possible, for example.  There are specific instances of MonadIO (ErrorT, etc.) that have a function that does that, but MonadIO itself only has the liftIO function, which is "MonadIO m =&#62; IO a -&#62; m a".