h*+*<      !"#$%&'()*+,-./0123456789:;0.4.14.12010 John MillikinMITjmillikin@gmail.comportable Safe-Inferred7 system-filepath The type of platformFormat for  is conditionally selected at compilation time. As such it is only intended for direct use with external OS functions and code that expects platformFormat to be stable across platforms may fail to subsequently compile on a differing platform.For example: on Windows or OSX platformFormat will be <, and on Linux it will be =.If portability is a concern, restrict usage to functions which do not expose platformFormat directly.system-filepath Check if a   is valid; it must not contain any illegal characters, and must have a root appropriate to the current .system-filepathSplit a search path, such as $PATH or  $PYTHONPATH, into a list of  s.Note: The type of platformTextFormat can change depending upon the underlying compilation platform. Consider using  instead. See  for more information.system-filepathsplitSearchPathString is like 4, but takes a string encoded in the format used by  System.IO.system-filepathAttempt 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 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.2system-filepath#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.2system-filepath Convert a   to a platform@specific format, suitable for use with external OS functions.Note: The type of platformTextFormat can change depending upon the underlying compilation platform. Consider using  or  instead. See  for more information. Since: 0.3system-filepath Convert a   from a platform@specific format, suitable for use with external OS functions.Note: The type of platformTextFormat can change depending upon the underlying compilation platform. Consider using  or   instead. See  for more information. Since: 0.3system-filepathAttempt to convert a  1 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 system-filepathAttempt 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 system-filepath0A file path with no root, directory, or filename+@ A BCDEFGHIJKLMNOP QRSTUVWXYZ[\]^2010 John MillikinMITjmillikin@gmail.comportable Safe-Inferred system-filepath null p = (p ==  ) system-filepathRetrieves the  @s root.system-filepathRetrieves the  @s directory. If the path is already a directory, it is returned unchanged.system-filepathRetrieves the  @s parent directory.system-filepath Retrieve a  @s filename component. $filename "foo/bar.txt" == "bar.txt" system-filepath 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.1system-filepath Retrieve a  @s basename component.  basename "foo/bar.txt" == "bar" system-filepath Test whether a path is absolute.system-filepath Test whether a path is relative.system-filepath Appends two  =s. If the second path is absolute, it is returned unchanged.system-filepath An alias for .system-filepath A fold over .system-filepath2Find the greatest common prefix between a list of  s.system-filepathRemove 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.1system-filepathRemove 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.2system-filepathexpand a FilePath into a list of the root name, directories, and file name Since: 0.4.7system-filepathGet a  @s last extension, or _ if it has no extensions.system-filepathGet a  @s full extension list.system-filepathGet whether a  #@s last extension is the predicate.system-filepath$Append an extension to the end of a  . system-filepath'Append many extensions to the end of a  .!system-filepath An alias for ."system-filepath Remove a  @s last extension.#system-filepathRemove all extensions from a  .$system-filepath Replace a  @s last extension.%system-filepathRemove all extensions from a  $, and replace them with a new list.&system-filepath splitExtension p = (" p,  p)'system-filepath splitExtensions p = (# p,  p) !"$ #%&' !"$ #%&'2010 John MillikinMITjmillikin@gmail.comportable Safe-Inferred*system-filepath:Linux, BSD, and other UNIX or UNIX-like operating systems.+system-filepath:Linux, BSD, and other UNIX or UNIX-like operating systems.This is a variant of * for use with GHC 7.2, which tries to decode file paths in its IO computations.Since: 0.3.3 / 0.4.2,system-filepath:Linux, BSD, and other UNIX or UNIX-like operating systems.This is a variant of * 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-system-filepathDarwin and Mac OS X.This is almost identical to *!, but with a native path type of < rather than =.Since: 0.3.4 / 0.4.3.system-filepathDarwin and Mac OS X.This is a variant of - 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/system-filepathWindows and DOS *+,/-.*+,/-. 2010 John MillikinMITjmillikin@gmail.comportable Safe-Inferred) 1system-filepathAttempt 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 2./If the path cannot be decoded, the result is a ? 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 6 and then decode them manually. Since: 0.22system-filepath#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 7. Since: 0.23system-filepath Check if a   is valid; it must not contain any illegal characters, and must have a root appropriate to the current .4system-filepathSplit a search path, such as $PATH or  $PYTHONPATH, into a list of  s.5system-filepathsplitSearchPathString is like 44, but takes a string encoded in the format used by  System.IO.6system-filepath Convert a   to a platform@specific format, suitable for use with external OS functions.Note: The type platformTextFormat can change depending upon the underlying compilation platform. Consider using 1 or 8 instead. See  for more information. Since: 0.37system-filepath Convert a   from a platform@specific format, suitable for use with external OS functions.Note: The type platformTextFormat can change depending upon the underlying compilation platform. Consider using 2 or 9 instead. See  for more information. Since: 0.38system-filepathAttempt to convert a  1 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 1. Since: 0.3.19system-filepathAttempt 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 2. Since: 0.3.1(  &$!"#'%  0126789345 0126789345      !"#$%&'()*+,-./0123456     789:;<=>?@A?@BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_?`a/system-filepath-0.4.14.1-4PYDislL0bsGvaBFud5fdxFilesystem.Path.RulesFilesystem.PathFilesystem.Path.CurrentOSsystem-filepathFilesystem.Path.InternalRulesvalidsplitSearchPathsplitSearchPathStringtoTextfromTextencodedecode encodeString decodeStringFilePathemptynullroot directoryparentfilenamedirnamebasenameabsoluterelativeappendconcat commonPrefix stripPrefixcollapsesplitDirectories extension extensions hasExtension addExtension addExtensions<.> dropExtensiondropExtensionsreplaceExtensionreplaceExtensionssplitExtensionsplitExtensions$fMonoidFilePath$fSemigroupFilePathposix posix_ghc702 posix_ghc704darwin darwin_ghc702windows currentOS$fShowFilePath$fIsStringFilePath text-2.0.2Data.Text.InternalTextbytestring-0.11.5.2Data.ByteString.Internal.Type ByteStringbase Data.EitherRightLeft rulesNamepathExtensions pathBasenamepathDirectoriespathRootRootRootWindowsDoubleQMarkRootWindowsUncRootWindowsCurrentVolumeRootWindowsVolume RootPosix ExtensionBasename DirectoryChunkdotdots filenameChunk rootChunkrootTextdirectoryChunksescapeunescape unescape'unescapeBytes'splitBy textSplitBy parseFilenamemaybeDecodeUtf8 GHC.MaybeNothing