diff --git a/Data/Semigroup/Foldable.hs b/Data/Semigroup/Foldable.hs
--- a/Data/Semigroup/Foldable.hs
+++ b/Data/Semigroup/Foldable.hs
@@ -25,6 +25,7 @@
 import Data.Functor.Compose
 import Data.Tree
 import Data.List.NonEmpty (NonEmpty(..))
+import Data.Traversable.Instances ()
 import Data.Semigroup hiding (Product)
 import Prelude hiding (foldr)
 
diff --git a/Data/Semigroup/Traversable.hs b/Data/Semigroup/Traversable.hs
--- a/Data/Semigroup/Traversable.hs
+++ b/Data/Semigroup/Traversable.hs
@@ -22,6 +22,7 @@
 import Data.Functor.Compose
 import Data.Semigroup.Foldable
 import Data.Traversable
+import Data.Traversable.Instances ()
 import Data.Tree
 import Data.List.NonEmpty (NonEmpty(..))
 import Data.Semigroup hiding (Product)
diff --git a/Data/Semigroupoid/Dual.hs b/Data/Semigroupoid/Dual.hs
--- a/Data/Semigroupoid/Dual.hs
+++ b/Data/Semigroupoid/Dual.hs
@@ -8,7 +8,7 @@
 -- Stability   :  provisional
 -- Portability :  portable
 --
--- A semigroupoid satisfies all of the requirements to be a Category except 
+-- A semigroupoid satisfies all of the requirements to be a Category except
 -- for the existence of identity arrows.
 ----------------------------------------------------------------------------
 module Data.Semigroupoid.Dual (Dual(..)) where
@@ -17,7 +17,7 @@
 import Control.Category
 import Prelude ()
 
-newtype Dual k a b = Dual { getDual :: k b a } 
+newtype Dual k a b = Dual { getDual :: k b a }
 
 instance Semigroupoid k => Semigroupoid (Dual k) where
   Dual f `o` Dual g = Dual (g `o` f)
diff --git a/Data/Traversable/Instances.hs b/Data/Traversable/Instances.hs
new file mode 100644
--- /dev/null
+++ b/Data/Traversable/Instances.hs
@@ -0,0 +1,16 @@
+{-# LANGUAGE CPP #-}
+-- | Placeholders for missing instances of Traversable, until base catches up and adds them
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+module Data.Traversable.Instances where
+
+#if !MIN_VERSION_transformers(0,3,0)
+import Control.Monad.Trans.Identity
+import Data.Foldable
+import Data.Traversable
+
+instance Foldable m => Foldable (IdentityT m) where
+  foldMap f = foldMap f . runIdentityT
+
+instance Traversable m => Traversable (IdentityT m) where
+  traverse f = fmap IdentityT . traverse f . runIdentityT
+#endif
diff --git a/semigroupoids.cabal b/semigroupoids.cabal
--- a/semigroupoids.cabal
+++ b/semigroupoids.cabal
@@ -1,6 +1,6 @@
 name:          semigroupoids
 category:      Control, Comonads
-version:       1.3
+version:       1.3.1
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
@@ -50,7 +50,7 @@
 library
   build-depends:
     base          >= 4       && < 5,
-    transformers  >= 0.3     && < 0.4,
+    transformers  >= 0.2     && < 0.3,
     containers    >= 0.3     && < 0.5,
     contravariant >= 0.2.0.1 && < 0.3,
     comonad       >= 1.1.1.2 && < 1.2,
@@ -67,5 +67,6 @@
     Data.Semigroupoid
     Data.Semigroupoid.Dual
     Data.Semigroupoid.Static
+    Data.Traversable.Instances
 
   ghc-options: -Wall
