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 option) -> ('a, 'b option) Misc.EnvLazy.t -> 'b option
  val backtrack : Misc.EnvLazy.log -> unit
end