`type t``= name```

Named types.

`include sig ... end`
`val compare : t ‑> t ‑> int`
`val equal : t ‑> t ‑> bool`

Equality for typenames

`val to_string : t ‑> string`

convert the typename to a string

`val pp : Format.formatter ‑> t ‑> unit`
`val is_class : t ‑> bool`

`is_class name` holds if `name` names CPP/Objc/Java class

`val is_same_type : t ‑> t ‑> bool`

`is_class name1 name2` holds if `name1` and `name2` name same kind of type

`val name : t ‑> string`

name of the typename without qualifier

`val qual_name : t ‑> QualifiedCppName.t`

qualified name of the type, may return nonsense for Java classes

`val unqualified_name : t ‑> QualifiedCppName.t`
`module C : sig ... end`
`module Java : sig ... end`
`module Cpp : sig ... end`
`module Objc : sig ... end`
`module Set : InferStdlib.IStd.Caml.Set.S with type Set.elt = t`