sig
  module Hole :
    sig
      type 'a t
      val create : name:string -> 'Backpatched.Hole.t
      val fill : 'Backpatched.Hole.t -> '-> unit Core.Std.Or_error.t
      val empty : 'Backpatched.Hole.t -> unit
    end
  type 'a t
  val create : '-> 'Backpatched.t
  val of_hole : 'Backpatched.Hole.t -> 'Backpatched.t
  val get_exn : 'Backpatched.t -> 'a
  val sexp_of_t :
    ('-> Sexplib.Sexp.t) -> 'Backpatched.t -> Sexplib.Sexp.t
end