úÎiÊe#2      !"#$%&'()*+,-./01portablejmillikin@gmail.com 23 Check if a  + 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. Attempt to convert a   to human readable text. 5If the path is decoded successfully, the result is a 4 ? 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 5 containing an D approximation of the original path. If displayed to the user, this B value should be accompanied by some warning that the path has an E invalid encoding. Approximated text cannot be converted back to the  original path. This function ignores the user s locale, and assumes all C 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 B file paths are encoded in UTF8. If you need to create file paths D with an unusual or obscure encoding, encode them manually and then  use .  Since: 0.2  Convert a   to a platform specific format, . suitable for use with external OS functions.  Since: 0.3  Convert a   from a platform specific format, . suitable for use with external OS functions.  Since: 0.3 Attempt to convert a  # to a string suitable for use with  functions in  System.IO". 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   from a string suitable for use  with functions in  System.IO'. Do not use this function for parsing  human 1readable paths, as the character set decoding is  platform dependent. For converting human  readable  text to a  , use .  Since: 0.3.1 6789:;<=>?@ABCDE 1A file path with no root, directory, or filename FGH 23 6789:;<=>?@ABCDE FGH 2323 6789:6789:;>=<<=>?@ABCDECDE FGHportablejmillikin@gmail.com  null p = (p ==  ) Retrieves the   s root. Retrieves the   &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.    dirname "foobarbaz.txt" == "bar"  dirname "/" == ""  Since: 0.3.2  Retrieve a   s basename component.   basename "foo/bar.txt" == "bar" !Test whether a path is absolute. !Test whether a path is relative.  Appends two  2s. 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. IRemove "." and ".." directories from a path. 5Note that if any of the elements are symbolic links,  may change " which file the path resolves to.  Since: 0.2 Get a   s last extension, or J 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)KL  !"#$%  "!#$%  !"#$%portablejmillikin@gmail.comMNO&ALinux, BSD, OS X, and other UNIX or UNIX-like operating systems. 'ALinux, BSD, OS X, and other UNIX or UNIX-like operating systems. EThis variant is for use with GHC 7.2 or later, which tries to decode $ file paths in its IO computations. PQRSTUV(Windows and DOS WXYZ &'(&'(&'(portablejmillikin@gmail.com )*Attempt to convert a   to human readable text. 5If the path is decoded successfully, the result is a 4 containing J 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 5 containing an J approximation of the original path. If displayed to the user, this value D should be accompanied by some warning that the path has an invalid L encoding. Approximated text cannot be converted back to the original path. This function ignores the user %s locale, and assumes all file paths K 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 J are encoded in UTF8. If you need to create file paths with an unusual or 5 obscure encoding, encode them manually and then use /.  Since: 0.2 , Check if a  + 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. . Convert a   to a platform specific format, suitable % for use with external OS functions.  Since: 0.3 / Convert a   from a platform specific format, suitable % for use with external OS functions.  Since: 0.3 0Attempt to convert a  # to a string suitable for use with  functions in  System.IO". 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 1Attempt to parse a  % from a string suitable for use with  functions in  System.IO'. Do not use this function for parsing  human 1readable paths, as the character set decoding is  platform dependent. For converting human readable text to a   , use +.  Since: 0.3.1 &  !"#$%)*+,-./01 )*+./01,- )*+,-./01portablejmillikin@gmail.com&  !"#$%)*+,-./01portablejmillikin@gmail.com &'(portablejmillikin@gmail.com  !"#$%[      !"#$%&'()*+,-./01     2345346789:;<=>?@ABBCDEFGH3IJKLMNOPQRSTUVWXYZ[system-filepath-0.3.3Filesystem.Path.RulesFilesystem.PathFilesystem.Path.CurrentOSFilesystem.Path.InternalSystem.FilePath.CurrentOSSystem.FilePath.RulesSystem.FilePathRulesvalidsplitSearchPathtoTextfromTextencodedecode encodeString decodeStringFilePathemptynullroot directoryparentfilenamedirnamebasenameabsoluterelativeappendconcat commonPrefix stripPrefixcollapse extension extensions hasExtension addExtension addExtensions<.> dropExtensiondropExtensionsreplaceExtensionreplaceExtensionssplitExtensionsplitExtensionsposix posix_ghc702windows currentOS rulesNamebase Data.EitherRightLeftpathRootpathDirectories pathBasenamepathExtensionsRootRootWindowsCurrentVolumeRootWindowsVolume RootPosix ExtensionBasename DirectoryChunk chunkText chunkGooddotdots filenameChunkstrip Data.MaybeNothingsafeInitsafeHeadrootTextdirectoryChunksmaybeDecodeUtf8 posixToTextposixFromChunks posixFromText posixToBytesposixFromBytes posixValidposixSplitSearch winToText winFromTextwinValidwinSplit