diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+3.1
+---
+* Added `instance Comonad (Tagged s)`.
+
 3.0.3
 -----
 * Trustworthy or Safe depending on GHC version
diff --git a/comonad.cabal b/comonad.cabal
--- a/comonad.cabal
+++ b/comonad.cabal
@@ -1,6 +1,6 @@
 name:          comonad
 category:      Control, Comonads
-version:       3.0.3
+version:       3.1
 license:       BSD3
 cabal-version: >= 1.10
 license-file:  LICENSE
@@ -39,7 +39,8 @@
     base         >= 4       && < 5,
     transformers >= 0.2     && < 0.4,
     containers   >= 0.3     && < 0.6,
-    semigroups   >= 0.8.3   && < 1
+    semigroups   >= 0.8.3   && < 1,
+    tagged       >= 0.1     && < 1
 
   exposed-modules:
     Control.Comonad
diff --git a/src/Control/Comonad.hs b/src/Control/Comonad.hs
--- a/src/Control/Comonad.hs
+++ b/src/Control/Comonad.hs
@@ -55,6 +55,7 @@
 import Data.Functor.Identity
 import Data.List.NonEmpty hiding (map)
 import Data.Semigroup hiding (Product)
+import Data.Tagged
 import Data.Tree
 import Prelude hiding (id, (.))
 import Control.Monad.Fix
@@ -145,6 +146,12 @@
   duplicate = Identity
   {-# INLINE duplicate #-}
   extract = runIdentity
+  {-# INLINE extract #-}
+
+instance Comonad (Tagged s) where
+  duplicate = Tagged
+  {-# INLINE duplicate #-}
+  extract = unTagged
   {-# INLINE extract #-}
 
 instance Comonad w => Comonad (IdentityT w) where
