Imandrakit.Backtrack_stackA backtracking stack
val create : unit -> 'a tval push : 'a t -> 'a -> unitPush an element onto the stack
val push_if_nonzero_level : 'a t -> 'a -> unitPush an element onto the stack if level > 0
val n_levels : _ t -> intNumber of levels
val push_level : _ t -> unitPush a backtracking point
val pop_levels : 'a t -> int -> f:('a -> unit) -> unitpop_levels st n ~f removes n levels, calling f on every removed item
val iter : f:('a -> unit) -> 'a t -> unit