module Data.Either.HT ( mapLeft, mapRight, mapBoth, ) where mapLeft :: (a -> b) -> Either a c -> Either b c mapLeft f = either (Left . f) Right mapRight :: (b -> c) -> Either a b -> Either a c mapRight f = either Left (Right . f) mapBoth :: (a -> c) -> (b -> d) -> Either a b -> Either c d mapBoth f g = either (Left . f) (Right . g)