@@ -6,7 +6,7 @@ import Effect (Effect)
66import Record (delete , equal , get , insert , merge , modify , rename , set )
77import Record.Builder as Builder
88import Control.Monad.ST (run ) as ST
9- import Record.ST (poke , thaw , freeze ) as ST
9+ import Record.ST (poke , thaw , freeze , modify ) as ST
1010import Record.Unsafe (unsafeHas )
1111import Data.Symbol (SProxy (..))
1212import Test.Assert (assert' )
@@ -40,14 +40,20 @@ main = do
4040 assert' " unsafeHas2" $
4141 not $ unsafeHas " b" { a: 42 }
4242
43- let stTest1 = ST .run do
44- rec <- ST .thaw { x: 41 , y: " " }
45- ST .poke x 42 rec
46- ST .poke y " testing" rec
47- ST .freeze rec
43+ let
44+ stTest1 = ST .run do
45+ rec <- ST .thaw { x: 41 , y: " " }
46+ ST .poke x 42 rec
47+ ST .poke y " testing" rec
48+ ST .freeze rec
49+ stTest2 = ST .run do
50+ rec <- ST .thaw { x: 41 }
51+ ST .modify x (_ + 1 ) rec
52+ ST .freeze rec
4853
4954 assert' " pokeSTRecord" $
5055 stTest1.x == 42 && stTest1.y == " testing"
56+ assert' " ST.modify" $ stTest2.x == 42
5157
5258 let testBuilder = Builder .build (Builder .insert x 42
5359 >>> Builder .merge { y: true , z: " testing" }
0 commit comments