[Haskell-cafe] ANNOUNCE: pipes-core 0.0.1

Chris Smith cdsmith at gmail.com
Sun Mar 11 17:39:50 CET 2012

On Sun, Mar 11, 2012 at 10:30 AM, Mario Blažević <blamario at acanac.net> wrote:
>    It's difficult to say without having the implementation of both unawait
> and all the combinators in one package. I'll assume the following equations
> hold:

>   (p1 >> unawait x) >>> p2 = (p1 >>> p2) <* unawait x       -- this one
> tripped me up

I don't think this could reasonably hold.  For example, you'd expect
that for any p, idP >> p == idP since idP never terminates at all.
But then let p1 == idP, and you get something silly.  The issue is
with early termination: if p2 terminates first in the left hand side,
you don't want the unawait to occur.

Chris Smith

More information about the Haskell-Cafe mailing list