úÎNìJî:      !"#$%&'()*+,-./0123456789-Unix-like systems (requires newtype deriving)unstable%Bryan O'Sullivan <bos@serpentine.com>A ;Monadic container for file information, allowing for clean ) construction of combinators. Wraps the : monad, but doesn't  allow ; or <. => ;Information collected during the traversal of a directory.  file path current recursion depth status of file ? Construct a   value. Run the given   on the given   and return its C result. This can be useful if you are writing a function to pass  to .  Example:   myFoldFunc :: a ->   -> a $ myFoldFunc a i = let useThisFile =  ( 1 "foo") i $ in if useThisFile ' then fiddleWith a  else a @AReturn the current  . +Return the name of the file being visited. $Return the current recursion depth.  Return the B for the current file. C;List the files in the given directory, sorted, and without "."  or "..". ?Search a directory recursively, with recursion controlled by a   ,. Lazily return a sorted list of all files  matching the given  . Any errors that occur are " dealt with by the given handler. error handler &control recursion into subdirectories ,decide whether a file appears in the result directory to start searching files that matched the   ?Search a directory recursively, with recursion controlled by a   ,. Lazily return a sorted list of all files  matching the given  . Any errors that occur are # ignored, with warnings printed to D. &control recursion into subdirectories ,decide whether a file appears in the result directory to start searching files that matched the   ?Search a directory recursively, with recursion controlled by a   /. Fold over all files found. Any errors that E occur are dealt with by the given handler. The fold is strict, and  run from "left" to "right"#, so the folded function should be B strict in its left argument to avoid space leaks. If you need a  right-to-left fold, use E on the result of   instead. error handler &control recursion into subdirectories function to fold with seed value for fold directory to start searching final value after folding ?Search a directory recursively, with recursion controlled by a   /. Fold over all files found. Any errors that - occur are ignored, with warnings printed to D . The fold  function is run from "left" to "right", so it should be strict ; in its left argument to avoid space leaks. If you need a  right-to-left fold, use E on the result of   instead. Unconditionally return F.  Return the file name extension.  Example:    "foo/bar.txt" => ".txt" 2Return the file name, without the directory name. What this means in practice:     "foo/bar.txt" => "bar.txt"  Example:    1 "init.c" 2Return the directory name, without the file name. What this means in practice:     "foo/bar.txt" => "foo" Example in a clause:   let hasSuffix = 0  isSuffixOf  in directory ` hasSuffix` "tests" GRun the given action in the H monad (using I) D if the current file is a symlink. Hide errors by wrapping results  in the J monad. /If the current file is a symbolic link, return K the target  of the link, otherwise L. /If the current file is a symbolic link, return K the status D of the ultimate endpoint of the link. Otherwise (including in the  case of an error), return L.  Example:   ! `liftM`  1   1Return the type of file currently being visited.  Example:     1  !>Return the type of a file. This is much more useful for case & analysis than the usual functions on B values. "#$%&'()*"Return the permission bits of the M. +Return F- if any of the given permission bits is set.  Example:   + 0444 ,-./Return F3 if the given path exists, relative to the current  file. For example, if "foo" is being visited, and you call  contains "bar", this combinator will return F if  "foo/bar" exists. 0 Lift a binary operator into the   monad, so that it D becomes a combinator. The left hand side of the combinator should  be a   a,, while the right remains a normal value of  type a. 1Return F if the current file's name matches the given   GlobPattern. 2345676This operator is useful to check if bits are set in a  M. 89:  !"#$%&'()*+,-./0123456789:  !0 /"#$%&'(),-.*+123456789:    !"#$%&'()*+,-./0123456789N      !"#$%&'()*+,-./0123456789:;<=>?@>?ABCDEFGHIJKLMKNOPQRSPTUKVWKXYKXZKX[K\]^FileManipCompat-0.17System.FilePath.FindCompatFileTypeUnknownSocket SymbolicLink Directory RegularFile NamedPipeCharacterDevice BlockDeviceRecursionPredicateFilterPredicate FindClauseFileInfoinfoPath infoDepth infoStatus evalClausefileInfofilePathdepth fileStatusfindWithHandlerfindfoldWithHandlerfoldalways extensionfileName directoryreadLink followStatusfileType statusTypedeviceIDfileID fileOwner fileGroupfileSize linkCountspecialDeviceIDfileMode filePermsanyPerms accessTimemodificationTimestatusChangeTimecontainsliftOp==?/=?>?=?<=?.&.?&&?||?transformers-0.2.2.0Control.Monad.Trans.State.LazyState mtl-2.0.1.0Control.Monad.State.ClassgetputFCrunFCmkFIevalFI mkFindClause unix-2.4.2.0System.Posix.Files FileStatusgetDirContentsbaseGHC.IO.Handle.FDstderrGHC.Basefoldrghc-primGHC.BoolTruewithLink GHC.TypesIOGHC.IOunsafePerformIO Data.MaybeMaybeJustNothingSystem.Posix.TypesFileMode