Melange_compiler_libs.Pathtype t = | Pident of Ident.tExamples: x, List, int
*)| Pdot of t * stringExamples: List.map, Float.Array
*)| Papply of t * tExamples: Set.Make(Int), Map.Make(Set.Make(Int))
*)| Pextra_ty of t * extra_tyPextra_ty (p, extra) are additional paths of types introduced by specific OCaml constructs. See below.
and extra_ty = | Pcstr_ty of stringPextra_ty (p, Pcstr_ty c) is the type of the inline record for constructor c inside 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_tyPextra_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 find_free_opt : Ident.t list -> t -> Ident.t optionval exists_free : Ident.t list -> t -> boolval scope : t -> intval flatten : t -> [ `Contains_apply | `Ok of Ident.t * string list ]val name : ?paren:(string -> bool) -> t -> stringval head : t -> Ident.tval print : Stdlib.Format.formatter -> t -> unitval heads : t -> Ident.t listval last : t -> stringval is_constructor_typath : t -> bool