module Either ( maybeToLeft , maybeToRight , leftToMaybe , rightToMaybe , maybeToEither ) where leftToMaybe :: Either l r -> Maybe l leftToMaybe = either Just (const Nothing) rightToMaybe :: Either l r -> Maybe r rightToMaybe = either (const Nothing) Just maybeToRight :: l -> Maybe r -> Either l r maybeToRight l = maybe (Left l) Right maybeToLeft :: r -> Maybe l -> Either l r maybeToLeft r = maybe (Right r) Left maybeToEither :: Monoid b => Maybe a -> Either b a maybeToEither = maybe mempty