This module defines functions for working with mutable value references.
Note: Control.Monad.ST
provides a safe alternative to Ref
when mutation is restricted to a local scope.
spago install refs
import Effect.Ref as Ref main = do -- initialize a new Ref with the value 0 ref <- Ref.new 0 -- read from it and check it curr1 <- Ref.read ref assertEqual { actual: curr1, expected: 0 } -- write over the ref with 1 Ref.write 1 ref -- now it is 1 when we read out the value curr2 <- Ref.read ref assertEqual { actual: curr2, expected: 1 } -- modify it by adding 1 to the current state Ref.modify_ (\s -> s + 1) ref -- now it is 2 when we read out the value curr3 <- Ref.read ref assertEqual { actual: curr3, expected: 2 }
See tests to see usages.
Module documentation is published on Pursuit.