[Haskell-cafe] MonadFail with type parameter for error message

David Feuer david.feuer at gmail.com
Tue Nov 30 19:34:31 UTC 2021


Because that wouldn't actually help. You couldn't optimize it for different
stringy types. Using instance overlap (which is evil), you *could* do
something similar.

class Monad m => MonadFail s m where
  fail :: s -> m a
instance {-# OVERLAPPABLE #-} (MonadFail String m, IsString s) => MonadFail
s m where
  fail = fail . toString

I don't think this is terribly likely to work well in practice.

On Tue, Nov 30, 2021, 2:16 PM Daneel Yaitskov <dyaitskov at gmail.com> wrote:

> Dear Cafe,
>
> MonadFail.fail takes String.
> I wasn't able to find MonadFail for custom error type.
> Is there any proposals to base?
>
> Let's say Data.Text, which gains popularity with OverloadedStrings
> extensions.
>
> class MonadFail m where
>   fail :: String -> m a
>
> Why not ?
> class MonadFail m where
>   fail :: (forall s. IsString s => s) -> m a
>
> class MonadFailWith m s where
>   fail :: s -> m a
>
>
>
>
>
>
>
> --
>
> Best regards,
> Daniil Iaitskov
>
>
>
> _______________________________________________
> 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20211130/daa6e7ed/attachment.html>


More information about the Haskell-Cafe mailing list