Paths are private, and owned by the functions below
val relative : t -> string -> trelative path string build a path relative to an existing one
We should gradually add some more functions to handle common dirs here such the theories directories or share files. Abstracting it hereere does allow to use system-specific functionalities
exists file checks if file exists
val to_string : t -> string