I spoke too soon; I'm seeing the same problem with MonadError.Prelude> :set -XFlexibleContextsPrelude> import Control.Monad.ExceptPrelude Control.Monad.Except> let f = (fail "be Left!" :: (MonadError String m) => m ())Loading package transformers-0.4.2.0 ... linking ... done.Loading package mtl-2.2.1 ... linking ... done.Prelude Control.Monad.Except> f :: Either String ()*** Exception: be Left!Prelude Control.Monad.Except>