Module Msat_backtrack__.Backtrackable_ref
Backtrackable ref
val create : ?copy:('a -> 'a) -> 'a -> 'a t
Create a backtrackable reference holding the given value initially.
- parameter copy
if provided, will be used to copy the value when
push_level
is called.
val set : 'a t -> 'a -> unit
Set the reference's current content
val get : 'a t -> 'a
Get the reference's current content
val update : 'a t -> ('a -> 'a) -> unit
Update the reference's current content
val push_level : _ t -> unit
Push a backtracking level, copying the current value on top of some stack. The
copy
function will be used if it was provided increate
.
val n_levels : _ t -> int
Number of saved values
val pop_levels : _ t -> int -> unit
Pop
n
levels, restoring to the value the reference was storingn
calls topush_level
earlier.- raises Invalid_argument
if
n
is bigger thann_levels
.