type t = - | Pident of Ident.t(*- Examples: x, List, int *)
- | Pdot of t * string(*- Examples: List.map, Float.Array *)
- | Papply of t * t(*- Examples: Set.Make(Int), Map.Make(Set.Make(Int)) *)
- | Pextra_ty of t * extra_ty(*
 *)- Pextra_ty (p, extra)are additional paths of types introduced by specific OCaml constructs. See below.
and extra_ty = - | Pcstr_ty of string(*- Pextra_ty (p, Pcstr_ty c)is the type of the inline record for constructor- cinside type- p.- For example, in - type 'a t = Nil | Cons of {hd : 'a; tl : 'a t}- The inline record type *)- {hd : 'a; tl : 'a t}cannot be named by the user in the surface syntax, but internally it has the path- Pextra_ty (Pident `t`, Pcstr_ty "Cons").
- | Pext_ty(*- Pextra_ty (p, Pext_ty)is the type of the inline record for the extension constructor- p.- For example, in - type exn += Error of {loc : loc; msg : string}- The inline record type *)- {loc : loc; msg : string}cannot be named by the user in the surface syntax, but internally it has the path- Pextra_ty (Pident `Error`, Pext_ty).
val scope : t -> intval name : ?paren:(string -> bool) -> t -> stringval print : Format.formatter -> t -> unitval last : t -> stringval is_constructor_typath : t -> bool
