Pardon all this confusion, but doesn't the rewrite rule for `(>~ cat)`

    "m >~ cat" forall m .
       m >~ cat =
           let go = do
                   x <- m
                   yield x
                   go
           in  go

reduce 
 
          execU m = (lift m >> await) >~ cat

to the original definition in terms of `forever`?  Admittedly, it does have 
the advantage of correctness over my attempts ...

-- 
You received this message because you are subscribed to the Google Groups 
"Haskell Pipes" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].

Reply via email to