title: How do you use the latest version (0.8.1.2 at time of writing) of the iteratee library?
body: <p>I've read tutorials on the iteratee and enumerator concepts, and have implemented a sample version as a way of learning how they work. However, the types used in the iteratee package are very different than any of the tutorials I have found. For example, <code>Iteratee</code> is defined as:</p>
  
  <pre><code>Iteratee     
     runIter :: forall r. (a -&gt; Stream s -&gt; m r) 
             -&gt; ((Stream s -&gt; Iteratee s m a) 
             -&gt; Maybe SomeException -&gt; m r) 
             -&gt; m r
  </code></pre>
  
  <p>I really don't understand what I am meant to do with that. Are there any tutorials on using this version, and why it was written this way (ie what benefits this has over the original way Oleg did it).</p>