Some utilities for deailing with files and directories for the Curry Package Manager.
| joinSearchPath
                  :: [String] -> StringJoins a list of directories into a search path. | 
| copyDirectory
                  :: String -> String -> IO ()Recursively copies a directory structure. | 
| copyDirectoryFollowingSymlinks
                  :: String -> String -> IO ()Recursively copies a directory structure following symlinks, i.e. | 
| createSymlink
                  :: String -> String -> IO IntCreates a new symlink. | 
| removeSymlink
                  :: String -> IO IntDeletes a symlink. | 
| isSymlink
                  :: String -> IO BoolTests whether a file is a symlink. | 
| linkTarget
                  :: String -> IO StringGets the target of a symlink. | 
| quote
                  :: String -> StringPuts a file argument into quotes to avoid problems with files containing blanks. | 
| fileInPath
                  :: String -> IO BoolChecks whether a file exists in one of the directories on the PATH. | 
| getFileInPath
                  :: String -> IO (Maybe String)Checks whether a file exists in one of the directories on the PATH and returns absolute path, otherwise returns Nothing. | 
| tempDir
                  :: IO StringGets CPM's temporary directory. | 
| inTempDir
                  :: IO a -> IO aExecutes an IO action with the current directory set to CPM's temporary directory. | 
| inDirectory
                  :: String -> IO a -> IO aExecutes an IO action with the current directory set to a specific directory. | 
| recreateDirectory
                  :: String -> IO ()Recreates a directory. | 
| removeDirectoryComplete
                  :: String -> IO ()Deletes a directory and its contents, if it exists, otherwise nothing is done. | 
| safeReadFile
                  :: String -> IO (Either IOError String)Reads the complete contents of a file and catches any error (which is returned). | 
| checkAndGetDirectoryContents
                  :: String -> IO [String]Returns the list of all entries in a directory and terminates with an error message if the directory does not exist. | 
| whenFileExists
                  :: String -> IO () -> IO ()Performs an action when a file exists. | 
| ifFileExists
                  :: String -> IO a -> IO a -> IO aPerforms one of two actions depending on the existence of a file. | 
| 
                       Joins a list of directories into a search path. | 
| 
                       Recursively copies a directory structure. | 
| 
                       Recursively copies a directory structure following symlinks, i.e. links get replaced by copies in the destination. | 
| 
                       Creates a new symlink. | 
| 
                       Deletes a symlink. | 
| 
                       Tests whether a file is a symlink. | 
| 
                       Gets the target of a symlink. | 
| 
                       Puts a file argument into quotes to avoid problems with files containing blanks. 
 | 
| 
                       Checks whether a file exists in one of the directories on the PATH. | 
| 
                       
                      Checks whether a file exists in one of the directories on the PATH
and returns absolute path, otherwise returns  | 
| 
                       Gets CPM's temporary directory. | 
| 
                       Executes an IO action with the current directory set to CPM's temporary directory. | 
| 
                       Executes an IO action with the current directory set to a specific directory. | 
| 
                       Recreates a directory. Deletes its contents if it already exists. | 
| 
                       Deletes a directory and its contents, if it exists, otherwise nothing is done. | 
| 
                       Reads the complete contents of a file and catches any error (which is returned). | 
| 
                       Returns the list of all entries in a directory and terminates with an error message if the directory does not exist. | 
| 
                       Performs an action when a file exists. | 
| 
                       Performs one of two actions depending on the existence of a file. |