In diesem Code-Schnipsel y.run
wird nicht überprüft.Monad-Transformatoren mit Scalaz-Streams
object Test {
type StateStringTask[A] = StateStringT[Task, A]
type StateStringT[M[_], A] = StateT[M, String, A]
val x: Process[Task, Unit] = ???
val y: Process[StateStringTask, Unit] = ???
x.run // This typechecks
y.run // This fails
}
Der Compiler zeigt diesen Fehler:
could not find implicit value for parameter C: scalaz.Catchable[[x]Test.StateStringTask[x]]
Habe ich eine Catchable
Instanz für StateStringTask
zu schaffen haben? Wie mache ich das? Oder gibt es eine einfachere Möglichkeit, stateful Effekte zu behandeln, wenn Sie eine Process
ausführen?