Von Pfeilnotation konvertieren

Ich versuche immer noch, die Parallelen zwischen der Pfeilnotation und der Semantik der in Haskell definierten Pfeiltypen zu verstehen. Speziell,diese Frage scheint ein sehr kanonisches Beispiel für einen kleinen Zähler zu haben, der mit Pfeilnotation geschrieben ist:

counter :: ArrowCircuit a => a Bool Int
counter = proc reset -> do
        rec     output <- returnA -< if reset then 0 else next
                next <- delay 0 -< output+1
        returnA -< output

Kann mir jemand zeigen, wie ich dies wieder in Haskell2010 ohne Pfeilnotation konvertieren kann?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage