Parameterizable list monad, with an inner monad.
Note: this does not yield a monad unless the argument monad is commutative.