diff --git a/Data/Functor/Contravariant.hs b/Data/Functor/Contravariant.hs
--- a/Data/Functor/Contravariant.hs
+++ b/Data/Functor/Contravariant.hs
@@ -42,6 +42,7 @@
 import Data.Functor.Constant
 import Data.Functor.Compose
 import Data.Functor.Reverse
+import Data.Proxy
 import Prelude hiding ((.),id)
 
 -- | Any instance should be subject to the following laws:
@@ -86,6 +87,9 @@
 instance Contravariant f => Contravariant (Reverse f) where
   contramap f = Reverse . contramap f . getReverse
   {-# INLINE contramap #-}
+
+instance Contravariant Proxy where
+  contramap _ Proxy = Proxy
 
 newtype Predicate a = Predicate { getPredicate :: a -> Bool }
 
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.3
+version:       0.4
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
@@ -23,9 +23,10 @@
 
 library
   build-depends:
-    base                          < 5,
-    transformers        >= 0.2 && < 0.4,
-    transformers-compat >= 0.1 && < 1
+    base                            < 5,
+    tagged              >= 0.4.4 && < 1,
+    transformers        >= 0.2   && < 0.4,
+    transformers-compat >= 0.1   && < 1
   exposed-modules:
     Data.Functor.Contravariant
     Data.Functor.Contravariant.Compose
