import Control.Monad.State tick :: State Integer () tick = do c <- get ; put $ c + 1 evalState ( do tick ; tick ; get ) 0
Aufgabe: wie könnte die Implementierung aussehen?
data State s a = ... evalState = ... ; get = ... ; put = ... instance Monad ( State s ) where ...