diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.markdown
@@ -0,0 +1,5 @@
+0.3
+---
+* Added `Backwards` and `Reverse` instances for `transformers` 0.3
+* Added `instance (Functor f, Contravariant g) => Contravariant (Compose f g)`. (This is non-canonical, but is necessary to support other packages.)
+* Added `Functor` instances to `ComposeFC` and `ComposeCF` for use when modeling phantom type parameters caused mixing `Functor` + `Contravariant`.
diff --git a/Data/Functor/Contravariant.hs b/Data/Functor/Contravariant.hs
--- a/Data/Functor/Contravariant.hs
+++ b/Data/Functor/Contravariant.hs
@@ -36,9 +36,12 @@
   ) where
 
 import Control.Applicative
+import Control.Applicative.Backwards
 import Control.Category
 import Data.Functor.Product
 import Data.Functor.Constant
+import Data.Functor.Compose
+import Data.Functor.Reverse
 import Prelude hiding ((.),id)
 
 -- | Any instance should be subject to the following laws:
@@ -63,6 +66,27 @@
 (>$$<) = flip contramap
 {-# INLINE (>$$<) #-}
 
+instance (Contravariant f, Contravariant g) => Contravariant (Product f g) where
+  contramap f (Pair a b) = Pair (contramap f a) (contramap f b)
+
+instance Contravariant (Constant a) where
+  contramap _ (Constant a) = Constant a
+
+instance Contravariant (Const a) where
+  contramap _ (Const a) = Const a
+
+instance (Functor f, Contravariant g) => Contravariant (Compose f g) where
+  contramap f (Compose fga) = Compose (fmap (contramap f) fga)
+  {-# INLINE contramap #-}
+
+instance Contravariant f => Contravariant (Backwards f) where
+  contramap f = Backwards . contramap f . forwards
+  {-# INLINE contramap #-}
+
+instance Contravariant f => Contravariant (Reverse f) where
+  contramap f = Reverse . contramap f . getReverse
+  {-# INLINE contramap #-}
+
 newtype Predicate a = Predicate { getPredicate :: a -> Bool }
 
 -- | A 'Predicate' is a 'Contravariant' 'Functor', because 'contramap' can
@@ -105,14 +129,3 @@
 instance Contravariant (Op a) where
   contramap f g = Op (getOp g . f)
 
--- | Data.Functor.Product
-instance (Contravariant f, Contravariant g) => Contravariant (Product f g) where
-  contramap f (Pair a b) = Pair (contramap f a) (contramap f b)
-
--- | Data.Functor.Constant
-instance Contravariant (Constant a) where
-  contramap _ (Constant a) = Constant a
-
--- | Control.Applicative.Const
-instance Contravariant (Const a) where
-  contramap _ (Const a) = Const a
diff --git a/Data/Functor/Contravariant/Compose.hs b/Data/Functor/Contravariant/Compose.hs
--- a/Data/Functor/Contravariant/Compose.hs
+++ b/Data/Functor/Contravariant/Compose.hs
@@ -9,7 +9,7 @@
 --
 -- Composition of contravariant functors.
 
-module Data.Functor.Contravariant.Compose 
+module Data.Functor.Contravariant.Compose
   ( Compose(..)
   , ComposeFC(..)
   , ComposeCF(..)
@@ -24,14 +24,19 @@
     fmap f (Compose x) = Compose (contramap (contramap f) x)
 
 -- | Composition of covariant and contravariant functors
-newtype ComposeFC f g a = ComposeFC { getComposeFC :: f (g a) } 
+newtype ComposeFC f g a = ComposeFC { getComposeFC :: f (g a) }
 
 instance (Functor f, Contravariant g) => Contravariant (ComposeFC f g) where
     contramap f (ComposeFC x) = ComposeFC (fmap (contramap f) x)
 
+instance (Functor f, Functor g) => Functor (ComposeFC f g) where
+    fmap f (ComposeFC x) = ComposeFC (fmap (fmap f) x)
+
 -- | Composition of contravariant and covariant functors
-newtype ComposeCF f g a = ComposeCF { getComposeCF :: f (g a) } 
+newtype ComposeCF f g a = ComposeCF { getComposeCF :: f (g a) }
 
 instance (Contravariant f, Functor g) => Contravariant (ComposeCF f g) where
     contramap f (ComposeCF x) = ComposeCF (contramap (fmap f) x)
 
+instance (Functor f, Functor g) => Functor (ComposeCF f g) where
+    fmap f (ComposeCF x) = ComposeCF (fmap (fmap f) x)
diff --git a/contravariant.cabal b/contravariant.cabal
--- a/contravariant.cabal
+++ b/contravariant.cabal
@@ -1,6 +1,6 @@
 name:          contravariant
 category:      Control, Data
-version:       0.2.0.2
+version:       0.3
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
@@ -13,7 +13,9 @@
 synopsis:      Haskell 98 contravariant functors
 description:   Haskell 98 contravariant functors
 build-type:    Simple
-extra-source-files: .travis.yml
+extra-source-files:
+  .travis.yml
+  CHANGELOG.markdown
 
 source-repository head
   type: git
@@ -21,8 +23,9 @@
 
 library
   build-depends:
-    base < 5,
-    transformers >= 0.2 && < 0.4
+    base                          < 5,
+    transformers        >= 0.2 && < 0.4,
+    transformers-compat >= 0.1 && < 1
   exposed-modules:
     Data.Functor.Contravariant
     Data.Functor.Contravariant.Compose
