Îõ³h$·î"      ! Safe-Inferred3VhpathThe main Path type.The type variable b is either:Abs -- absolute pathRel -- relative pathþInternally is a ByteString. The path is guaranteed to be normalised and contain no trailing Path separators, except for the " root path.(There are no duplicate path separators //, no .., no ./, no ~/, etc.#hpathSame as .The following property holds: x == y áD show x == show y$hpathByteString ordering.The following property holds: 'show x `compare` show y áD x `compare` y%hpathByteString equality.The following property holds: show x == show y áD x == y&+© 2015“@2016 FP Complete, 2016 Julian Ospald BSD 3 clause"Julian Ospald  experimentalportableNone3Ùè°hpath"Exception when parsing a location.hpath$A relative path; one without a root.hpathAn absolute path.hpathÀGet a location for an absolute path. Produces a normalised path.Throws: ,parseAbs "/abc" :: Maybe (Path Abs) Just "/abc",parseAbs "/" :: Maybe (Path Abs)Just "/",parseAbs "/abc/def" :: Maybe (Path Abs)Just "/abc/def",parseAbs "/abc/def/.///" :: Maybe (Path Abs)Just "/abc/def",parseAbs "abc" :: Maybe (Path Abs)Nothing,parseAbs "" :: Maybe (Path Abs)Nothing,parseAbs "/abc/../foo" :: Maybe (Path Abs)NothinghpathÀGet a location for a relative path. Produces a normalised path. Note that filepath may contain any number of ./$. It also may not contain a single .. anywhere.Throws:  )parseRel "abc" :: Maybe (Path Rel) Just "abc")parseRel "def/" :: Maybe (Path Rel) Just "def")parseRel "abc/def" :: Maybe (Path Rel)Just "abc/def")parseRel "abc/def/." :: Maybe (Path Rel)Just "abc/def")parseRel "/abc" :: Maybe (Path Rel)Nothing)parseRel "" :: Maybe (Path Rel)Nothing)parseRel "abc/../foo" :: Maybe (Path Rel)Nothing)parseRel "." :: Maybe (Path Rel)Just ".")parseRel "././././." :: Maybe (Path Rel)Just ".")parseRel "./..." :: Maybe (Path Rel) Just "...")parseRel ".." :: Maybe (Path Rel)Nothinghpath1Parses a path, whether it's relative or absolute. Excludes ' and '..'.Throws:  =parseAny "/abc" :: Maybe (Either (Path Abs) (Path Rel))Just (Left "/abc")=parseAny "..." :: Maybe (Either (Path Abs) (Path Rel))Just (Right "...")=parseAny "abc/def" :: Maybe (Either (Path Abs) (Path Rel))Just (Right "abc/def")=parseAny "abc/def/." :: Maybe (Either (Path Abs) (Path Rel))Just (Right "abc/def")=parseAny "/abc" :: Maybe (Either (Path Abs) (Path Rel))Just (Left "/abc")=parseAny "" :: Maybe (Either (Path Abs) (Path Rel))Nothing=parseAny "abc/../foo" :: Maybe (Either (Path Abs) (Path Rel))Nothing=parseAny "." :: Maybe (Either (Path Abs) (Path Rel))Just (Right ".")=parseAny ".." :: Maybe (Either (Path Abs) (Path Rel))Nothing hpath&Convert any Path to a ByteString type. hpath.Convert an absolute Path to a ByteString type. hpath-Convert a relative Path to a ByteString type.hpathAppend two paths.âThe second argument must always be a relative path, which ensures that undefinable things like `"abc" <> "/def"` cannot happen.žTechnically, the first argument can be a path that points to a non-directory, because this library is IO-agnostic and makes no assumptions about file types.7(MkPath "/") (MkPath "file" :: Path Rel)"/file"7(MkPath "/path/to") (MkPath "file" :: Path Rel)"/path/to/file"7(MkPath "/") (MkPath "file/lal" :: Path Rel) "/file/lal"7(MkPath "/") (MkPath "file/" :: Path Rel)"/file"7(MkPath "/") (MkPath "." :: Path Rel)"/"7(MkPath ".") (MkPath "." :: Path Rel)"."hpathÉStrip directory from path, making it relative to that directory. Throws Couldn'tStripPrefixDir* if directory is not a parent of the path.The bases must match.Î(MkPath "/lal/lad") `stripDir` (MkPath "/lal/lad/fad") :: Maybe (Path Rel) Just "fad"Î(MkPath "lal/lad") `stripDir` (MkPath "lal/lad/fad") :: Maybe (Path Rel) Just "fad"Î(MkPath "/") `stripDir` (MkPath "/") :: Maybe (Path Rel)Just "."Î(MkPath "/lal/lad/fad") `stripDir` (MkPath "/lal/lad") :: Maybe (Path Rel)NothingÎ(MkPath "/abs") `stripDir` (MkPath "/lal/lad") :: Maybe (Path Rel)NothingÎ(MkPath "fad") `stripDir` (MkPath "fad") :: Maybe (Path Rel)Just "."hpathGet all parents of a path.%getAllParents (MkPath "/abs/def/dod")["/abs/def","/abs","/"]getAllParents (MkPath "/foo")["/"]getAllParents (MkPath "/")[]hpathGets all path components.'getAllComponents (MkPath "abs/def/dod")["abs","def","dod"]getAllComponents (MkPath "abs")["abs"]hpath6Gets all path components after the "/" root directory.1getAllComponentsAfterRoot (MkPath "/abs/def/dod")["abs","def","dod"])getAllComponentsAfterRoot (MkPath "/abs")["abs"]hpath%Extract the directory name of a path.dirname (MkPath "/abc/def/dod") "/abc/def"dirname (MkPath "/")"/"hpath Extract the file part of a path.The following properties hold:  basename (p a) == basename aThrows:  if given the root path "/"4basename (MkPath "/abc/def/dod") :: Maybe (Path Rel) Just "dod"4basename (MkPath "abc/def/dod") :: Maybe (Path Rel) Just "dod"4basename (MkPath "dod") :: Maybe (Path Rel) Just "dod"4basename (MkPath ".") :: Maybe (Path Rel)Just "."4basename (MkPath "/") :: Maybe (Path Rel)Nothinghpath>Is p a parent of the given location? Implemented in terms of . The bases must match.<(MkPath "/lal/lad") `isParentOf` (MkPath "/lal/lad/fad")True;(MkPath "lal/lad") `isParentOf` (MkPath "lal/lad/fad")True1(MkPath "/") `isParentOf` (MkPath "/")False8(MkPath "/lal/lad/fad") `isParentOf` (MkPath "/lal/lad")False3(MkPath "fad") `isParentOf` (MkPath "fad")Falsehpath2Check whether the given Path is the root "/" path.isRootPath (MkPath "/lal/lad")FalseisRootPath (MkPath "/")Truehpath1Check whether the given Path is the pwd "." path.isPwdPath (MkPath "/lal/lad")FalseisPwdPath (MkPath ".")TruehpathÑQuasiquote an absolute Path. This accepts Unicode Chars and will encode as UTF-8.[abs|/etc/profile|] :: Path Abs"/etc/profile"[abs|/|] :: Path Abs"/"[abs|/Ðá|] :: Path Abs"/\239\131\144"hpathÐQuasiquote a relative Path. This accepts Unicode Chars and will encode as UTF-8.[rel|etc|] :: Path Rel"etc"[rel|bar/baz|] :: Path Rel "bar/baz"[rel|Ðá|] :: Path Rel"\239\131\144"  (      !"#$%&'()*$+,-#hpath-0.12.0-3GqATcOvWkt721zmlgmsPSHPathHPath.Internal toFilePathPath PathExceptionPathParseExceptionRelAbsparseAbsparseRelparseAnyrootPathpwdPathfromAbsfromRelfromAnystripDir getAllParentsgetAllComponentsgetAllComponentsAfterRootdirnamebasename isParentOf isRootPath isPwdPath withAbsPath withRelPathabsrel$fLiftLiftedRepPath$fExceptionPathParseException$fExceptionPathException$fShowPathException$fShowPathParseExceptionbaseGHC.Real/ $fShowPath $fOrdPath$fEqPathMkPathGHC.Base.