Mutable references in the (strict) ST monad.
a value of type STRef s a is a mutable variable in state thread s, containing a value of type a
Mutate the contents of an STRef
Build a new STRef in the current state thread
Read the value of an STRef
Write a new value into an STRef