> Propagating "Nothing" is not inherent to the Maybe data type, it's just a convenient behavior to have.
nitpick about this particular example: is there another lawful implementation of Monad for Maybe? i can't think of any, apart from the trivial
pure _ = Nothing
_ >>= _ = Nothing
(eyeballing the lawfulness, but it'll all be `Nothing` so all the equalities should hold, trivially :D)