The monad-batcher package provides the Batcher applicative monad that batches commands for later more efficient execution. See the example. This package can be seen as a lightweight form of Simon Marlow's haxl package.