y8      !"#$%&'()*+,-./012345672010 John MillikinMITjmillikin@gmail.comportable Safe-Inferred+  Check if a  i is valid; it must not contain any illegal characters, and must have a root appropriate to the current .Split a search path, such as $PATH or  $PYTHONPATH, into a list of  s.splitSearchPathString is like 4, but takes a string encoded in the format used by  System.IO.Attempt to convert a   to human readable text.5If the path is decoded successfully, the result is a 8k containing the decoded text. Successfully decoded text can be converted back to the original path using ./If the path cannot be decoded, the result is a 9 containing an approximation of the original path. If displayed to the user, this value should be accompanied by some warning that the path has an invalid encoding. Approximated text cannot be converted back to the original path.This function ignores the user s locale, and assumes all file paths are encoded in UTF8. If you need to display file paths with an unusual or obscure encoding, use  and then decode them manually. Since: 0.2#Convert human readable text into a  .This function ignores the user s locale, and assumes all file paths are encoded in UTF8. If you need to create file paths with an unusual or obscure encoding, encode them manually and then use . Since: 0.2 Convert a  M to a platform specific format, suitable for use with external OS functions. Since: 0.3 Convert a  O from a platform specific format, suitable for use with external OS functions. Since: 0.3Attempt to convert a  1 to a string suitable for use with functions in  System.IOt. The contents of this string are platform dependent, and are not guaranteed to be human readable. For converting  #s to a human readable format, use . Since: 0.3.1 Attempt to parse a  3 from a string suitable for use with functions in  System.IO. Do not use this function for parsing human readable paths, as the character set decoding is platform dependent. For converting human readable text to a  , use . Since: 0.3.1 0A file path with no root, directory, or filename0:; <=>?@ABCDEFGHIJ KLMNOPQRSTUVWXYZ[\]+:; <=>?@ABCDEFGHIJ KLMNOPQRSTUVWX :; <=>?@AFEDCBGHIJ KLMNOPQRSTUVWXYZ[\]2010 John MillikinMITjmillikin@gmail.comportable Safe-Inferred null p = (p ==  ) Retrieves the   s root.Retrieves the  L s directory. If the path is already a directory, it is returned unchanged.Retrieves the   s parent directory. Retrieve a   s filename component. $filename "foo/bar.txt" == "bar.txt"  Retrieve a  % s directory name. This is only the  file name% of the directory, not its full path. 5dirname "foo/bar/baz.txt" == "bar" dirname "/" == ""  Since: 0.4.1 Retrieve a   s basename component.  basename "foo/bar.txt" == "bar"  Test whether a path is absolute. Test whether a path is relative. Appends two  =s. If the second path is absolute, it is returned unchanged. An alias for . A fold over .2Find the greatest common prefix between a list of  s.Remove a prefix from a path. 2 "/foo/" "/foo/bar/baz.txt" == Just "bar/baz.txt" # "/foo/" "/bar/baz.txt" == Nothing \This function operates on logical prefixes, rather than by counting characters. The prefix "/foo/bar/baz" is interpreted the path ("/foo/bar/", "baz")#, and will be stripped accordingly: . "/foo/bar/baz" "/foo/bar/baz/qux" == Nothing 2 "/foo/bar/baz" "/foo/bar/baz.txt" == Just ".txt"  Since: 0.4.1Remove intermediate "." and ".." directories from a path.  "/foo/./bar" == "/foo/bar" ! "/foo/bar/../baz" == "/foo/baz"  "/foo/../../bar" == "/bar"  "./foo/bar" == "./foo/baz" 5Note that if any of the elements are symbolic links, - may change which file the path resolves to. Since: 0.2Jexpand a FilePath into a list of the root name, directories, and file name Since: 0.4.7Get a   s last extension, or ^ if it has no extensions.Get a   s full extension list.Get whether a  # s last extension is the predicate.$Append an extension to the end of a  . 'Append many extensions to the end of a  .! An alias for ." Remove a   s last extension.#Remove all extensions from a  .$ Replace a   s last extension.%Remove all extensions from a  $, and replace them with a new list.& splitExtension p = (" p,  p)' splitExtensions p = (# p,  p) _ !"#$%&'`ab  !"#$%&' !"$ #%&' _ !"#$%&'`ab2010 John MillikinMITjmillikin@gmail.comportable Safe-Inferred(:Linux, BSD, and other UNIX or UNIX-like operating systems.):Linux, BSD, and other UNIX or UNIX-like operating systems.This is a variant of (P for use with GHC 7.2, which tries to decode file paths in its IO computations.Since: 0.3.3 / 0.4.2*:Linux, BSD, and other UNIX or UNIX-like operating systems.This is a variant of (Y for use with GHC 7.4 or later, which tries to decode file paths in its IO computations.Since: 0.3.7 / 0.4.6+Darwin and Mac OS X.This is almost identical to (!, but with a native path type of c rather than d.Since: 0.3.4 / 0.4.3,Darwin and Mac OS X.This is a variant of +Y for use with GHC 7.2 or later, which tries to decode file paths in its IO computations.Since: 0.3.4 / 0.4.3-Windows and DOS&()*efghijklmnopqrs+,tuvw-xyz{|}~ ()*+,- ()*-+, &()*efghijklmnopqrs+,tuvw-xyz{|}~2010 John MillikinMITjmillikin@gmail.comportable Safe-Inferred /Attempt to convert a   to human readable text.5If the path is decoded successfully, the result is a 8k containing the decoded text. Successfully decoded text can be converted back to the original path using 0./If the path cannot be decoded, the result is a 9 containing an approximation of the original path. If displayed to the user, this value should be accompanied by some warning that the path has an invalid encoding. Approximated text cannot be converted back to the original path.This function ignores the user s locale, and assumes all file paths are encoded in UTF8. If you need to display file paths with an unusual or obscure encoding, use 4 and then decode them manually. Since: 0.20#Convert human readable text into a  .This function ignores the user s locale, and assumes all file paths are encoded in UTF8. If you need to create file paths with an unusual or obscure encoding, encode them manually and then use 5. Since: 0.21 Check if a  h is valid; it must not contain any illegal characters, and must have a root appropriate to the current .2Split a search path, such as $PATH or  $PYTHONPATH, into a list of  s.3splitSearchPathString is like 24, but takes a string encoded in the format used by  System.IO.4 Convert a  M to a platform specific format, suitable for use with external OS functions. Since: 0.35 Convert a  O from a platform specific format, suitable for use with external OS functions. Since: 0.36Attempt to convert a  1 to a string suitable for use with functions in  System.IOt. The contents of this string are platform dependent, and are not guaranteed to be human readable. For converting  #s to a human readable format, use /. Since: 0.3.17Attempt to parse a  3 from a string suitable for use with functions in  System.IO. Do not use this function for parsing human readable paths, as the character set decoding is platform dependent. For converting human readable text to a  , use 0. Since: 0.3.1 ./01234567(  !"#$%&'./01234567 ./04567123 ./01234567      !"#$%&'()*+,-./0123     45645789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY4Z[\]^_`abcdefghijklmnopqrstuvwxyz{|}~system-filepath-0.4.13Filesystem.Path.RulesFilesystem.PathFilesystem.Path.CurrentOSFilesystem.Path.InternalRulesvalidsplitSearchPathsplitSearchPathStringtoTextfromTextencodedecode encodeString decodeStringFilePathemptynullroot directoryparentfilenamedirnamebasenameabsoluterelativeappendconcat commonPrefix stripPrefixcollapsesplitDirectories extension extensions hasExtension addExtension addExtensions<.> dropExtensiondropExtensionsreplaceExtensionreplaceExtensionssplitExtensionsplitExtensionsposix posix_ghc702 posix_ghc704darwin darwin_ghc702windows currentOSbase Data.EitherRightLeft rulesNamepathRootpathDirectories pathBasenamepathExtensionsRootRootWindowsDoubleQMarkRootWindowsUncRootWindowsCurrentVolumeRootWindowsVolume RootPosix ExtensionBasename DirectoryChunkdotdots filenameChunk rootChunkrootTextdirectoryChunksescapeunescape unescape'unescapeBytes'splitBy textSplitBy parseFilenamemaybeDecodeUtf8 $fShowRules$fNFDataFilePath $fNFDataRoot $fOrdFilePath $fEqFilePath Data.MaybeNothingstripsafeInitsafeHead$fMonoidFilePath text-1.2.0.3Data.Text.InternalTextbytestring-0.10.4.0Data.ByteString.Internal ByteString posixToTextposixFromChunks posixFromText posixToBytesposixFromBytesprocessInvalidUtf8posixToGhc702StringescapeToGhc702posixFromGhc702StringescapeFromGhc702posixToGhc704StringposixFromGhc704String posixValidposixSplitSearchposixSplitSearchString darwinToTextdarwinToStringdarwinFromStringdarwinSplitSearch winToText dosToText uncToText winFromTextstripUncasedPrefix parseDosRootparseDoubleQmark parseUncRootwinValiddosValiduncValid dropWhileEndwinSplit$fShowFilePath$fIsStringFilePath