Proposal: Remove the bogus MonadFail instance for ST

Ryan Scott ryan.gl.scott at gmail.com
Wed Mar 14 13:46:50 UTC 2018


OK. You used the phrase "utterly contrary to the purpose of
MonadFail", so I'm trying to figure out exactly what you mean here.
Prima facie, the purpose of MonadFail (at least, as explained in its
Haddocks) is to provide a type class–directed way of desugaring
partial pattern matches in do-notation. With this in mind, the current
MonadFail instance for ST doesn't seem too offensive.

However, I think you have some additional property in mind that you
feel the MonadFail ST instance runs afoul of. Do you mind explaining
in further detail what this is? (I'm not trying to be snarky here—I
genuinely don't know what you're getting at.)

Ryan S.

On Wed, Mar 14, 2018 at 9:41 AM, David Feuer <david.feuer at gmail.com> wrote:
> I am not. I think that instance is fairly legitimate, as it raises an
> IO exception that can be caught in IO. IO's Alternative instance is a
> bit shadier, but that's not a topic for this proposal either. ST is an
> entirely different story, and I'm sorry I accidentally mixed it in.
>
> On Wed, Mar 14, 2018 at 9:05 AM, Ryan Scott <ryan.gl.scott at gmail.com> wrote:
>> It's worth noting that the MonadFail instance for IO [1] also simply throws
>> an error (by way of failIO). Are you proposing we remove this instance as
>> well?
>>
>> Ryan S.
>> -----
>> [1]
>> http://git.haskell.org/ghc.git/blob/cb6d8589c83247ec96d5faa82df3e93f419bbfe0:/libraries/base/Control/Monad/Fail.hs#l80
>>
>> _______________________________________________
>> Libraries mailing list
>> Libraries at haskell.org
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>>


More information about the Libraries mailing list