Welcome to the Functional Programming Zulip Chat Archive. You can join the chat here.
Is there a class similar to MonadPlus in which the class's binary operation satisfies the law (a >>= \x -> f x `op` g x) = (a >>= f) `op` (a >>= g) (you could maybe say that >>= distributes over the operation on the left, sort of)? Any level of there-exists-ness on the spectrum from published library to research paper to speculative blog post would be helpful.
(a >>= \x -> f x `op` g x) = (a >>= f) `op` (a >>= g)