Alternative instance for Either
Nathan van Doorn
nvd1234 at gmail.com
Thu Jun 14 10:37:24 UTC 2018
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
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.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Libraries