diff --git a/composition-prelude.cabal b/composition-prelude.cabal
--- a/composition-prelude.cabal
+++ b/composition-prelude.cabal
@@ -1,5 +1,5 @@
 name:                composition-prelude
-version:             1.1.0.2
+version:             1.2.0.0
 synopsis:            Higher-order function combinators
 description:         Replacement for `composition` or `composition-exta`, exporting everything in one sane module.
 homepage:            https://github.com/vmchale/composition-prelude#readme
diff --git a/src/Control/Composition.hs b/src/Control/Composition.hs
--- a/src/Control/Composition.hs
+++ b/src/Control/Composition.hs
@@ -16,24 +16,11 @@
     , (-$)
     -- * Composition with lists of functions
     , thread
+    , threadM_
     -- * Tuple helpers
     , both
     -- * Functor helpers
     , (<&>)
-    -- * Reexports from Control.Arrow
-    , (&&&)
-    , (***)
-    , first
-    , second
-    -- * Reexports from Control.Monad
-    , join
-    , (=<<)
-    , (>=>)
-    , (<=<)
-    , void
-    , when
-    , unless
-    , zipWithM
     -- * Reexports from base
     , (&)
     , fix
@@ -42,7 +29,7 @@
     , bool
     ) where
 
-import           Control.Arrow (first, second, (&&&), (***))
+import           Control.Arrow ((***))
 import           Control.Monad
 import           Data.Bool     (bool)
 #if __GLASGOW_HASKELL__ > 784
@@ -133,6 +120,9 @@
 
 thread :: [a -> a] -> a -> a
 thread = foldr (.) id
+
+threadM_ :: (Applicative f) => [f ()] -> f ()
+threadM_ = foldr (*>) (pure ())
 
 -- setZip :: [ASetter a a b b] -> [b] -> a -> a
 -- setZip ls ts = thread (zipWith set ls ts)
