`sig module type StringType = sig type t val length : BatPathGen.StringType.t -> int type tchar val get : BatPathGen.StringType.t -> int -> BatPathGen.StringType.tchar val lift_char : char -> BatPathGen.StringType.tchar val lift : string -> BatPathGen.StringType.t val to_string : BatPathGen.StringType.t -> string val concat_with_separators : BatPathGen.StringType.t -> BatPathGen.StringType.t list -> BatPathGen.StringType.t val compare : BatPathGen.StringType.t -> BatPathGen.StringType.t -> int val iter : (BatPathGen.StringType.tchar -> unit) -> BatPathGen.StringType.t -> unit val iteri : (int -> BatPathGen.StringType.tchar -> unit) -> BatPathGen.StringType.t -> unit val sub : BatPathGen.StringType.t -> int -> int -> BatPathGen.StringType.t val rindex : BatPathGen.StringType.t -> char -> int module Parse : sig val source : BatPathGen.StringType.t -> (BatPathGen.StringType.tchar, BatCharParser.position) BatParserCo.Source.t val letter : (BatPathGen.StringType.tchar, BatPathGen.StringType.tchar, BatCharParser.position) BatParserCo.t end end module type PathType = sig type ustring type uchar module OperatorLift : sig val ( !! ) : string -> BatPathGen.PathType.ustring end type t = BatPathGen.PathType.ustring list val is_relative : BatPathGen.PathType.t -> bool val is_absolute : BatPathGen.PathType.t -> bool val root : BatPathGen.PathType.t val append : BatPathGen.PathType.t -> BatPathGen.PathType.ustring -> BatPathGen.PathType.t val concat : BatPathGen.PathType.t -> BatPathGen.PathType.t -> BatPathGen.PathType.t module Operators : sig val ( /: ) : BatPathGen.PathType.t -> BatPathGen.PathType.ustring -> BatPathGen.PathType.t val ( //@ ) : BatPathGen.PathType.t -> BatPathGen.PathType.t -> BatPathGen.PathType.t end module Infix : sig val ( /: ) : BatPathGen.PathType.t -> BatPathGen.PathType.ustring -> BatPathGen.PathType.t val ( //@ ) : BatPathGen.PathType.t -> BatPathGen.PathType.t -> BatPathGen.PathType.t end exception Malformed_path val normalize_filepath : BatPathGen.PathType.t -> BatPathGen.PathType.t val normalize_in_graph : BatPathGen.PathType.t -> BatPathGen.PathType.t val normalize_in_tree : BatPathGen.PathType.t -> BatPathGen.PathType.t val normalize : BatPathGen.PathType.t -> BatPathGen.PathType.t val parent : BatPathGen.PathType.t -> BatPathGen.PathType.t val belongs : BatPathGen.PathType.t -> BatPathGen.PathType.t -> bool val relative_to_any : BatPathGen.PathType.t -> BatPathGen.PathType.t -> BatPathGen.PathType.t exception Not_parent val relative_to_parent : BatPathGen.PathType.t -> BatPathGen.PathType.t -> BatPathGen.PathType.t exception Illegal_char type validator = BatPathGen.PathType.ustring -> bool val default_validator : BatPathGen.PathType.validator Pervasives.ref val to_ustring : BatPathGen.PathType.t -> BatPathGen.PathType.ustring val to_string : BatPathGen.PathType.t -> string val of_string : BatPathGen.PathType.ustring -> BatPathGen.PathType.t val s : BatPathGen.PathType.t -> string val p : BatPathGen.PathType.ustring -> BatPathGen.PathType.t val name : BatPathGen.PathType.t -> BatPathGen.PathType.ustring val map_name : (BatPathGen.PathType.ustring -> BatPathGen.PathType.ustring) -> BatPathGen.PathType.t -> BatPathGen.PathType.t val ext : BatPathGen.PathType.t -> BatPathGen.PathType.ustring option val map_ext : (BatPathGen.PathType.ustring option -> BatPathGen.PathType.ustring option) -> BatPathGen.PathType.t -> BatPathGen.PathType.t val name_core : BatPathGen.PathType.t -> BatPathGen.PathType.ustring type components = BatPathGen.PathType.t * BatPathGen.PathType.ustring * BatPathGen.PathType.ustring option val split : BatPathGen.PathType.t -> BatPathGen.PathType.components val join : BatPathGen.PathType.components -> BatPathGen.PathType.t val map : (BatPathGen.PathType.components -> BatPathGen.PathType.components) -> BatPathGen.PathType.t -> BatPathGen.PathType.t val drive_letter : BatPathGen.PathType.t -> BatPathGen.PathType.uchar option end module Make : functor (S : StringType) -> sig type ustring = S.t type uchar = S.tchar module OperatorLift : sig val ( !! ) : string -> ustring end type t = ustring list val is_relative : t -> bool val is_absolute : t -> bool val root : t val append : t -> ustring -> t val concat : t -> t -> t module Operators : sig val ( /: ) : t -> ustring -> t val ( //@ ) : t -> t -> t end module Infix : sig val ( /: ) : t -> ustring -> t val ( //@ ) : t -> t -> t end exception Malformed_path val normalize_filepath : t -> t val normalize_in_graph : t -> t val normalize_in_tree : t -> t val normalize : t -> t val parent : t -> t val belongs : t -> t -> bool val relative_to_any : t -> t -> t exception Not_parent val relative_to_parent : t -> t -> t exception Illegal_char type validator = ustring -> bool val default_validator : validator ref val to_ustring : t -> ustring val to_string : t -> string val of_string : ustring -> t val s : t -> string val p : ustring -> t val name : t -> ustring val map_name : (ustring -> ustring) -> t -> t val ext : t -> ustring option val map_ext : (ustring option -> ustring option) -> t -> t val name_core : t -> ustring type components = t * ustring * ustring option val split : t -> components val join : components -> t val map : (components -> components) -> t -> t val drive_letter : t -> uchar option end module OfString : sig type ustring = string type uchar = char module OperatorLift : sig val ( !! ) : string -> ustring end type t = ustring list val is_relative : t -> bool val is_absolute : t -> bool val root : t val append : t -> ustring -> t val concat : t -> t -> t module Operators : sig val ( /: ) : t -> ustring -> t val ( //@ ) : t -> t -> t end module Infix : sig val ( /: ) : t -> ustring -> t val ( //@ ) : t -> t -> t end exception Malformed_path val normalize_filepath : t -> t val normalize_in_graph : t -> t val normalize_in_tree : t -> t val normalize : t -> t val parent : t -> t val belongs : t -> t -> bool val relative_to_any : t -> t -> t exception Not_parent val relative_to_parent : t -> t -> t exception Illegal_char type validator = ustring -> bool val default_validator : validator ref val to_ustring : t -> ustring val to_string : t -> string val of_string : ustring -> t val s : t -> string val p : ustring -> t val name : t -> ustring val map_name : (ustring -> ustring) -> t -> t val ext : t -> ustring option val map_ext : (ustring option -> ustring option) -> t -> t val name_core : t -> ustring type components = t * ustring * ustring option val split : t -> components val join : components -> t val map : (components -> components) -> t -> t val drive_letter : t -> uchar option end end`