sig
  type level
  val older : Facile.Stak.level -> Facile.Stak.level -> bool
  val size : unit -> int
  val depth : unit -> int
  val level : unit -> Facile.Stak.level
  val levels : unit -> Facile.Stak.level list
  val nb_choice_points : unit -> int
  exception Level_not_found of Facile.Stak.level
  val cut : Facile.Stak.level -> unit
  exception Fail of string
  val fail : string -> 'a
  val trail : (unit -> unit) -> unit
  type 'a ref
  val ref : '-> 'Facile.Stak.ref
  val set : 'Facile.Stak.ref -> '-> unit
  val get : 'Facile.Stak.ref -> 'a
end