sig
  type 'a t = 'Force_once.t
  val create : (unit -> 'a) -> 'a t
  val force : 'a t -> 'a
  val ignore : unit -> unit t
  val sexp_of_t : ('-> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
  val ounit_tests : unit -> OUnit.test
end