packages feed

cabal-gild-1.5.0.0: source/library/CabalGild/Unstable/Class/MonadWalk.hs

module CabalGild.Unstable.Class.MonadWalk where

import qualified System.FilePattern as FilePattern
import qualified System.FilePattern.Directory as FilePattern

-- | A 'Monad' that can also "walk" a directory to discover files within it.
class (Monad m) => MonadWalk m where
  -- | This has the same signature and semantics as
  -- 'FilePattern.getDirectoryFilesIgnore'. The first argument is the directory
  -- to walk. The second argument is a list of patterns to include. The third
  -- argument is a list of patterns to exclude.
  walk :: FilePath -> [FilePattern.FilePattern] -> [FilePattern.FilePattern] -> m [FilePath]

-- | Uses 'FilePattern.getDirectoryFilesIgnore'.
instance MonadWalk IO where
  walk = FilePattern.getDirectoryFilesIgnore