module Filename:sig..end
Core.Core_filename.val normalize : string -> stringnormalize path Removes as much "." and ".." from the path as possible. If the path
    is absolute they will all be removed.val parent : string -> stringparent path The parent of the root directory is the root directorypath.val make_relative : ?to_:string -> string -> stringmake_relative ~to_:src f returns f relative to src.Failure if is_relative f <> is_relative srcval make_absolute : string -> stringmake_absolute src Turn src into an absolute path expanded from the current working
    directory.val expand : ?from:string -> string -> stringexpand Makes a path absolute and expands ~ ~username to home directories.  In
    case of error (e.g.: path home of a none existing user) raises Failure with a
    (hopefully) helpful message.val explode : string -> string listval implode : string list -> stringval compare : string -> string -> intString.collate ("rfc02.txt > rfc1.txt") and
    extenstions ("a.c" > "a.h").
    It is a total comparison on normalized filenames.
val with_open_temp_file : ?in_dir:string ->
       ?write:(Pervasives.out_channel -> unit) ->
       f:(string -> 'a) -> string -> string -> 'awith_open_temp_file ~write ~f prefix suffix create a temporary file; runs write on
    its out_channel and then f on the resulting file. The file is removed once f is
    done running.val with_temp_dir : ?in_dir:string -> string -> string -> f:(string -> 'a) -> 'af with a temporary dir as option and removes the directory afterwards.val is_parent : string -> string -> boolis_parent dir1 dir2 returns true if dir1 is a parent of dir2
    Note: This function is context independent, use expand if you want to consider
    relatives paths from a given point.
In particular:
"../../a" is never the parent of "." even if this could be true given
     form the current working directory.