I just refactored my type and transform system prototype (introduced in [1] but changed since then) from using mtlx [2] (type-indexed monad transformers described in [3]) to mtl using RWST. mtlx allowed me to cleanly separate the various monadic components in a convenient way. Unfortunately, I found it to be too slow. The refactoring was an experiment to see how slow. I was rather surprised:<br>


<br>Running time of a compiled main with a list of tests:<br>  mtlx (7 transformers): 2 min 52 sec<br>  mtl (RWST): 0 min 13 sec<br><br>It&#39;s frustrating to see such a huge performance gap for a better design.<br><br>

Regards,<br>Sean<br><br>[1] <a href="http://splonderzoek.blogspot.com/2011/03/draft-type-changing-program-improvement.html" target="_blank">http://splonderzoek.blogspot.com/2011/03/draft-type-changing-program-improvement.html</a><br>


[2] <a href="http://hackage.haskell.org/package/mtlx" target="_blank">http://hackage.haskell.org/package/mtlx</a><br>[3] <a href="http://www.ittc.ku.edu/%7Emarks/cgi-bin/pubs/monadfactory.pdf" target="_blank">http://www.ittc.ku.edu/~marks/cgi-bin/pubs/monadfactory.pdf</a><br>



<br>