Module Lazy_backtrack

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