sig

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