[Haskell-cafe] another instance of MonadError

David Feuer david.feuer at gmail.com
Mon Jul 18 19:12:53 UTC 2016


Type synonyms change nothing. I don't think your current line of
questioning is going to lead anywhere useful. Could you give some more
context for your original question? If you tell us what you're
ultimately trying to accomplish, someone might be able to find a way
to do it.

On Mon, Jul 18, 2016 at 9:01 AM, Corentin Dupont
<corentin.dupont at gmail.com> wrote:
>
> I could also do my own MonadError class also, no?
> However this doesn't work:
>
>
>  {-# LANGUAGE ConstraintKinds #-}
>
> type EvError a = MonadError String a
>
> class (Typeable n, Monad n, Applicative n, EvError n) => EvMgt n where ...
>
> instance EvMgt IO where...
>
>
> How can I create a new class "EvError" that inherits all the functions of
> "MonadError String"?
>
>
> On Fri, Jul 15, 2016 at 12:24 AM, David Feuer <david.feuer at gmail.com> wrote:
>>
>> 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 at 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.
>>
>>
>


More information about the Haskell-Cafe mailing list