implicit arguments on mjoin
some extra monad instances.