module System.FilePath.FilePather.FilterPredicate
(
FilterPredicateT
, FilterPredicate
, filterPredicateT
, filterPredicate
, runFilterPredicateT
, runFilterPredicate
) 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)
runFilterPredicateT ::
FilterPredicateT f
-> FilePath
-> FileType
-> f Bool
runFilterPredicateT (FilterPredicateT f) =
f
runFilterPredicate ::
FilterPredicate
-> FilePath
-> FileType
-> Bool
runFilterPredicate p k =
runIdentity . runFilterPredicateT p k