sig
type level
val older : Stak.level -> Stak.level -> bool
val size : unit -> int
val depth : unit -> int
val level : unit -> Stak.level
val levels : unit -> Stak.level list
val nb_choice_points : unit -> int
exception Level_not_found of Stak.level
val cut : Stak.level -> unit
exception Fail of string
val fail : string -> 'a
type 'a ref
val ref : 'a -> 'a Stak.ref
val set : 'a Stak.ref -> 'a -> unit
val get : 'a Stak.ref -> 'a
type gl = { name : string; call : unit -> Stak.gl option; }
exception Empty_stack
val reset : unit -> unit
val save : Stak.gl list -> Stak.level
val backtrack : unit -> Stak.gl list
val backtrack_all : unit -> unit
val trail : (unit -> unit) -> unit
val cut_bottom : Stak.level -> unit
val unsafe_set : 'a Stak.ref -> 'a -> unit
end