<br><div class="gmail_quote">On Thu, Aug 20, 2009 at 11:23 PM, David Menendez <span dir="ltr">&lt;<a href="mailto:dave@zednenem.com">dave@zednenem.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">The important things to note are (1) getChar# depends on the token</div>
returned by putChar#, thus guaranteeing that putChar# gets executed<br>
first, and (2) putChar# and getChar# are impure and cannot normally be<br>
defined in Haskell.<br>
<font color="#888888"></font></blockquote><div><br></div>Ok, that I understand. But if getChar# and putChar# would be pure functions that just generate some output string / consume some input string, then this realworld token passing would not work when used with interact, since neither the output or input string really depends on the dummy token, unless using a seq again (or strictness annotation, which was explained to be just syntactic sugar for seq)? But how would we then make a pure monad that can be used as in my example together with interact? I see no reason why to put everything in IO when it just comes to converting a stream of inputs to a stream of outputs? So interact really is useless, unless you just fmap something over the input or when the output is independent from the input?</div>
<div class="gmail_quote"><br></div><div class="gmail_quote">As Ryan said, I could use his MonadPrompt for this, but that&#39;s a different approach (and maybe the only correct one)</div><div class="gmail_quote"><br></div>
<div class="gmail_quote">I&#39;m still curious to see how an FRP solution would look for simple console based IO though :-) Probably a good exercise to do.</div><div class="gmail_quote"> </div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<font color="#888888"><br>
--<br>
</font><div><div></div><div class="h5">Dave Menendez &lt;<a href="mailto:dave@zednenem.com">dave@zednenem.com</a>&gt;<br>
&lt;<a href="http://www.eyrie.org/~zednenem/" target="_blank">http://www.eyrie.org/~zednenem/</a>&gt;<br>
</div></div></blockquote></div><br>