diff --git a/lean-peano.cabal b/lean-peano.cabal
--- a/lean-peano.cabal
+++ b/lean-peano.cabal
@@ -7,7 +7,7 @@
 -- hash: 64e91e616abbba7139ad4f000d8a6a1505b2a315175f0489493a319d6a76ac89
 
 name:           lean-peano
-version:        0.1.0.1
+version:        0.1.1.0
 description:    Please see the README on GitHub at <https://github.com/oisdk/lean-peano#readme>
 homepage:       https://github.com/oisdk/lean-peano#readme
 bug-reports:    https://github.com/oisdk/lean-peano/issues
diff --git a/src/Numeric/Peano.hs b/src/Numeric/Peano.hs
--- a/src/Numeric/Peano.hs
+++ b/src/Numeric/Peano.hs
@@ -127,9 +127,9 @@
         | otherwise = go n where
             go 0 = Z
             go m = S (go (m-1))
+    Z   - _   = Z
     n   - Z   = n
     S n - S m = n - m
-    Z   - S _ = Z
 
 -- | The maximum bound here is infinity.
 --
diff --git a/src/Numeric/Peano/Typelevel.hs b/src/Numeric/Peano/Typelevel.hs
--- a/src/Numeric/Peano/Typelevel.hs
+++ b/src/Numeric/Peano/Typelevel.hs
@@ -94,9 +94,9 @@
 -- | Subtraction of type-level naturals.
 infixl 6 -
 type family (-) (n :: Nat) (m :: Nat) :: Nat where
+    Z   - _   = Z
     n   - Z   = n
     S n - S m = n - m
-    Z   - S _ = Z
 
 -- | Remainder on type-level naturals.
 type family (%) (n :: Nat) (m :: Nat) :: Nat where
