<br><div class="gmail_quote">On Jan 30, 2008 12:44 AM, Adam Smyczek &lt;<a href="mailto:adam.smyczek@gmail.com">adam.smyczek@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br><br>My application has to manage a data set. I assume the state monad is<br>designed for this.<br>The state changes in functions that:<br>a. perform IO actions and<br>b. return execution status and execution trace (right now I&#39;m using<br>
WriteT for this).<br><br>Is the best solution:<br>1. to build a monad stack (for example State -&gt; Writer -&gt; IO) or<br>2. to use IORef for the data set or<br>3. something else?<br><br>Are monad stacks with 3 and more monads common?<br>
How could an example implementation look like?<br></blockquote><br>Hi Adam,<br><br>Indeed, this is quite common.&nbsp; You may be interested in reading <br><br>&nbsp; <a href="http://cale.yi.org/index.php/How_To_Use_Monad_Transformers">http://cale.yi.org/index.php/How_To_Use_Monad_Transformers</a><br>
<br>Good luck!<br>-Brent<br></div><br>