Removing MonadFail from Monad

Roman Cheplyaka roma at
Mon Dec 16 23:32:56 UTC 2013

* David Luposchainsky <dluposchainsky at> [2013-12-16 23:57:19+0100]
> > I don't understand the restriction "is defined via data" since I am not
> > aware of defining constructors outside of data or with something other
> > than the data keyword.  Please clarify.
> I meant "data and not newtype". If "Only" is a newtype data constructor,
> the pattern is irrefutable by design, is it not?

One notable case of one-constructor types defined not via data is
tuples. You certainly don't want warnings for that!

Regarding newtypes vs data, I'm not so sure it should make a difference.
It's customary to make one-field types newtypes, and then, if one
realizes that more fields are needed, turn them into proper data types.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <>

More information about the Libraries mailing list