Lesson #2 from the real world
Working with streams is hard.
In particular, they are not as composable as I initially thought.
A small peculiarity is closing streams: I had a stream sink in
stdout and kept getting an error.
It turns out that closing a stream in the library cascaded.
Hence, it also closed the
Naturally, my testing library kept writing to
stdout which, in turn, yielded a write after close error.
It turns out the solution was to apply good testing habits: A test should not write to
Instead, a simple sink was written, and the stream was directed to it.
That allowed the increased benefit of measuring the stream and adding assertions to have the stream is expected to behave.
Sometimes problems can be solved by progressing over them. Weird.
Please remember always to have compassion for other programmers and becurious about lessons.An obvious point for one programmer might be an epiphany for another.
Over and out Mads