Bidirectional theoretically-sound iteratee-like pipelines in Scala with Scalaz