diff --git a/Data/Profunctor.hs b/Data/Profunctor.hs
--- a/Data/Profunctor.hs
+++ b/Data/Profunctor.hs
@@ -1,4 +1,4 @@
-module Data.Profunctor 
+module Data.Profunctor
   ( Profunctor(..)
   , UpStar(..)
   , DownStar(..)
@@ -9,6 +9,7 @@
 import Control.Category
 import Control.Comonad (Cokleisli(..))
 import Control.Monad (liftM)
+import Data.Tagged
 import Prelude hiding (id,(.))
 
 class Profunctor h where
@@ -18,6 +19,10 @@
 instance Profunctor (->) where
   lmap = flip (.)
   rmap = (.)
+
+instance Profunctor Tagged where
+  lmap _ = retag
+  rmap = fmap
 
 newtype UpStar f d c = UpStar { runUpStar :: d -> f c } 
 instance Functor f => Profunctor (UpStar f) where
diff --git a/profunctors.cabal b/profunctors.cabal
--- a/profunctors.cabal
+++ b/profunctors.cabal
@@ -1,6 +1,6 @@
 name:          profunctors
 category:      Control, Categories
-version:       3.0
+version:       3.1
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
@@ -23,7 +23,8 @@
   build-depends:
     base          == 4.*,
     semigroupoids == 3.0.*,
-    comonad       == 3.0.*
+    comonad       == 3.0.*,
+    tagged        >= 0.4.4 && < 0.5
 
   if impl(ghc)
     cpp-options: -DGHC_TYPEABLE
