on master help sign in
Use '!' in Effect.State
c48303eEdwin Brady
effects/Effect/State.idr+2−4
@@ -26,12 +26,10 @@ putM : y -> EffM m [STATE x] [STATE y] ()
26putM val = Put val
26putM val = Put val
27
27
28update : (x -> x) -> Eff m [STATE x] ()
28update : (x -> x) -> Eff m [STATE x] ()
29−update f = do val <- get
29+update f = put (f !get)
30− put (f val)
31
30
32updateM : (x -> y) -> EffM m [STATE x] [STATE y] ()
31updateM : (x -> y) -> EffM m [STATE x] [STATE y] ()
33−updateM f = do val <- get
32+updateM f = putM (f !get)
34− putM (f val)
35
33
36locally : x -> Eff m [STATE x] t -> Eff m [STATE y] t
34locally : x -> Eff m [STATE x] t -> Eff m [STATE y] t
37locally newst prog = do st <- get
35locally newst prog = do st <- get