diff --git a/composition-prelude.cabal b/composition-prelude.cabal
--- a/composition-prelude.cabal
+++ b/composition-prelude.cabal
@@ -1,6 +1,6 @@
 cabal-version: >=1.10
 name: composition-prelude
-version: 1.4.0.0
+version: 1.4.0.1
 license: BSD3
 license-file: LICENSE
 copyright: Copyright: (c) 2017-2018 Vanessa McHale
diff --git a/src/Control/Composition.hs b/src/Control/Composition.hs
--- a/src/Control/Composition.hs
+++ b/src/Control/Composition.hs
@@ -21,6 +21,8 @@
     , biaxe
     -- * Composition with lists of functions
     , thread
+    -- * Tuple helpers
+    , both
     -- * Functor helpers
     , (<&>)
     -- * Reëxports from base
@@ -74,6 +76,9 @@
 
 biaxe :: (Traversable t, Monad m) => t (a -> b -> m ()) -> a -> b -> m ()
 biaxe = sequence_ .** bisequence'
+
+both :: (a -> b) -> (a, a) -> (b, b)
+both = join (***)
 
 -- | Backwards function
 (-$) :: (a -> b -> c) -> b -> a -> c
