diff --git a/contravariant-extras.cabal b/contravariant-extras.cabal
--- a/contravariant-extras.cabal
+++ b/contravariant-extras.cabal
@@ -1,7 +1,7 @@
 name:
   contravariant-extras
 version:
-  0.3.4
+  0.3.5
 category:
   Control
 synopsis:
@@ -46,10 +46,11 @@
   exposed-modules:
     Contravariant.Extras
     Contravariant.Extras.Contrazip
+    Contravariant.Extras.Eliminate
     Contravariant.Extras.Op
     Contravariant.Extras.Op.Contrazip
   build-depends:
-    base >= 4 && < 4.12,
+    base >= 4 && < 5,
     tuple-th >= 0.2.5 && < 0.3,
     template-haskell >= 2.8 && < 3,
     contravariant >= 1.3 && < 2,
diff --git a/library/Contravariant/Extras.hs b/library/Contravariant/Extras.hs
--- a/library/Contravariant/Extras.hs
+++ b/library/Contravariant/Extras.hs
@@ -3,6 +3,7 @@
   -- |
   -- A berserk collection of @contrazip@ functions with arities of up to 42.
   module Contravariant.Extras.Contrazip,
+  module Contravariant.Extras.Eliminate,
   (>*<),
   contramany,
   Supplied(..),
@@ -11,6 +12,7 @@
 
 import BasePrelude hiding ((<>))
 import Contravariant.Extras.Contrazip
+import Contravariant.Extras.Eliminate
 import Data.Functor.Contravariant.Divisible
 import Data.Semigroup (Semigroup ((<>)))
 
diff --git a/library/Contravariant/Extras/Eliminate.hs b/library/Contravariant/Extras/Eliminate.hs
new file mode 100644
--- /dev/null
+++ b/library/Contravariant/Extras/Eliminate.hs
@@ -0,0 +1,25 @@
+module Contravariant.Extras.Eliminate where
+
+import BasePrelude
+import Contravariant.Extras.Contrazip
+import Data.Functor.Contravariant.Divisible
+import qualified Contravariant.Extras.TH as TH
+
+
+eliminate2 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> f (a1, a2)
+eliminate2 fn a b = contrazip2 (fn a) (fn b)
+
+eliminate3 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> f (a1, a2, a3)
+eliminate3 fn a b c = contrazip3 (fn a) (fn b) (fn c)
+
+eliminate4 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> f (a1, a2, a3, a4)
+eliminate4 fn a b c d = contrazip4 (fn a) (fn b) (fn c) (fn d)
+
+eliminate5 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> f (a1, a2, a3, a4, a5)
+eliminate5 fn a b c d e = contrazip5 (fn a) (fn b) (fn c) (fn d) (fn e)
+
+eliminate6 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> f (a1, a2, a3, a4, a5, a6)
+eliminate6 fn a b c d e f = contrazip6 (fn a) (fn b) (fn c) (fn d) (fn e) (fn f)
+
+eliminate7 :: Divisible f => (forall x. g x -> f x) -> g a1 -> g a2 -> g a3 -> g a4 -> g a5 -> g a6 -> g a7 -> f (a1, a2, a3, a4, a5, a6, a7)
+eliminate7 fn a b c d e f g = contrazip7 (fn a) (fn b) (fn c) (fn d) (fn e) (fn f) (fn g)
