diff --git a/FilePather.cabal b/FilePather.cabal
--- a/FilePather.cabal
+++ b/FilePather.cabal
@@ -1,5 +1,5 @@
 Name:               FilePather
-Version:            0.1.0
+Version:            0.1.1
 Author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>
 Maintainer:         Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>
 Copyright:          Tony Morris
diff --git a/src/System/FilePath/FilePather/FileType.hs b/src/System/FilePath/FilePather/FileType.hs
--- a/src/System/FilePath/FilePather/FileType.hs
+++ b/src/System/FilePath/FilePather/FileType.hs
@@ -1,6 +1,9 @@
 module System.FilePath.FilePather.FileType
 (
   FileType(..)
+, isFileType
+, isDirectoryType
+, isUnknownType
 ) where
 -- | The possible types of a file.
 data FileType =
@@ -8,4 +11,22 @@
   | Directory -- ^ The type is a directory.
   | Unknown -- ^ The type is unknown.
   deriving (Eq, Show, Enum)
+
+isFileType ::
+  FileType
+  -> Bool
+isFileType =
+  (==) File
+
+isDirectoryType ::
+  FileType
+  -> Bool
+isDirectoryType =
+  (==) Directory
+
+isUnknownType ::
+  FileType
+  -> Bool
+isUnknownType =
+  (==) Unknown
 
diff --git a/src/System/FilePath/FilePather/FilterPredicate.hs b/src/System/FilePath/FilePather/FilterPredicate.hs
--- a/src/System/FilePath/FilePather/FilterPredicate.hs
+++ b/src/System/FilePath/FilePather/FilterPredicate.hs
@@ -4,6 +4,8 @@
 , FilterPredicate
 , filterPredicateT
 , filterPredicate
+, filterPredicateT'
+, filterPredicate'
 , runFilterPredicateT
 , runFilterPredicate
 ) where
@@ -31,6 +33,20 @@
   -> FilterPredicate
 filterPredicate f =
   filterPredicateT (\z -> Identity . f z)
+
+-- | A filter predicate takes a 'FilePath' and returns whether or not to filter the value.
+filterPredicateT' ::
+  (FilePath -> f Bool)
+  -> FilterPredicateT f
+filterPredicateT' f =
+  filterPredicateT (const . f)
+
+-- | Construct a filter predicate that does not require effects to compute its result.
+filterPredicate' ::
+  (FilePath -> Bool)
+  -> FilterPredicate
+filterPredicate' f =
+  filterPredicate (const . f)
 
 -- | Extract the filter predicate function.
 runFilterPredicateT ::
diff --git a/src/System/FilePath/FilePather/RecursePredicate.hs b/src/System/FilePath/FilePather/RecursePredicate.hs
--- a/src/System/FilePath/FilePather/RecursePredicate.hs
+++ b/src/System/FilePath/FilePather/RecursePredicate.hs
@@ -6,9 +6,11 @@
 , recursePredicate
 , runRecursePredicateT
 , runRecursePredicate
+, toFilterPredicate
 ) where
 
 import Control.Monad.Identity
+import System.FilePath.FilePather.FilterPredicate
 
 -- | A recurse predicate takes a 'FilePath' and returns whether or not to continue recursing on that file.
 newtype RecursePredicateT f =
@@ -47,4 +49,11 @@
   -> Bool
 runRecursePredicate p =
   runIdentity . runRecursePredicateT p
+
+-- | Convert the recurse predicate to a filter predicate.
+toFilterPredicate ::
+  RecursePredicateT f
+  -> FilterPredicateT f
+toFilterPredicate (RecursePredicateT f) =
+  filterPredicateT (const . f)
 
