Module Path
type t = | Pident of Ident.t(*Examples: x, List, int
*)| Pdot of Path.t * string(*Examples: List.map, Float.Array
*)| Papply of Path.t * Path.t(*Examples: Set.Make(Int), Map.Make(Set.Make(Int))
*)| Pextra_ty of Path.t * Path.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 constructorcinside typep.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 pathPextra_ty (Pident `t`, Pcstr_ty "Cons").| Pext_ty(*Pextra_ty (p, Pext_ty)is the type of the inline record for the extension constructorp.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 pathPextra_ty (Pident `Error`, Pext_ty).| Punboxed_ty(*Pextra_ty (p, Punboxed_ty)is the type of the unboxed version ofp.Example:
*)float#, ort#giventype t = { i : int ; s : string }.
val is_unboxed_version : Path.t -> boolval compare_extra : Path.extra_ty -> Path.extra_ty -> intval scope : Path.t -> intval name : ?paren:(string -> bool) -> Path.t -> stringval print : Stdlib.Format.formatter -> Path.t -> unitval last : Path.t -> stringval is_constructor_typath : Path.t -> boolmodule Map : Stdlib.Map.S with type key = Path.tmodule Set : Stdlib.Set.S with type elt = Path.t