<div dir="ltr">Proposal: add:<div><br></div><div><font face="monospace, monospace">instance Monoid e => Alternative (Either e) where</font></div><div><font face="monospace, monospace">  empty = Left mempty</font></div><div><font face="monospace, monospace">  Left a <|> Left b = Left (a `mappend` b)</font></div><div><font face="monospace, monospace">  Right a <|> _ = Right a</font></div><div><font face="monospace, monospace">  _ <|> Right b = Right b</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="monospace, monospace">instance Monoid e => MonadPlus (Either e) where</font></div><div><font face="monospace, monospace">  ...</font></div><div><font face="monospace, monospace"><br></font></div><div><font face="arial, helvetica, sans-serif">to base.</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">This is a reasonably obvious instance which I am pretty sure is law abiding.</font></div><div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">It'd be useful for defining a series of computations which may fail, where we only care about one success.</font></div></div>