You can't do that; sorry. You can always turn a string into an IOException if you like. Or you could write a wrapper around IO. But MonadError has a functional dependency, so you can only have one error type per monad. On Jul 14, 2016 6:19 PM, "Corentin Dupont" <corentin.dupont@gmail.com> wrote: Hello, IO is an instance of MonadError IOException... However I also need to make it an instance of MonadError String... Is it possible? I'm trying to instanciate this class: class (Typeable n, Monad n, Applicative n, MonadError String n) => EvMgt n where ... instance EvMgt IO where... Any idea? _______________________________________________ Haskell-Cafe mailing list To (un)subscribe, modify options or view archives go to: http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe Only members subscribed via the mailman list are allowed to post.