stripLeft :: Either a b -> Maybe a stripRight :: Either a b -> Maybe b stripEither :: Either a a -> a filterLeft :: [Either a b] -> [a] filterRight :: [Either a b] -> [b] isLeft :: Either a b -> Bool isRight :: Either a b -> Bool either :: ?? mapEither :: (a -> b) -> (c -> d) -> Either a c -> Either b d swapEither :: Either a b -> Either b a splitEitherList :: [Either a b] -> ([a], [b]) outl :: ?? outr :: ??
type Either = ??
type Maybe = ??