
I like the sound of Michael’s definition. Can we document it with the MonadFail class, so that people making instances can find it easily?
Simon
From: Libraries [mailto:libraries-bounces@haskell.org] On Behalf Of Michael Snoyman
Sent: 14 March 2018 14:31
To: Ryan Scott
I expect a MonadFail instance to have a well-behaved notion of failure within the monad. An exception from "pure" code (which is what ST simulates) is not that. On the other hand, perhaps you're right and the instance should be removed for IO as well; I don't have as strong a sense of revulsion, but maybe users should be forced to be explicit with throwIO.
On Wed, Mar 14, 2018 at 9:46 AM, Ryan Scott
mailto:ryan.gl.scott@gmail.com> wrote: 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
mailto:david.feuer@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
mailto:ryan.gl.scott@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 mailing list Libraries@haskell.orgmailto:Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
Libraries mailing list Libraries@haskell.orgmailto:Libraries@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries