`sig
module type StringType =
sig
type t
val length : t -> int
type tchar
val get : t -> int -> tchar
val lift_char : char -> tchar
val lift : string -> t
val to_string : t -> string
val concat_with_separators : t -> t list -> t
val compare : t -> t -> int
val iter : (tchar -> unit) -> t -> unit
val iteri : (int -> tchar -> unit) -> t -> unit
val sub : t -> int -> int -> t
val rindex : t -> char -> int
module Parse :
sig
val source :
t -> (tchar, BatCharParser.position) BatParserCo.Source.t
val letter : (tchar, tchar, BatCharParser.position) BatParserCo.t
end
end
module type PathType =
sig
type ustring
type uchar
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 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`