sig
  type t
  val create : unit -> ('-> As_univ.t) * (As_univ.t -> 'a option)
end