@@ -26,12 +26,10 @@ putM : y -> EffM m [STATE x] [STATE y] ()
2626putM val = Put val
2727
2828update : (x -> x) -> Eff m [STATE x] ()
29−update f = do val <- get
30− put (f val)
29+update f = put (f !get)
3130
3231updateM : (x -> y) -> EffM m [STATE x] [STATE y] ()
33−updateM f = do val <- get
34− putM (f val)
32+updateM f = putM (f !get)
3533
3634locally : x -> Eff m [STATE x] t -> Eff m [STATE y] t
3735locally newst prog = do st <- get