On Mon, Aug 23, 2010 at 4:24 PM, Paulo Tanimoto <ptanimoto@gmail.com> wrote:
On Mon, Aug 23, 2010 at 6:16 AM, John Lato <jwlato@gmail.com> wrote:
> 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?

I'm actually referring to benchmarks from about 10-8 months ago.  I did have them on the website, but it looks like I took them down.  I haven't run any comparisons recently, except for a few to determine where INLINEs are beneficial.  I'll make a current set and post them when they're ready.

John