Monadic coroutines for haskell - extracted from Mario Blazevic's SCC