This is an issue that sometimes comes up (Traversable.mapM_ missing).
The documentation says something akin to “Evaluate each monadic action in the structure from left to right, and ignore the results.” and I copied that, should “discard the result” be used instead?
Edit: Or “discarding the result”.
I think this is a great idea, unless you want to propose re-exporting Data.Foldable from Data.Traversable.
That would break an incredibly large amount of code. Please, God, no.
Every re-export means someone somewhere winds up having to hide 2 dozen hiding clauses in a module somewhere twice or switch their code to qualified imports.
I've been meaning to fix the fact that all the modules in mtl re-export Control.Monad and therefore bring into scope all sorts of names. It is great fun when you don't want one of those names to be imported, and you are working with several transformers (e.g. to provide instances) because now you wind up hiding it from 6 modules. =/
LGTM. Personally I don't see a need for more examples at least for the elementary operations from the patch. It's their generality, the type machinery behind them that is interesting and non-trivial, not their behaviour.