pub trait PathExt {
    // Required methods
    fn compact(&self) -> PathBuf;
    fn extension_or_hidden_file_name(&self) -> Option<&str>;
    fn local_to_wsl(&self) -> Option<PathBuf>;
    // Provided method
    fn try_from_bytes<'a>(bytes: &'a [u8]) -> Result<Self>
       where Self: From<&'a Path> { ... }
}