+ stPrevAction=(stPrevAction state),
+ stPrevDir=(stPrevDir state) }
+ state <- updatePrevAction state 0
+ return state
+
+updatePrevState :: State -> Int -> IO State
+updatePrevState state dir = do
+ state <- readState $ State {
+ stPowerMate=(stPowerMate state),
+ stVolume=(stVolume state),
+ stPrevAction=(stPrevAction state),
+ stPrevDir=dir }
+ return state
+
+updatePrevAction :: State -> Int -> IO State
+updatePrevAction state action = do
+ state <- readState $ State {
+ stPowerMate=(stPowerMate state),
+ stVolume=(stVolume state),
+ stPrevAction=action,
+ stPrevDir=(stPrevDir state) }