Could iteratee depend on mtl instead of transformers?

Antoine Latter aslatter at
Tue Nov 17 21:56:21 EST 2009

On Tue, Nov 17, 2009 at 6:33 PM, Edward Kmett <ekmett at> wrote:
> I gather from the discussion that State is no longer separate from StateT,
> along with Reader, Writer, RWS, Error, mutatis mutandis to obviate the need
> for both a base monad and transformer.

Every time this comes up I grow paranoid that there is some sort of
general overhead to evaluating an expression of type "StateT s
Identity a" vs "State s a".

So I finally benchmarked it using the example code listed in
Control.Monad.State, and found no difference whatsoever.

Here's the source:

I guess parsec is the odd one out, where there is a difference. Or I
was measuring something else back when I had parsec benchmarks set up.


More information about the Libraries mailing list