>>> Data.Either.Combinators.fromLeft :: a -> Either a b -> a > > This is the thing we want. Oh indeed, derp; still had the first suggestion in mind. (b -> (a -> b) -> Either ..) On this one i am neutral.