State Monad

Afp0405