sig
  type 'a poly
  val instantiate : 'a Type.t -> 'a Type.Polymorphic.poly Type.t * bool
  val is_instance_of : 'a Type.t -> bool
  val get_instance : 'a Type.Polymorphic.poly Type.t -> 'a Type.t
end