sig   type ('a, 'b, 'c) poly   val instantiate :     'a Type.t ->     'b Type.t ->     'c Type.t -> ('a, 'b, 'c) Type.Polymorphic3.poly Type.t * bool   val is_instance_of : 'a Type.t -> bool   val get_instance :     ('a, 'b, 'c) Type.Polymorphic3.poly Type.t ->     'a Type.t * 'b Type.t * 'c Type.t end