diff --git a/poly-arity.cabal b/poly-arity.cabal
--- a/poly-arity.cabal
+++ b/poly-arity.cabal
@@ -1,5 +1,5 @@
 Name:                   poly-arity
-Version:                0.0.1
+Version:                0.0.2
 Author:                 Athan Clark <athan.clark@gmail.com>
 Maintainer:             Athan Clark <athan.clark@gmail.com>
 License:                BSD3
diff --git a/src/Data/Function/Poly.hs b/src/Data/Function/Poly.hs
--- a/src/Data/Function/Poly.hs
+++ b/src/Data/Function/Poly.hs
@@ -21,6 +21,11 @@
   TypeListToArity '[] r = r -- basis
   TypeListToArity (x ': xs) r = x -> TypeListToArity xs r
 
+type family ArityMinusTypeList (r :: *) (xs :: [*]) :: * where
+  ArityMinusTypeList r '[] = r -- basis
+  ArityMinusTypeList (x -> r) (x ': xs) = ArityMinusTypeList r xs
+
+
 type family ExpectArity (xs :: [*]) (f :: *) :: Constraint where
   ExpectArity '[] f = () -- basis
   ExpectArity (x ': xs) (x -> remainder) = ExpectArity xs remainder
