From: <a href="mailto:oleg@okmij.org">oleg@okmij.org</a><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
Just for the record: the library IterateeM.hs, uses NO extensions to<br>
Haskell98, let alone Haskell2010. The library as written requires<br>
LowLevelIO.hs, which uses FFI (which has been Haskell98 addendum and<br>
is in proper Haskell2010). The sample code, Wc.hs, for example, is<br>
Haskell98. So, the iteratee can be written with no extensions<br>
whatsoever.<br></blockquote><div><br>Related to this, IterateeM.hs and LowLevelIO.hs don&#39;t use runtime exceptions either, which I consider a particularly nice feature.<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<br>
In particular, IterateeM does not use any monad transformer library<br>
(although it could have). I found that the trouble of writing a state<br>
monad for a particular state is negligible compared to the pain of<br>
choosing a particular monad transformer library, and especially the<br>
pain inflicted on the users who have to deal with many a conflicts of<br>
monad transformer libraries.<br>
<br>
<br>
&gt; The problem was that I wished Zippee. It means that external enumerator<br>
&gt; must be &quot;suspended&quot; at some points so Zippee can process elements from<br>
&gt; both left and right streams in desired order. It makes any other<br>
&gt; approach I considered impossible to use.<br>
<br>
The file IterateeN.hs demonstrates zipping two streams together (in<br>
lock-step and not in-lockstep). It turns out, the existing Iteratee<br>
interface and type suffices. This is described in more detail in:<br>
<br>
Parallel composition of iteratees: one source to several sinks<br>
<a href="http://okmij.org/ftp/Streams.html#1enum2iter" target="_blank">http://okmij.org/ftp/Streams.html#1enum2iter</a><br>
<br>
Parallel composition of streams: several sources to one sink<br>
<a href="http://okmij.org/ftp/Streams.html#2enum1iter" target="_blank">http://okmij.org/ftp/Streams.html#2enum1iter</a><br></blockquote><div><br>It seems I was mistaken in my last reply.  That&#39;s what I get for answering before I read through all my weekend email.<br>
<br>John<br></div></div>