On Sun, Mar 11, 2012 at 10:30 AM, Mario Blažević <blama...@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 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe