All pastes #525956 Raw Edit

Something

public text v1 · immutable
#525956 ·published 2007-05-31 16:28 UTC
rendered paste body
newtype State st a = State (st -> (st, a))

instance Monad (State state) where
    return a = State (\state -> (state, a))
    State run >>= action = State run'
        where run' st =
                  let (st', a)    = run st
                      State run'' = action a
                  in  run'' st'