option: equals and test for monad constraints