CCRef
Helpers for references
type 'a printer = Stdlib.Format.formatter -> 'a -> unit
type 'a t = 'a ref
val create : 'a -> 'a t
Alias to ref
.
val iter : ('a -> unit) -> 'a t -> unit
Call the function on the content of the reference.
val update : ('a -> 'a) -> 'a t -> unit
Update the reference's content with the given function.
val incr_then_get : int t -> int
incr_then_get r
increments r
and returns its new value, think ++r
.
val get_then_incr : int t -> int
get_then_incr r
increments r
and returns its old value, think r++
.
val protect : 'a t -> 'a -> (unit -> 'b) -> 'b
protect r x f
sets r := x
; calls f()
; restores r
to its old value; and returns the result of f()
.
val to_list : 'a t -> 'a list