úÎ>:»        portablejmillikin@gmail.com Re exported for convenience. Re exported for convenience. /Open a file in binary mode, and return an open . The   should be !d when it is no longer needed. . is easier to use, because it will handle the  s  lifetime automatically. See: " )Open a file in binary mode, and pass its  to a provided  computation. The ' will be automatically closed when the  computation returns. See: # .Read in the entire contents of a binary file. See: $ ?Replace the entire contents of a binary file with the provided  %. See: &  Append a %0 to a file. If the file does not exist, it will  be created. See: ' -Open a file in text mode, and return an open . The   should be !d when it is no longer needed. . is easier to use, because it will handle the   s lifetime automatically. See: ( 'Open a file in text mode, and pass its  to a provided  computation. The ' will be automatically closed when the  computation returns. See: ) ,Read in the entire contents of a text file. See: * =Replace the entire contents of a text file with the provided  +. See: , Append +0 to a file. If the file does not exist, it will  be created. See: -    portablejmillikin@gmail.com *Check if a file exists at the given path. See: . /Check if a directory exists at the given path. See: / 7Get when the object at a given path was last modified. DGet the size of an object at a given path. For special objects like - links or directories, the size is filesystem  and  platform  dependent. ERename a filesystem object. Some operating systems have restrictions G on what objects can be renamed; see linked documentation for details. See: 0 and 1 FCreate a directory at a given path. The user may choose whether it is 9 an error for a directory to already exist at that path. See: 2. (Succeed if the directory already exists FCreate a directory at a given path, including any parents which might  be missing. See: 3 (List contents of a directory, excluding "." and "..". See: 4 Remove a file. See: 5 Remove an empty directory. See: 6 >Recursively remove a directory tree rooted at the given path. See: 7 #Get the current working directory. See: 8 #Set the current working directory. See: 9  Get the user 4s home directory. This is useful for building paths  to more specific directories. 7For directing the user to open or safe a document, use  . FFor data files the user does not explicitly create, such as automatic  saves, use . See: :  Get the user 4s home directory. This is a good starting point for G file dialogs and other user queries. For data files the user does not 1 explicitly create, such as automatic saves, use .  Get the user 4s documents directory. This is a good place to save I user-created files. For data files the user does not explicitly create,  such as automatic saves, use . See: ;  Get the user 3s application data directory, given an application L label. This directory is where applications should store data the user did ? not explicitly create, such as databases and automatic saves. See: <  Get the user 4s application cache directory, given an application H label. This directory is where applications should store caches, which + might be large and can be safely deleted.  Get the user 0s application configuration directory, given an L application label. This directory is where applications should store their  configurations and settings. =>?   @      !"#$%&'%()%*+,-,./,- ,- %(%*0102301 01 454647484494:444;4<4=44>4?@ABCsystem-fileio-0.1 System.FileSystem.DirectorySystem.FileIO.InternalModeHandleopenFilewithFilereadFile writeFile appendFile openTextFile withTextFile readTextFile writeTextFileappendTextFileisFile isDirectorymodifiedfileSizerenamecreateDirectory createTree listDirectory removeFileremoveDirectory removeTreegetWorkingDirectorysetWorkingDirectorygetHomeDirectorygetDesktopDirectorygetDocumentsDirectorygetAppDataDirectorygetAppCacheDirectorygetAppConfigDirectorydecodeencodebase GHC.IO.HandlehCloseGHC.IO.Handle.FDopenBinaryFile System.IOwithBinaryFilebytestring-0.9.1.10Data.ByteStringData.ByteString.Internal ByteString text-0.11.0.7 Data.Text.IOData.Text.InternalTextdirectory-1.1.0.0 doesFileExistdoesDirectoryExist renameFilerenameDirectorycreateDirectoryIfMissinggetDirectoryContentsremoveDirectoryRecursivegetCurrentDirectorysetCurrentDirectorygetUserDocumentsDirectorygetAppUserDataDirectory homeSlashgetenvxdg