[Haskell-cafe] ANNOUNCE: pipes-core 0.0.1

Mario Blažević blamario at acanac.net
Sun Mar 11 18:22:37 CET 2012

On 12-03-11 12:39 PM, Chris Smith wrote:
> On Sun, Mar 11, 2012 at 10:30 AM, Mario Blažević<blamario at acanac.net>  wrote:
>>    (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.

     No, idP does terminate once it consumes its input. Your idP >> p 
first reproduces the complete input, and then runs p with empty input.

More information about the Haskell-Cafe mailing list