zipWithM package:io-streams

Combines two input streams using the supplied monadic function. Continues yielding elements from both input streams until one of them finishes.