úÎK(FÜ+      !"#$%&'()*portablejmillikin@gmail.com+, 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 - ? 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 . 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 toBytes 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  fromBytes.  Since: 0.2  Convert a  to the platform s underlying format.  Since: 0.3 Convert the platform s underlying format to a .  Since: 0.3 /0123456789:;<=>1A file path with no root, directory, or filename ?@A+,/0123456789:;<=>?@A+,+,/0123/0123476556789:;<=><=>?@Aportablejmillikin@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 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. Remove "." 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 B 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)CD  !  !  !portablejmillikin@gmail.comEFG"ALinux, BSD, OS X, and other UNIX or UNIX-like operating systems. HIJKLMN#Windows and DOS OPQR "#"#"#portablejmillikin@gmail.com$%Attempt to convert a S to human readable text. 5If the path is decoded successfully, the result is a - 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 . 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 toBytes and then decode them manually.  Since: 0.2 & Convert human readable text into a S. 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  fromBytes.  Since: 0.2 ' Check if a S+ 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 Ss. )*"  !$%&'()*$%&)*'($%&'()*T      !"#$%&'()   *+,-+,. /0123456789::;<=>?+@ABCDEFGHIJKLMNOPQ+R Ssystem-filepath-0.3System.FilePath.RulesSystem.FilePathSystem.FilePath.CurrentOSSystem.FilePath.InternalRulesvalidsplitSearchPathtoTextfromTextencodedecodeFilePathemptynullroot directoryparentfilenamebasenameabsoluterelativeappendconcat commonPrefixcollapse extension extensions hasExtension addExtension addExtensions<.> dropExtensiondropExtensionsreplaceExtensionreplaceExtensionssplitExtensionsplitExtensionsposixwindows currentOS rulesNamebase Data.EitherRightLeftpathRootpathDirectories pathBasenamepathExtensionsRootRootWindowsCurrentVolumeRootWindowsVolume RootPosix ExtensionBasename DirectoryChunk chunkText chunkGooddotdots filenameChunk Data.MaybeNothingsafeInitsafeHeadrootTextdirectoryChunksmaybeDecodeUtf8 posixToTextposixFromChunks posixFromText posixToBytesposixFromBytes posixValidposixSplitSearch winToText winFromTextwinValidwinSplitGHC.IO