
On Mon, Aug 23, 2010 at 6:16 AM, John Lato
It's not necessary to understand CPS to use CPS-based iteratees. The CPS implementation generally simplifies the types and removes the necessity for special combinators like ($$) and (>>==), so I strongly suspect newcomers will find it easier to use than other variants (although unfortunately I can no longer say this from personal experience). It incorporates the best features of Oleg's two implementations in IterateeM.hs. The only drawback is the added thought overhead of CPS, but users need not be aware of this for the most part.
I agree with you, John. Personally, I find the CPS version easier to use, that's why I asked. But since people have different styles, I guess it's not a bad thing that the two packages use a different implementation. When I was reimplementing Iteratees I also didn't find any noticeable slowdown with CPS, but my benchmarks were very simple -- unlike yours. You are comparing the darcs branch to the version on Hackage, right? Paulo