diff --git a/src/Data/Validity.hs b/src/Data/Validity.hs
--- a/src/Data/Validity.hs
+++ b/src/Data/Validity.hs
@@ -69,6 +69,7 @@
 import Data.Either (isRight)
 import Data.Fixed (Fixed(MkFixed), HasResolution)
 import Data.List (intercalate)
+import Data.List.NonEmpty (NonEmpty((:|)))
 import Data.Maybe (Maybe, fromMaybe)
 import Data.Monoid
 import Data.Word (Word, Word16, Word32, Word64, Word8)
@@ -373,6 +374,17 @@
                  e <?!>
                  (unwords ["The element at index", show ix, "in the list"])) .
         zip [0 ..]
+
+-- | A nonempty list is valid if all the elements are valid.
+--
+-- See the instance for 'Validity [a]' for more information.
+instance Validity a => Validity (NonEmpty a) where
+    isValid = all isValid
+    validate (e :| es) =
+        mconcat
+            [ e <?!> "The first element of the nonempty list"
+            , es <?!> "The rest of the elements of the nonempty list"
+            ]
 
 -- | A Maybe thing is valid if the thing inside is valid or it's nothing
 -- It makes sense to assume that 'Nothing' is valid.
diff --git a/validity.cabal b/validity.cabal
--- a/validity.cabal
+++ b/validity.cabal
@@ -1,5 +1,5 @@
 name: validity
-version: 0.4.0.0
+version: 0.4.0.1
 cabal-version: >=1.10
 build-type: Simple
 license: MIT
