This sounds like a good idea to me. This might be a good thing to bundle with a separate proposal [1] to generalize replicateM(_) to use Applicative instead of Monad. [1] https://ghc.haskell.org/trac/ghc/ticket/10168