<p dir="ltr">Urk.. I mean there's no need to execute the readLn action.</p>
<div class="gmail_quote">On Apr 18, 2016 4:18 PM, "David Feuer" <<a href="mailto:david.feuer@gmail.com">david.feuer@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">If<br>
<br>
f :: a -> IO a<br>
<br>
for some a, and I want to use<br>
<br>
mfix f<br>
<br>
then f must not inspect its argument in any way, or the computation<br>
will get stuck. In some cases, this seems a bit harsh. For example,<br>
<br>
mfix (\x -> fmap (3 :) (x `seq` readLn))<br>
<br>
looks perfectly reasonable. There is no need to inspect the return []<br>
action to know that the final result of the computation will begin<br>
with 3:. Is there a lazy IO mapping function somewhere that can work<br>
such magic?<br>
</blockquote></div>