¿Cómo reemplazo un programa escrito como una secuencia secuenciada de transiciones de estado con scalaz-stream?

Estoy tratando de entender cómo reorganizar un programa que previamente habría escrito como una secuencia de transiciones de estado: Tengo algo de lógica empresarial: type In = Long type Count = Int type Out = Count type S = Map[Int, Count] val inputToIn: String => Option[In] = s =>...