1signature Sref = 2sig 3 4 type 'a t 5 val new : 'a -> 'a t 6 val update : 'a t -> ('a -> 'a) -> unit (* locks *) 7 val value : 'a t -> 'a (* no locks *) 8 9end 10