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.2
+  0.3.3
 category:
   Control
 synopsis:
@@ -38,7 +38,7 @@
     library
   ghc-options:
   default-extensions:
-    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFunctor, DeriveGeneric, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, ImpredicativeTypes, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
+    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
   default-language:
     Haskell2010
   other-modules:
diff --git a/library/Contravariant/Extras.hs b/library/Contravariant/Extras.hs
--- a/library/Contravariant/Extras.hs
+++ b/library/Contravariant/Extras.hs
@@ -4,6 +4,7 @@
   -- A berserk collection of @contrazip@ functions with arities of up to 42.
   module Contravariant.Extras.Contrazip,
   contramany,
+  Supplied,
 )
 where
 
@@ -29,4 +30,21 @@
           divide id f loop
         nil =
           conquer
+
+-- |
+-- A combination of a divisible functor with some input for it.
+-- Allows to use the 'Monoid' API for composition.
+data Supplied divisible =
+  forall input. Supplied !(divisible input) !input
+
+instance Divisible divisible => Monoid (Supplied divisible) where
+  mempty =
+    Supplied conquer ()
+  mappend (Supplied divisible1 input1) (Supplied divisible2 input2) =
+    Supplied divisible3 input3
+    where
+      divisible3 =
+        divide id divisible1 divisible2
+      input3 =
+        (input1, input2)
 
