Strange interaction between `Channel()` and pipes

Thanks, I see the problem now. It is, in a way, strange that the construct works so well for non-piped iobuffers.

I started writing the generator with a do block construct, hoping that the implicit close() would be triggered by destruction of the IO object, which would then happen when the caller iterates to the next item. However, that didn’t work either, so I guess my assumption about how the open() do construct works is false.