<div dir="ltr">On Wednesday, 17 February 2016 23:00:07 UTC-5, Tyson Whitehead  wrote:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;">... Doing the same thing within the IO monad (effectively lifting the return value above into a unboxed tupple)
<br>
<br>...<br>
<br>you don't get boxing and unboxing the return value between l1 and l2.  This has quite a dramatic effect when l2 doesn't do the that much work (massive amounts of additional memory allocation and a 2x slow down).
<br></blockquote><div><br></div><div>That of course should have read "Doing the same thing within the IO monad (...) you get boxing and unboxing of the return value between l1 and l2..." (i.e., no "don't").</div></div>