Jak zamienić program napisany jako sekwencyjny strumień przejść stanów przez scalaz-stream?

Próbuję zrozumieć, jak zreorganizować program, który wcześniej napisałbym jako sekwencję przejść stanów: Mam logikę biznesową: type In = Long type Count = Int type Out = Count type S = Map[Int, Count] val inputToIn: String => Option[In] = s => try Some(s.toLong) catch { case _ :...