diff --git a/genvalidity-hspec.cabal b/genvalidity-hspec.cabal
--- a/genvalidity-hspec.cabal
+++ b/genvalidity-hspec.cabal
@@ -1,13 +1,13 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.31.1.
+-- This file has been generated from package.yaml by hpack version 0.31.2.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 032a6b3927945fdf541b5dbf8921f9708dd352801187b0fd3165045007fdced9
+-- hash: 791bd7ba810f379cf44a24551a54e049c374b48876b9f51b9fd0bb8807eb27e5
 
 name:           genvalidity-hspec
-version:        0.7.0.0
+version:        0.7.0.1
 synopsis:       Standard spec's for GenValidity instances
 description:    Note: There are companion packages for this library:
                 .
diff --git a/src/Test/Validity/Arbitrary.hs b/src/Test/Validity/Arbitrary.hs
--- a/src/Test/Validity/Arbitrary.hs
+++ b/src/Test/Validity/Arbitrary.hs
@@ -42,4 +42,4 @@
 arbitraryGeneratesOnlyValid ::
        forall a. (Show a, Validity a, Arbitrary a)
     => Property
-arbitraryGeneratesOnlyValid = genGeneratesValid @a arbitrary shrink
+arbitraryGeneratesOnlyValid = genGeneratesValid @a arbitrary
diff --git a/src/Test/Validity/GenValidity.hs b/src/Test/Validity/GenValidity.hs
--- a/src/Test/Validity/GenValidity.hs
+++ b/src/Test/Validity/GenValidity.hs
@@ -96,7 +96,7 @@
 genValidGeneratesValid ::
        forall a. (Show a, GenValid a)
     => Property
-genValidGeneratesValid = genGeneratesValid @a genValid shrinkValid
+genValidGeneratesValid = genGeneratesValid @a genValid
 
 -- | @genValid@ only generates invalid data
 --
@@ -107,4 +107,4 @@
 genInvalidGeneratesInvalid ::
        forall a. (Show a, GenInvalid a)
     => Property
-genInvalidGeneratesInvalid = genGeneratesInvalid @a genInvalid shrinkInvalid
+genInvalidGeneratesInvalid = genGeneratesInvalid @a genInvalid
diff --git a/src/Test/Validity/Ord.hs b/src/Test/Validity/Ord.hs
--- a/src/Test/Validity/Ord.hs
+++ b/src/Test/Validity/Ord.hs
@@ -111,6 +111,12 @@
             fungestr = geTypeStr @a
             funltstr = ltTypeStr @a
             fungtstr = gtTypeStr @a
+            minmaxtstr = genDescr @(a->a->a)
+            itProp s_ = it $ unwords
+                [ s_
+                  , "\"" ++ genname
+                  , name ++ "\"" ++ "'s"
+                ]
             cmple = (<=) @a
             cmpge = (>=) @a
             cmplt = (<) @a
@@ -120,104 +126,40 @@
             s2 = shrinkT2 s
         describe ("Ord " ++ name) $ do
             describe funlestr $ do
-                it
-                    (unwords
-                         [ "is reflexive for"
-                         , "\"" ++ genname
-                         , name ++ "\"" ++ "'s"
-                         ]) $
+                itProp "is reflexive for" $
                     reflexivityOnGen cmple gen s
-                it
-                    (unwords
-                         [ "is antisymmetric for"
-                         , "\"" ++ genname
-                         , name ++ "\"" ++ "'s"
-                         ]) $
+                itProp "is antisymmetric for" $
                     antisymmetryOnGens cmple gen2 s
-                it
-                    (unwords
-                         [ "is transitive for"
-                         , "\"" ++ genname
-                         , name ++ "\"" ++ "'s"
-                         ]) $
+                itProp "is transitive for" $
                     transitivityOnGens cmple gen3 s
-                it
-                    (unwords
-                         [ "is equivalent to (\\a b -> compare a b /= GT) for"
-                         , "\"" ++ genname
-                         , name ++ "\"" ++ "'s"
-                         ]) $
+                itProp "is equivalent to (\\a b -> compare a b /= GT) for" $
                     equivalentOnGens2 cmple (\a b -> compare a b /= GT) gen2 s2
             describe fungestr $ do
-                it
-                    (unwords
-                         [ "is reflexive for"
-                         , "\"" ++ genname
-                         , name ++ "\"" ++ "'s"
-                         ]) $
+                itProp "is reflexive for" $
                     reflexivityOnGen cmpge gen s
-                it
-                    (unwords
-                         [ "is antisymmetric for"
-                         , "\"" ++ genname
-                         , name ++ "\"" ++ "'s"
-                         ]) $
+                itProp "is antisymmetric for" $
                     antisymmetryOnGens cmpge gen2 s
-                it
-                    (unwords
-                         [ "is transitive for"
-                         , "\"" ++ genname
-                         , name ++ "\"" ++ "'s"
-                         ]) $
+                itProp "is transitive for" $
                     transitivityOnGens cmpge gen3 s
-                it
-                    (unwords
-                         [ "is equivalent to (\\a b -> compare a b /= LT) for"
-                         , "\"" ++ genname
-                         , name ++ "\"" ++ "'s"
-                         ]) $
+                itProp "is equivalent to (\\a b -> compare a b /= LT) for" $
                     equivalentOnGens2 cmpge (\a b -> compare a b /= LT) gen2 s2
             describe funltstr $ do
-                it
-                    (unwords
-                         [ "is antireflexive for"
-                         , "\"" ++ genname
-                         , name ++ "\"" ++ "'s"
-                         ]) $
+                itProp "is antireflexive for" $
                     antireflexivityOnGen cmplt gen s
-                it
-                    (unwords
-                         [ "is transitive for"
-                         , "\"" ++ genname
-                         , name ++ "\"" ++ "'s"
-                         ]) $
+                itProp "is transitive for" $
                     transitivityOnGens cmplt gen3 s
-                it
-                    (unwords
-                         [ "is equivalent to (\\a b -> compare a b == LT) for"
-                         , "\"" ++ genname
-                         , name ++ "\"" ++ "'s"
-                         ]) $
+                itProp "is equivalent to (\\a b -> compare a b == LT) for" $
                     equivalentOnGens2 cmplt (\a b -> compare a b == LT) gen2 s2
             describe fungtstr $ do
-                it
-                    (unwords
-                         [ "is antireflexive for"
-                         , "\"" ++ genname
-                         , name ++ "\"" ++ "'s"
-                         ]) $
+                itProp "is antireflexive for" $
                     antireflexivityOnGen cmpgt gen s
-                it
-                    (unwords
-                         [ "is transitive for"
-                         , "\"" ++ genname
-                         , name ++ "\"" ++ "'s"
-                         ]) $
+                itProp "is transitive for" $
                     transitivityOnGens cmpgt gen3 s
-                it
-                    (unwords
-                         [ "is equivalent to (\\a b -> compare a b == GT) for"
-                         , "\"" ++ genname
-                         , name ++ "\"" ++ "'s"
-                         ]) $
+                itProp "is equivalent to (\\a b -> compare a b == GT) for" $
                     equivalentOnGens2 cmpgt (\a b -> compare a b == GT) gen2 s2
+            describe (minmaxtstr "min") $ do
+                itProp "is equivalent to (\\a b -> if a <= b then a else b) for" $
+                    equivalentOnGens2 min (\a b -> if a <= b then a else b) gen2 s2
+            describe (minmaxtstr "max") $ do
+                itProp "is equivalent to (\\a b -> if a >= b then a else b) for" $
+                    equivalentOnGens2 max (\a b -> if a >= b then a else b) gen2 s2
