Hier ist der SO-Beitrag, auf den ich mich beziehen werde .Außerdem werde ich in dieser Frage dieselben Schnipsel wie das OP verwenden, um die Materialien nicht zu trennen . Es ist allgemein bekannt, dass eine ArrowApplyInstanz eine Monade ergibt und umgekehrt: newtype ArrowMonad a b = ArrowMonad (a...