<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>[tech]: TCM is using IORef to hold the states. Is IORef significantly faster than StateT or other equivalent? If references are really superior, how about the ST monad?<br>
</div></div></div></blockquote><div><br></div><div>I don't remember the exact numbers, since it was a while since I changed it, but I do remember that it made a significant difference. However, changing the monad implementation should be a very local change so I encourage you to try it out. ST have a couple of problems: extra parameter cluttering things up, and you can't do IO. We are using IO for debug printing and for exceptions. Using ErrorT or similar for exceptions I'm pretty sure would kill performance.</div>
<div><br></div><div>/ Ulf</div><div><br></div><div> </div></div></div></div>