diff --git a/changelog.md b/changelog.md
new file mode 100644
--- /dev/null
+++ b/changelog.md
@@ -0,0 +1,3 @@
+# 1.0.1
+
+Add instances for `Tree` and `Seq`
diff --git a/functor-classes-compat.cabal b/functor-classes-compat.cabal
--- a/functor-classes-compat.cabal
+++ b/functor-classes-compat.cabal
@@ -1,6 +1,6 @@
-name:                functor-classes-compat
-version:             1
-synopsis:            Data.Functor.Classes instances for core packages
+name:               functor-classes-compat
+version:            1.0.1
+synopsis:           Data.Functor.Classes instances for core packages
 description:
   "Data.Functor.Classes" instances for core packages:
   .
@@ -9,49 +9,56 @@
   * vector
   .
   * unordered-containers
-homepage:            https://github.com/phadej/functor-classes-compat#readme
-bug-reports:         https://github.com/phadej/functor-classes-compat/issues
-license:             BSD3
-license-file:        LICENSE
-author:              Oleg Grenrus <oleg.grenrus@iki.fi>
-maintainer:          Oleg Grenrus <oleg.grenrus@iki.fi>
-copyright:           2016 Oleg Grenrus
-category:            Data
-build-type:          Simple
-extra-source-files:  README.md
-cabal-version:       >=1.10
+
+homepage:           https://github.com/phadej/functor-classes-compat#readme
+bug-reports:        https://github.com/phadej/functor-classes-compat/issues
+license:            BSD3
+license-file:       LICENSE
+author:             Oleg Grenrus <oleg.grenrus@iki.fi>
+maintainer:         Oleg Grenrus <oleg.grenrus@iki.fi>
+copyright:          2016 Oleg Grenrus
+category:           Data
+build-type:         Simple
+extra-source-files: README.md changelog.md
+cabal-version:      >=1.10
 tested-with:
-  GHC==7.4.2,
-  GHC==7.6.3,
-  GHC==7.8.4,
-  GHC==7.10.3,
-  GHC==8.0.1,
-  GHC==8.0.2
+  GHC ==7.4.2
+   || ==7.6.3
+   || ==7.8.4
+   || ==7.10.3
+   || ==8.0.2
+   || ==8.2.2
+   || ==8.4.4
+   || ==8.6.5
+   || ==8.8.4
+   || ==8.10.3
 
 flag base-transformers-1
-  description: Together with base-transformers-1 pick: base >= 4.9, transformers < 0.4, 0.4.*, or >= 0.5. See cabal file for precise assignments.
-  manual: False
-  default: True
+  description:
+    Together with base-transformers-1 pick: base >= 4.9, transformers < 0.4, 0.4.*, or >= 0.5. See cabal file for precise assignments.
 
+  manual:      False
+  default:     True
+
 flag base-transformers-2
   description: See base-transformers-1 flag
-  manual: False
-  default: True
+  manual:      False
+  default:     True
 
 flag vector
   description: 'vector >= 0.12'
-  manual: False
-  default: True
+  manual:      False
+  default:     True
 
 flag containers
   description: 'containers >= 0.5.9.1'
-  manual: False
-  default: True
+  manual:      False
+  default:     True
 
 flag unordered-containers
   description: 'unordered-containers >= 0.2.8.0'
-  manual: False
-  default: True
+  manual:      False
+  default:     True
 
 source-repository head
   type:     git
@@ -62,13 +69,15 @@
     Data.Map.Functor.Classes
     Data.Set.Functor.Classes
     Data.IntMap.Functor.Classes
+    Data.Sequence.Functor.Classes
+    Data.Tree.Functor.Classes
     Data.Vector.Functor.Classes
     Data.HashSet.Functor.Classes
     Data.HashMap.Functor.Classes
-  default-language:    Haskell2010
-  ghc-options: -Wall
 
-  build-depends:  hashable >=1.0.1.1 && <1.3
+  default-language: Haskell2010
+  ghc-options:      -Wall
+  build-depends:    hashable >=1.0.1.1 && <1.4
 
   -- base and transformer dependencies:
   -- t t: base >= 4.9
@@ -79,69 +88,92 @@
   -- The order is chosen so 'f f' combination is only requiring src-old
   if flag(base-transformers-1)
     if flag(base-transformers-2)
-      build-depends: base         >=4.9 && <4.10
+      build-depends: base >=4.9 && <4.16
+
     else
-      build-depends: base         >= 4.5 && <4.9,
-                     transformers >= 0.5 && <0.6
+      build-depends:
+          base          >=4.5 && <4.9
+        , transformers  >=0.5 && <0.6
+
   else
     if flag(base-transformers-2)
       -- we don't really care about transformers version, as long as it <0.4
       -- to make flag selection deterministic
-      build-depends: base                >= 4.5 && <4.9,
-                     transformers        <  0.4,
-                     transformers-compat >= 0.5 && <0.6
-    else
-      build-depends: base                >= 4.5 && <4.9,
-                     transformers        >= 0.4 && <0.5
+      build-depends:
+          base                 >=4.5 && <4.9
+        , transformers         >=0   && <0.4
+        , transformers-compat  >=0.5 && <0.7
 
+    else
+      build-depends:
+          base          >=4.5 && <4.9
+        , transformers  >=0.4 && <0.5
 
   -- containers
   if flag(containers)
-    build-depends: containers >= 0.5.9.1 && <0.6
-    if flag(base-transformers-1) && flag(base-transformers-2)
-        hs-source-dirs: src-none/containers
+    build-depends: containers >=0.5.9.1 && <0.7
+
+    if (flag(base-transformers-1) && flag(base-transformers-2))
+      hs-source-dirs: src-none/containers
+
     else
-      if !flag(base-transformers-1) && !flag(base-transformers-2)
+      if (!flag(base-transformers-1) && !flag(base-transformers-2))
         hs-source-dirs: src-implicit/containers
+
       else
         hs-source-dirs: src-explicit/containers
+
   else
-    build-depends: containers >= 0.4 && <0.5.9.1
-    if !flag(base-transformers-1) && !flag(base-transformers-2)
+    build-depends: containers >=0.4 && <0.5.9.1
+
+    if (!flag(base-transformers-1) && !flag(base-transformers-2))
       hs-source-dirs: src-implicit/containers
+
     else
       hs-source-dirs: src-explicit/containers
 
   -- unordered-containers
   if flag(unordered-containers)
-    build-depends: unordered-containers >= 0.2.8.0 && <0.3
-    if flag(base-transformers-1) && flag(base-transformers-2)
-        hs-source-dirs: src-none/unordered-containers
+    build-depends: unordered-containers >=0.2.8.0 && <0.3
+
+    if (flag(base-transformers-1) && flag(base-transformers-2))
+      hs-source-dirs: src-none/unordered-containers
+
     else
-      if !flag(base-transformers-1) && !flag(base-transformers-2)
+      if (!flag(base-transformers-1) && !flag(base-transformers-2))
         hs-source-dirs: src-implicit/unordered-containers
+
       else
         hs-source-dirs: src-explicit/unordered-containers
+
   else
-    build-depends: unordered-containers >= 0.2.7.1 && <0.2.8.0
-    if !flag(base-transformers-1) && !flag(base-transformers-2)
+    build-depends: unordered-containers >=0.2.7.1 && <0.2.8.0
+
+    if (!flag(base-transformers-1) && !flag(base-transformers-2))
       hs-source-dirs: src-implicit/unordered-containers
+
     else
       hs-source-dirs: src-explicit/unordered-containers
 
   -- vector
   if flag(vector)
-    build-depends: vector >= 0.12 && <0.13
-    if flag(base-transformers-1) && flag(base-transformers-2)
-        hs-source-dirs: src-none/vector
+    build-depends: vector ==0.12.*
+
+    if (flag(base-transformers-1) && flag(base-transformers-2))
+      hs-source-dirs: src-none/vector
+
     else
-      if !flag(base-transformers-1) && !flag(base-transformers-2)
+      if (!flag(base-transformers-1) && !flag(base-transformers-2))
         hs-source-dirs: src-implicit/vector
+
       else
         hs-source-dirs: src-explicit/vector
+
   else
-    build-depends: vector >= 0.11.0.0 && <0.12
-    if !flag(base-transformers-1) && !flag(base-transformers-2)
+    build-depends: vector >=0.11.0.0 && <0.12
+
+    if (!flag(base-transformers-1) && !flag(base-transformers-2))
       hs-source-dirs: src-implicit/vector
+
     else
       hs-source-dirs: src-explicit/vector
diff --git a/src-explicit/containers/Data/Sequence/Functor/Classes.hs b/src-explicit/containers/Data/Sequence/Functor/Classes.hs
new file mode 100644
--- /dev/null
+++ b/src-explicit/containers/Data/Sequence/Functor/Classes.hs
@@ -0,0 +1,19 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+module Data.Sequence.Functor.Classes () where
+
+import Data.Functor.Classes
+import Data.Foldable             (toList)
+import Data.Sequence             (Seq, length)
+
+instance Eq1 Seq where
+    liftEq eq m n =
+        Data.Sequence.length m == Data.Sequence.length n &&
+        liftEq eq (toList m) (toList n)
+
+instance Ord1 Seq where
+    liftCompare cmp m n =
+        liftCompare cmp (toList m) (toList n)
+
+instance Show1 Seq where
+    liftShowsPrec sp sl d m =
+        showsUnaryWith (liftShowsPrec sp sl) "fromList" d (toList m)
diff --git a/src-explicit/containers/Data/Tree/Functor/Classes.hs b/src-explicit/containers/Data/Tree/Functor/Classes.hs
new file mode 100644
--- /dev/null
+++ b/src-explicit/containers/Data/Tree/Functor/Classes.hs
@@ -0,0 +1,24 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+module Data.Tree.Functor.Classes () where
+
+import Data.Functor.Classes
+import Data.Monoid          (Monoid (..))
+import Data.Tree
+
+instance Eq1 Tree where
+    liftEq eq (Node a fa) (Node b fb) =
+        eq a b && liftEq (liftEq eq) fa fb
+
+instance Ord1 Tree where
+    liftCompare cmp (Node a fa) (Node b fb) =
+        cmp a b `mappend` liftCompare (liftCompare cmp) fa fb
+
+instance Show1 Tree where
+    liftShowsPrec sp sl =
+      let go _ (Node a fa) =
+            ("Node {rootLabel = " ++) .
+            sp 0 a .
+            (", subForest = " ++) .
+            liftShowsPrec go (liftShowList sp sl) 0 fa .
+            ('}':)
+      in go
diff --git a/src-implicit/containers/Data/Sequence/Functor/Classes.hs b/src-implicit/containers/Data/Sequence/Functor/Classes.hs
new file mode 100644
--- /dev/null
+++ b/src-implicit/containers/Data/Sequence/Functor/Classes.hs
@@ -0,0 +1,9 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+module Data.Sequence.Functor.Classes () where
+
+import Data.Functor.Classes
+import Data.Sequence             (Seq)
+
+instance Eq1 Seq where eq1 = (==)
+instance Ord1 Seq where compare1 = compare
+instance Show1 Seq where showsPrec1 = showsPrec
diff --git a/src-implicit/containers/Data/Tree/Functor/Classes.hs b/src-implicit/containers/Data/Tree/Functor/Classes.hs
new file mode 100644
--- /dev/null
+++ b/src-implicit/containers/Data/Tree/Functor/Classes.hs
@@ -0,0 +1,19 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+module Data.Tree.Functor.Classes () where
+
+import Data.Functor.Classes
+import Data.Tree            (Tree(..))
+
+instance Eq1 Tree where eq1 = (==)
+instance Ord1 Tree where
+  compare1 (Node a fa) (Node b fb) =
+    compare a b `mappend` liftCompareList compare1 fa fb
+
+liftCompareList :: (a -> a -> Ordering) -> [a] -> [a] -> Ordering
+liftCompareList cmp = go
+  where go [] [] = EQ
+        go [] (_:_) = LT
+        go (_:_) [] = GT
+        go (a:as) (b:bs) = cmp a b `mappend` go as bs
+
+instance Show1 Tree where showsPrec1 = showsPrec
diff --git a/src-none/containers/Data/Sequence/Functor/Classes.hs b/src-none/containers/Data/Sequence/Functor/Classes.hs
new file mode 100644
--- /dev/null
+++ b/src-none/containers/Data/Sequence/Functor/Classes.hs
@@ -0,0 +1,1 @@
+module Data.Sequence.Functor.Classes () where
diff --git a/src-none/containers/Data/Tree/Functor/Classes.hs b/src-none/containers/Data/Tree/Functor/Classes.hs
new file mode 100644
--- /dev/null
+++ b/src-none/containers/Data/Tree/Functor/Classes.hs
@@ -0,0 +1,1 @@
+module Data.Tree.Functor.Classes () where
