<div dir="ltr">On Fri, May 31, 2013 at 11:06 AM, Adrian May <span dir="ltr">&lt;<a href="mailto:adrian.alexander.may@gmail.com" target="_blank">adrian.alexander.may@gmail.com</a>&gt;</span> wrote:<br><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">Well I figured out that I should be using the State monad, but it seems not to be behaving like most of the tutorials on the web. Did the syntax change? ....</div>
</blockquote><div><br></div><div style>mtl-2.x changed all the base monads (State, Reader, Writer, etc.) from standalone to being transformers atop an Identity monad; this cleans up the implementation considerably (since we don&#39;t have almost exactly the same code for both the standalone and transformer versions, but means that all uses of the standalone constructors must be replaced with functions that build the appropriate transformer. (e.g. State becomes state, unless you want to spell it out as StateT Identity.)</div>
<div style><br></div><div>-- <br></div></div><div dir="ltr"><div>brandon s allbery kf8nh                               sine nomine associates</div><div><a href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a>                                  <a href="mailto:ballbery@sinenomine.net" target="_blank">ballbery@sinenomine.net</a></div>
<div>unix, openafs, kerberos, infrastructure, xmonad        <a href="http://sinenomine.net" target="_blank">http://sinenomine.net</a></div></div>
</div></div>