Asked and answered. Join is not among the monad axioms. It is not mentioned in the definition of a monad in Categories for the Working Mathematician, which mentions only right identity, left identity (the lifts), and associativity axioms (composition). Join is an optional implementation detail, and does not need to be exposed **at all** for something to qualify as a monad.

I’m not claiming that every M(a) => a qualifies in the context of a monad. Only that there is a symmetry between lift: a => M(a) and join: M(a) => a which is just a simplified way of viewing M(M(x)) => M(x) which makes the symmetry more obvious, and is **NOT a claim that any M(a) => a qualifies** in the context of a monad. The claim I did make in a previous comment is **that there is no law that says a monad can’t use a join that simply returns a from M(a)**. You obviously can for some monads, math proofs in code in a previous reply, which maybe you did not bother to read. If I’m wrong about that, please cite your source and quote the relevant material. I’m always open to learning new things.

Otherwise, you’re arguing with a straw man, unless you’re claiming that M(a) => a is NOT a member of M(M(x)) => M(x)?

Or am I missing something else?