diff --git a/ClassyPrelude.hs b/ClassyPrelude.hs
--- a/ClassyPrelude.hs
+++ b/ClassyPrelude.hs
@@ -55,6 +55,8 @@
       -- * Poly hierarchy
     , module Data.Foldable
     , module Data.Traversable
+      -- ** Bifunctor (since 0.10.0)
+    , module Data.Bifunctor
       -- * Mono hierarchy
     , module Data.MonoTraversable
     , module Data.Sequences
@@ -168,7 +170,7 @@
 import Control.Monad.Catch (MonadThrow (throwM))
 
 import Data.Vector.Instances ()
-import CorePrelude hiding (print, undefined, (<>), catMaybes)
+import CorePrelude hiding (print, undefined, (<>), catMaybes, first, second)
 import Data.ChunkedZip
 import qualified Data.Char as Char
 import Data.Sequences
@@ -208,6 +210,7 @@
 
 import Data.Functor.Identity (Identity (..))
 import Control.Monad.Reader (MonadReader, ask, ReaderT (..), Reader)
+import Data.Bifunctor
 
 tshow :: Show a => a -> Text
 tshow = fromList . Prelude.show
diff --git a/classy-prelude.cabal b/classy-prelude.cabal
--- a/classy-prelude.cabal
+++ b/classy-prelude.cabal
@@ -1,5 +1,5 @@
 name:                classy-prelude
-version:             0.9.5
+version:             0.10.0
 synopsis:            A typeclass-based Prelude.
 description:         Focuses on using common typeclasses when possible, and creating new ones to avoid name clashing. Exposes many recommended datastructures (Map, ByteString, etc) directly without requiring long import lists and qualified modules.
 homepage:            https://github.com/snoyberg/classy-prelude
@@ -36,6 +36,7 @@
                      , stm
                      , primitive
                      , mtl
+                     , bifunctors
   ghc-options:         -Wall -fno-warn-orphans
 
 test-suite test
