úÎc}`O7      !"#$%&'()*+,-./0123456None0Path of some base and type.The type variables are:b=  base, the base location of the path; absolute or relative.t#  type, whether file or directory.>Internally is a string. The string can be of two formats only:  File format: file.txt,  foo/bar.txt,  /foo/bar.txtDirectory format: foo/,  /foo/bar/UAll directories end in a trailing separator. There are no duplicate path separators //, no .., no ./, no ~/, etc.>Normalized file path representation for the relative path root Convert to a 7 type.VAll directories have a trailing slash, so if you want no trailing slash, you can use  from the filepath package.–Helper function: check if the filepath has any parent directories in it. This handles the logic of checking for different path separators on Windows.!Same as 'show . Path.toFilePath'.The following property holds: x == y "a show x == show y String ordering.The following property holds: 'show x `compare` show y "a x `compare` y String equality.The following property holds: show x == show y "a x == y    None09;$ Same as  . 1Exceptions that can occur during path operations.A directory path. A file path.1A relative path; one without a root. Note that a ..R path component to represent the parent directory is not allowed by this library.An absolute path.  Construct a    using QuasiQuotes. #[absdir|/|] [absdir|/home/chris|] :Remember: due to the nature of absolute paths a path like [absdir|/home/chris|]V may compile on your platform, but it may not compile on another platform (Windows).  Construct a    using QuasiQuotes. "[absdir|/home|]</>[reldir|chris|]   Construct a    using QuasiQuotes. [absfile|/home/chris/foo.txt|] :Remember: due to the nature of absolute paths a path like [absdir|/home/chris/foo.txt|]V may compile on your platform, but it may not compile on another platform (Windows).  Construct a    using QuasiQuotes. +[absdir|/home/chris|]</>[relfile|foo.txt|] Append two paths.6The following cases are valid and the equalities hold: =$(mkAbsDir x) </> $(mkRelDir y) = $(mkAbsDir (x ++ "/" ++ y)) ?$(mkAbsDir x) </> $(mkRelFile y) = $(mkAbsFile (x ++ "/" ++ y)) =$(mkRelDir x) </> $(mkRelDir y) = $(mkRelDir (x ++ "/" ++ y)) ?$(mkRelDir x) </> $(mkRelFile y) = $(mkRelFile (x ++ "/" ++ y))1The following are proven not possible to express: $(mkAbsFile &) </> x $(mkRelFile &) </> x x </> $(mkAbsFile &) x </> $(mkAbsDir &)·If the directory in the first argument is a proper prefix of the path in the second argument strip it from the second argument, generating a path relative to the directory. Throws 6 if the directory is not a proper prefix of the path.The following properties hold: !stripProperPrefix x (x </> y) = y$Cases which are proven not possible: 5stripProperPrefix (a :: Path Abs &) (b :: Path Rel &) 5stripProperPrefix (a :: Path Rel &) (b :: Path Abs &)$In other words the bases must match.fDetermines if the path in the first parameter is a proper prefix of the path in the second parameter.The following properties hold: not (x `isProperPrefixOf` x) x `isProperPrefixOf` (x </> y)+Take the parent path component from a path.The following properties hold: ;parent (x </> y) == x parent "/x" == "/" parent "x" == "." EOn the root (absolute or relative), getting the parent is idempotent: "parent "/" = "/" parent "." = "."  Extract the file part of a path.The following properties hold:  filename (p </> a) == filename a*Extract the last directory name of a path.The following properties hold: *dirname $(mkRelDir ".") == $(mkRelDir ".") dirname (p </> a) == dirname a  #Get extension from given file path.! [Replace/add extension to given file path. Throws if the resulting filename does not parse."A synonym for ! in the form of an operator.#Convert an absolute 7 to a normalized absolute dir .Throws:   when the supplied path:is not an absolute path contains a ..1 path component representing the parent directoryis not a valid path (See )$Convert a relative 7 to a normalized relative dir .Throws:  when the supplied path:is not a relative pathis "" contains a ..1 path component representing the parent directoryis not a valid path (See )%Convert an absolute 7 to a normalized absolute file .Throws:  when the supplied path:is not an absolute pathis a directory path i.e.has a trailing path separatoris . or ends in /. contains a ..1 path component representing the parent directoryis not a valid path (See )8$Is the string a valid absolute file?&Convert a relative 7 to a normalized relative file .Throws:  when the supplied path:is not a relative pathis ""is a directory path i.e.has a trailing path separatoris . or ends in /. contains a ..1 path component representing the parent directoryis not a valid path (See )9$Is the string a valid relative file?'&Convert absolute path to directory to 7 type.(&Convert relative path to directory to 7 type.)!Convert absolute path to file to 7 type.*!Convert relative path to file to 7 type.+Make a   Dir'.9Remember: due to the nature of absolute paths this (e.g.  /home/fooW) may compile on your platform, but it may not compile on another platform (Windows).,Make a   .-Make a   .9Remember: due to the nature of absolute paths this (e.g.  /home/fooW) may compile on your platform, but it may not compile on another platform (Windows)..Make a   .:)Internal use for normalizing a directory./Same as .0Same as .1 ;< !Extension to set Old file name(New file name with the desired extension" Old file nameExtension to set(New file name with the desired extension#$%8&9'()*+,-.:=/012345(  !"#$%&'()*+,-./0(  !"#$%&'()*+,-. /0,  ;< !"#$%8&9'()*+,-.:=/0123455"7>      !"#$%&'()*+,-./0123456789:;<=>?@ABCD!path-0.6.0-AkPwTgJwMPb8FcjvZBv5XW Path.InternalPathSystem.FilePathdropTrailingPathSeparatorisValid relRootFP toFilePath hasParentDir$fHashablePath $fToJSONPath $fNFDataPath $fShowPath $fOrdPath$fEqPathPathParseException PathException InvalidAbsDir InvalidRelDirInvalidAbsFileInvalidRelFileNotAProperPrefixDirFileRelAbsabsdirreldirabsfilerelfilestripProperPrefixisProperPrefixOfparentfilenamedirname fileExtensionsetFileExtension-<.> parseAbsDir parseRelDir parseAbsFile parseRelFile fromAbsDir fromRelDir fromAbsFile fromRelFilemkAbsDirmkRelDir mkAbsFile mkRelFilestripDir isParentOf$fExceptionPathException$fFromJSONPath$fFromJSONPath0$fFromJSONPath1$fFromJSONPath2$fShowPathExceptionbaseGHC.IOFilePath validAbsFile validRelFile normalizeDir parseJSONWithqqnormalizeFilePath