module System.FilePath.FilePather.FilterPredicate
(
FilterPredicateT
, FilterPredicate
, filterPredicateT
, filterPredicate
, filterPredicateT'
, filterPredicate'
, runFilterPredicateT
, runFilterPredicate
, isDirectoryType
, isFileType
, isUnknownType
) where
import Control.Monad.Identity
import System.FilePath.FilePather.FileType
newtype FilterPredicateT f =
FilterPredicateT (FilePath -> FileType -> f Bool)
type FilterPredicate =
FilterPredicateT Identity
filterPredicateT ::
(FilePath -> FileType -> f Bool)
-> FilterPredicateT f
filterPredicateT =
FilterPredicateT
filterPredicate ::
(FilePath -> FileType -> Bool)
-> FilterPredicate
filterPredicate f =
filterPredicateT (\z -> Identity . f z)
filterPredicateT' ::
(FilePath -> f Bool)
-> FilterPredicateT f
filterPredicateT' f =
filterPredicateT (const . f)
filterPredicate' ::
(FilePath -> Bool)
-> FilterPredicate
filterPredicate' f =
filterPredicate (const . f)
runFilterPredicateT ::
FilterPredicateT f
-> FilePath
-> FileType
-> f Bool
runFilterPredicateT (FilterPredicateT f) =
f
runFilterPredicate ::
FilterPredicate
-> FilePath
-> FileType
-> Bool
runFilterPredicate p k =
runIdentity . runFilterPredicateT p k
isDirectoryType ::
Monad f =>
FilterPredicateT f
isDirectoryType =
filterPredicateT . const $ return . isDirectory
isFileType ::
Monad f =>
FilterPredicateT f
isFileType =
filterPredicateT . const $ return . isFile
isUnknownType ::
Monad f =>
FilterPredicateT f
isUnknownType =
filterPredicateT . const $ return . isUnknown