Alternative instance for Either
Tony Morris
tonymorris at gmail.com
Thu Jun 14 10:42:06 UTC 2018
Alternatively :) or more like, something to think about, an Alt instance
for Either.
class Alt f where
(<!>) :: f a -> f a -> f a
instance Alt Either where
Right b <!> _ = Right b
Left a <!> x = x
https://hackage.haskell.org/package/semigroupoids/docs/Data-Functor-Alt.html
There is something iffy about Monoid e => Alternative (Either e) but I
can't put my finger on it.
On 06/14/2018 08:37 PM, Nathan van Doorn wrote:
> Proposal: add:
>
> instance Monoid e => Alternative (Either e) where
> empty = Left mempty
> Left a <|> Left b = Left (a `mappend` b)
> Right a <|> _ = Right a
> _ <|> Right b = Right b
>
> instance Monoid e => MonadPlus (Either e) where
> ...
>
> to base.
>
> This is a reasonably obvious instance which I am pretty sure is law
> abiding.
>
> It'd be useful for defining a series of computations which may fail,
> where we only care about one success.
>
>
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20180614/13dda0ff/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20180614/13dda0ff/attachment.sig>
More information about the Libraries
mailing list