<div dir="auto"><div>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.</div><div dir="auto"><br></div><div dir="auto">class Monad m => MonadFail s m where</div><div dir="auto">  fail :: s -> m a</div><div dir="auto">instance {-# OVERLAPPABLE #-} (MonadFail String m, IsString s) => MonadFail s m where</div><div dir="auto">  fail = fail . toString</div><div dir="auto"><br></div><div dir="auto">I don't think this is terribly likely to work well in practice.</div><div dir="auto"><br><div class="gmail_quote" dir="auto"><div dir="ltr" class="gmail_attr">On Tue, Nov 30, 2021, 2:16 PM Daneel Yaitskov <<a href="mailto:dyaitskov@gmail.com">dyaitskov@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Dear Cafe,</div><div><br></div><div>MonadFail.fail takes String. <br></div><div>I wasn't able to find MonadFail for custom error type.</div><div>Is there any proposals to base? <br></div><div><br></div><div>Let's say Data.Text, which gains popularity with OverloadedStrings extensions.</div><div><br></div><div>class MonadFail m where</div><div>  fail :: String -> m a</div><div><br></div><div>Why not ? <br></div><div><div>class MonadFail m where</div><div>  fail :: (forall s. IsString s => s) -> m a</div><div><br></div><div><div><div>class MonadFailWith m s where</div><div>  fail :: s -> m a</div><div><br><br></div><div><br></div></div></div><div><br><br></div></div><div><br></div><div><br>-- <br><div dir="ltr" data-smartmail="gmail_signature"><br>Best regards,<br>Daniil Iaitskov<br> <br><br><br></div></div></div>
_______________________________________________<br>
Haskell-Cafe mailing list<br>
To (un)subscribe, modify options or view archives go to:<br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" rel="noreferrer noreferrer" target="_blank">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br>
Only members subscribed via the mailman list are allowed to post.</blockquote></div></div></div>