diff --git a/Numeric/Nat/Zeroless.hs b/Numeric/Nat/Zeroless.hs
--- a/Numeric/Nat/Zeroless.hs
+++ b/Numeric/Nat/Zeroless.hs
@@ -14,6 +14,8 @@
 module Numeric.Nat.Zeroless
   ( D0(..), D1(..), D2(..), (:+:), (:*:), Zeroless(..)
   , Succ, Pred
+  , LT, GT, EQ
+  , Compare
   , N1, N8, N16, N32, N64
   , Nat(..), nat 
   , Fin(..)
@@ -87,6 +89,23 @@
 -- * Adder
 type n :+: m = Add C0 n m
 
+data LT
+data EQ
+data GT
+
+type family   Compare' a l      r
+type instance Compare' a D0     D0     = a
+type instance Compare' a D0     (D1 r) = LT
+type instance Compare' a D0     (D2 r) = LT
+type instance Compare' a (D1 r) D0     = GT
+type instance Compare' a (D1 l) (D1 r) = Compare' a l r
+type instance Compare' a (D1 l) (D2 r) = Compare' LT l r
+type instance Compare' a (D2 l) D0     = GT
+type instance Compare' a (D2 l) (D1 r) = Compare' GT l r
+type instance Compare' a (D2 l) (D2 r) = Compare' a l r
+
+type Compare m n = Compare' EQ m n 
+
 -- * Multiplier
 type family n :*: m
 type instance D0 :*: m = D0
@@ -121,7 +140,7 @@
       -> (forall m. Zeroless m => f m -> f (D2 m))
       -> f n
   caseNat
-    :: forall r. ((n ~ D0) => r) 
+    :: ((n ~ D0) => r) 
     -> (forall x. (n ~ D1 x, Zeroless x) => x -> r)
     -> (forall x. (n ~ D2 x, Zeroless x) => x -> r)
     -> n -> r
diff --git a/representable-tries.cabal b/representable-tries.cabal
--- a/representable-tries.cabal
+++ b/representable-tries.cabal
@@ -1,6 +1,6 @@
 name:          representable-tries
 category:      Data Structures, Functors, Monads, Comonads
-version:       2.0.0.2
+version:       2.0.1.1
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
@@ -33,12 +33,12 @@
 
   build-depends: 
     base >= 4 && < 5,
-    bifunctors >= 0.1.1 && < 0.2,
+    bifunctors >= 0.1.1.1 && < 0.2,
     comonad >= 1.1 && < 1.2,
     containers >= 0.3 && < 0.5,
     distributive >= 0.2 && < 0.3,
     mtl >= 2.0.1.0 && < 2.1,
-    semigroups >= 0.5 && < 0.6,
+    semigroups >= 0.6 && < 0.7,
     semigroupoids >= 1.2.2 && < 1.3.0,
     transformers >= 0.2.0 && < 0.3,
     keys                   >= 1.8 && < 1.9,
