This is cool. I wonder what the performance is on large streams?<p>&gt;It doesn&#x27;t work because we haven&#x27;t defined interleaveStreams - which, for the sake of brevity, we will now refer to as iStr.<p>I much prefer `interleaveStreams` to `iStr`. I know Haskellers like to abbreviate things, but I think it just makes things harder to read for most people. What about using `interleave` and allowing the user to infer Streams from the function signature?