diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+0.2.5
+
+* Change parser to handle non-empty list.
+
 0.2.4
 
 * More Digit parsers.
diff --git a/digit.cabal b/digit.cabal
--- a/digit.cabal
+++ b/digit.cabal
@@ -1,5 +1,5 @@
 name:               digit
-version:            0.2.4
+version:            0.2.5
 license:            BSD3
 license-File:       etc/LICENCE
 author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>
@@ -32,6 +32,7 @@
                     base < 5 && >= 4.8
                     , lens >= 4.3.3 && < 5.0
                     , parsers >= 0.12.3 && < 0.13
+                    , semigroups >= 0.12 && < 1.0
                     , template-haskell >= 2.8
 
                     , parsec
diff --git a/src/Data/Digit.hs b/src/Data/Digit.hs
--- a/src/Data/Digit.hs
+++ b/src/Data/Digit.hs
@@ -64,6 +64,7 @@
 import Data.Functor((<$), (<$>))
 import Data.Int(Int)
 import Data.List(unfoldr, reverse, notElem)
+import Data.List.NonEmpty(NonEmpty, some1)
 import Data.Maybe(Maybe(Nothing, Just), maybe, fromMaybe)
 import Data.Ord(Ord((<)))
 import Data.String(String)
@@ -537,7 +538,7 @@
 
 -- | Division/modulus with 10.
 --
--- λ> divMod10 0
+-- >>> divMod10 0
 -- (0,0)
 --
 -- >>> divMod10 1
@@ -582,9 +583,9 @@
 
 parsedigits1 ::
   (Monad p, CharParsing p) =>
-  p [Digit]
+  p (NonEmpty Digit)
 parsedigits1 =
-  some parsedigit
+  some1 parsedigit
 
 skipdigits ::
   (Monad p, CharParsing p) =>
