module type Polymorphic =sig
..end
For a polymorphic type value with one type variable, you must use an implementation of this signature.
type 'a
poly
Type of the polymorphic type (for instance 'a list
). It must be
instantiated before used. See function instantiate
below.
val instantiate : 'a Type.t -> 'a poly Type.t * bool
'a poly = 'a list
, then
instantiate int
returns the type value int list
.val is_instance_of : 'a Type.t -> bool
true
iff the given type value has been created from
function instantiate
above.
For instance, is_instance_of (instantiate int)
always returns true
but is_instance_of int
always returns false
.val get_instance : 'a poly Type.t -> 'a Type.t
get_instance ty
returns the type value used to create the given
monomorphic instantiation.