Specifically - I want to chain a bunch of processing in a pipeline and “return early” in a monadic/railway-oriented sort of way, but it’s not really an Error/Success - so the naming of Left/Right works better for this…

Option and Result have all the functor/applicative/monad methods I think (functor is map, applicative is can’t remember, monad is and_then). It’s just you can’t write code that’s abstract over them (yet). You can do duck typing with macros (provided e.g. all the bind methods are called and_then :P)