diff --git a/Control/Comonad.hs b/Control/Comonad.hs
--- a/Control/Comonad.hs
+++ b/Control/Comonad.hs
@@ -37,6 +37,7 @@
 import Data.Monoid
 import Data.Typeable
 import Data.Semigroup
+import Data.Tree
 
 {- | $definition -}
 
@@ -85,6 +86,9 @@
 -- If Comonad moved to base, consider moving instance into transformers?
 instance Comonad w => Comonad (IdentityT w) where
   extract = extract . runIdentityT
+
+instance Comonad Tree where
+  extract (Node a _) = a
 
 -- | The 'Cokleisli' 'Arrow's of a given 'Comonad'
 newtype Cokleisli w a b = Cokleisli { runCokleisli :: w a -> b }
diff --git a/Data/Functor/Extend.hs b/Data/Functor/Extend.hs
--- a/Data/Functor/Extend.hs
+++ b/Data/Functor/Extend.hs
@@ -24,6 +24,9 @@
 import Data.Functor.Identity
 import Data.Semigroup
 import Data.List (tails)
+import Data.Sequence (Seq) 
+import qualified Data.Sequence as Seq
+import Data.Tree
 
 infixl 1 =>> 
 infixr 1 <<=, =<=, =>= 
@@ -87,6 +90,12 @@
 
 instance Semigroup m => Extend ((->)m) where
   duplicate f m = f . (<>) m
+
+instance Extend Seq where
+  duplicate = Seq.tails
+
+instance Extend Tree where
+  duplicate w@(Node _ as) = Node w (map duplicate as)
 
 -- I can't fix the world
 -- instance (Monoid m, Extend n) => Extend (ReaderT m n) 
diff --git a/comonad.cabal b/comonad.cabal
--- a/comonad.cabal
+++ b/comonad.cabal
@@ -1,6 +1,6 @@
 name:          comonad
 category:      Control, Comonads
-version:       1.0
+version:       1.0.1
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
@@ -21,6 +21,7 @@
   build-depends: 
     base >= 4 && < 4.4,
     transformers >= 0.2.0 && < 0.3,
+    containers >= 0.4.0.0 && < 0.5,
     semigroups >= 0.3.4 && < 0.5
 
   exposed-modules:
