sig
  type ('a, 'b) t
  type log
  val force : ('-> 'b) -> ('a, 'b) Lazy_backtrack.t -> 'b
  val create : '-> ('a, 'b) Lazy_backtrack.t
  val get_arg : ('a, 'b) Lazy_backtrack.t -> 'a option
  val create_forced : '-> ('a, 'b) Lazy_backtrack.t
  val create_failed : exn -> ('a, 'b) Lazy_backtrack.t
  val log : unit -> Lazy_backtrack.log
  val force_logged :
    Lazy_backtrack.log ->
    ('-> ('b, 'c) Stdlib.result) ->
    ('a, ('b, 'c) Stdlib.result) Lazy_backtrack.t -> ('b, 'c) Stdlib.result
  val backtrack : Lazy_backtrack.log -> unit
end