<div>On Sat, Nov 24, 2012 at 5:52 AM, Nathan Hüsken <span dir="ltr">&lt;<a href="mailto:nathan.huesken@posteo.de" target="_blank">nathan.huesken@posteo.de</a>&gt;</span> wrote:<br></div><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">I have an example function in the list monad.<br>
<br>
twoSucc :: Int -&gt; [Int]<br>
twoSucc i = [i+1, i+2]<br>
<br>
Now I want write something similar with the StateT monad transformer.<br></blockquote><div><br></div><div>The simplest addition of StateT would look like this:</div><div><br></div><div>twoSucc :: StateT () [] Int</div><div>
twoSucc i = lift [i+1, i+2]</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
twoSucc :: StateT Int [] ()<br>
twoSucc = do<br>
  i &lt;- get<br>
  put (i+1) -- how do I put [i+1,i+2] here?<br></blockquote><div><br></div><div>In this transformation, you&#39;ve moved your Int result from being the monadic result to being the stored state. I don&#39;t know which transformation you really want.</div>
<div><br></div><div>-Karl</div></div><br></div>