diff --git a/numhask-range.cabal b/numhask-range.cabal
--- a/numhask-range.cabal
+++ b/numhask-range.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 03d5d2d549e5d386f737a73e46866712a816b0c76dd598e3e77bd88bc147c19e
+-- hash: ab6ef31a563b1cc1465c2b9cf31a47e597274887b02e9ec145286d869c5bda79
 
 name:           numhask-range
-version:        0.2.2.1
+version:        0.2.3.1
 synopsis:       Numbers that are range representations
 description:    Numbers that represent ranges of all sorts.
 category:       project
@@ -26,6 +26,14 @@
   location: https://github.com/tonyday567/numhask-range
 
 library
+  exposed-modules:
+      NumHask.Space
+      NumHask.Range
+      NumHask.RangeD
+      NumHask.Rect
+      NumHask.Pair
+  other-modules:
+      Paths_numhask_range
   hs-source-dirs:
       src
   default-extensions: NegativeLiterals NoImplicitPrelude OverloadedStrings UnicodeSyntax
@@ -35,22 +43,16 @@
     , adjunctions
     , base >=4.7 && <4.12
     , distributive
-    , numhask-prelude >=0.0.5.1
+    , numhask-prelude >=0.1.0.1
     , protolude
     , semigroupoids
-  exposed-modules:
-      NumHask.Space
-      NumHask.Range
-      NumHask.RangeD
-      NumHask.Rect
-      NumHask.Pair
-  other-modules:
-      Paths_numhask_range
   default-language: Haskell2010
 
 test-suite test
   type: exitcode-stdio-1.0
   main-is: test.hs
+  other-modules:
+      Paths_numhask_range
   hs-source-dirs:
       test
   default-extensions: NegativeLiterals NoImplicitPrelude OverloadedStrings UnicodeSyntax
@@ -58,9 +60,8 @@
   build-depends:
       base >=4.7 && <5
     , doctest
-    , numhask-prelude >=0.0.5.1
+    , numhask-prelude >=0.1.0.1
     , numhask-range
+    , numhask-test
     , tasty
-  other-modules:
-      Paths_numhask_range
   default-language: Haskell2010
diff --git a/src/NumHask/Pair.hs b/src/NumHask/Pair.hs
--- a/src/NumHask/Pair.hs
+++ b/src/NumHask/Pair.hs
@@ -208,7 +208,7 @@
 instance (Eq a, Ord a, Signed a, Additive a) => Ord (Pair a) where
   (<=) (Pair x y) (Pair x' y') = (abs x + abs y) <= (abs x' + abs y')
 
-instance (Epsilon a) => Epsilon (Pair a) where
+instance (AdditiveInvertible a, Epsilon a) => Epsilon (Pair a) where
   nearZero (Pair a b) = nearZero a && nearZero b
   aboutEqual a b = nearZero $ a - b
 
diff --git a/src/NumHask/Range.hs b/src/NumHask/Range.hs
--- a/src/NumHask/Range.hs
+++ b/src/NumHask/Range.hs
@@ -264,7 +264,7 @@
 
 -- | turn a range into n `a`s pleasing to human sense and sensibility
 -- the `a`s may well lie outside the original range as a result
-gridSensible :: (FromInteger a, Fractional a, QuotientField a Integer, ExpField a) =>
+gridSensible :: (Ord a, FromInteger a, Fractional a, QuotientField a Integer, ExpField a) =>
     Pos -> Range a -> Integer -> [a]
 gridSensible tp (Range l u) n =
     (+ if tp==MidPos then step/two else zero) <$> posns
diff --git a/stack.yaml b/stack.yaml
--- a/stack.yaml
+++ b/stack.yaml
@@ -4,6 +4,8 @@
   - .
 
 extra-deps:
-  - numhask-prelude-0.0.5.1
-  - numhask-0.2.2.0
+  - numhask-prelude-0.1.0.1
+  - numhask-0.2.3.0
+  - numhask-test-0.1.0.0
+
 
diff --git a/test/test.hs b/test/test.hs
--- a/test/test.hs
+++ b/test/test.hs
@@ -86,6 +86,7 @@
      , Normed s (Element s)
      , Signed s
      , Epsilon s
+     , AdditiveGroup s
      )
   => Element s
   -> [Law s]
@@ -154,6 +155,7 @@
      , Signed (r a)
      , MultiplicativeGroup (r a)
      , Epsilon (r a)
+     , AdditiveGroup (r a)
      )
   => a
   -> [Law (r a)]
