diff --git a/Data/Constraint/Forall.hs b/Data/Constraint/Forall.hs
--- a/Data/Constraint/Forall.hs
+++ b/Data/Constraint/Forall.hs
@@ -22,6 +22,7 @@
   ( Forall, inst
   , ForallF, instF
   , Forall1, inst1
+  , ForallT, instT
   ) where
 
 import Data.Constraint
@@ -39,7 +40,9 @@
 data M a
 type Forall1 (p :: (* -> *) -> Constraint) = (p F, p M)
 
+type ForallT (p :: * -> Constraint) (t :: (* -> *) -> * -> *) = (p (t F A), p (t M B))
 
+
 -- | instantiate a quantified constraint on kind @*@
 inst :: forall p a. Forall p :- p a
 inst = trans (unsafeCoerceConstraint :: p A :- p a) weaken1
@@ -50,4 +53,7 @@
 -- | instantiate a quantified constraint on kind @* -> *@
 inst1 :: forall (p :: (* -> *) -> Constraint) (f :: * -> *). Forall1 p :- p f
 inst1 = trans (unsafeCoerceConstraint :: p F :- p f) weaken1
+
+instT :: forall (p :: * -> Constraint) (t :: (* -> *) -> * -> *) (f :: * -> *) a. ForallT p t :- p (t f a)
+instT = trans (unsafeCoerceConstraint :: p (t F A) :- p (t f a)) weaken1
 
diff --git a/constraints.cabal b/constraints.cabal
--- a/constraints.cabal
+++ b/constraints.cabal
@@ -1,6 +1,6 @@
 name:          constraints
 category:      Constraints
-version:       0.3.1
+version:       0.3.2
 license:       BSD3
 cabal-version: >= 1.10
 license-file:  LICENSE
