Module Path

type t =
| Pident of Ident.t
| Pdot of t * string
| Papply of t * t
val same : t -> t -> bool
val compare : t -> t -> int
val find_free_opt : Ident.t list -> t -> Ident.t option
val exists_free : Ident.t list -> t -> bool
val scope : t -> int
val flatten : t -> [ `Contains_apply | `Ok of Ident.t * string list ]
val name : ?paren:(string -> bool) -> t -> string
val head : t -> Ident.t
val print : Format.formatter -> t -> unit
val heads : t -> Ident.t list
val last : t -> string
val is_uident : string -> bool
type typath =
| Regular of t
| Ext of t * string
| LocalExt of Ident.t
| Cstr of t * string
val constructor_typath : t -> typath
val is_constructor_typath : t -> bool
module Map : Map.S with type key = t
module Set : Set.S with type elt = t