diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,8 @@
 - 0.2.6
+    - Support GHC-8.6.5...9.12.1
+    - Haskell code modernisation
+
+- 0.2.6
     - Support GHC-8.6.5...9.10.1
 
 - 0.2.5.3
diff --git a/insert-ordered-containers.cabal b/insert-ordered-containers.cabal
--- a/insert-ordered-containers.cabal
+++ b/insert-ordered-containers.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.2
 name:               insert-ordered-containers
-version:            0.2.6
+version:            0.2.7
 synopsis:
   Associative containers retaining insertion order for traversals.
 
@@ -10,10 +10,10 @@
   The implementation is based on `unordered-containers`.
 
 category:           Web
-homepage:           https://github.com/phadej/insert-ordered-containers#readme
-bug-reports:        https://github.com/phadej/insert-ordered-containers/issues
+homepage:           https://github.com/erikd/insert-ordered-containers#readme
+bug-reports:        https://github.com/erikd/insert-ordered-containers/issues
 author:             Oleg Grenrus <oleg.grenrus@iki.fi>
-maintainer:         Oleg Grenrus <oleg.grenrus@iki.fi>
+maintainer:         Erik de Castro Lopo <erikd@mega-nerd.com>, Oleg Grenrus <oleg.grenrus@iki.fi>
 license:            BSD-3-Clause
 license-file:       LICENSE
 build-type:         Simple
@@ -24,9 +24,10 @@
    || ==9.0.2
    || ==9.2.8
    || ==9.4.8
-   || ==9.6.6
-   || ==9.8.2
+   || ==9.6.7
+   || ==9.8.4
    || ==9.10.1
+   || ==9.12.1
 
 extra-source-files:
   CHANGELOG.md
@@ -34,7 +35,7 @@
 
 source-repository head
   type:     git
-  location: https://github.com/phadej/insert-ordered-containers
+  location: https://github.com/erikd/insert-ordered-containers
 
 library
   default-language: Haskell2010
@@ -42,9 +43,9 @@
   ghc-options:      -Wall
   build-depends:
     , aeson                 >=2.2.3.0  && <2.3
-    , base                  >=4.12.0.0 && <4.21
+    , base                  >=4.12.0.0 && <4.22
     , deepseq               >=1.4.4.0  && <1.6
-    , hashable              >=1.4.7.0  && <1.5
+    , hashable              >=1.4.7.0  && <1.6
     , indexed-traversable   >=0.1.4    && <0.2
     , lens                  >=5.2.3    && <5.4
     , optics-core           >=0.4.1.1  && <0.5
diff --git a/src/Data/HashMap/Strict/InsOrd.hs b/src/Data/HashMap/Strict/InsOrd.hs
--- a/src/Data/HashMap/Strict/InsOrd.hs
+++ b/src/Data/HashMap/Strict/InsOrd.hs
@@ -84,7 +84,7 @@
 import Control.Applicative             (Applicative, Const (..))
 import Control.Arrow                   (first, second)
 import Control.DeepSeq                 (NFData (..))
-import Data.Data                       (Data, Typeable)
+import Data.Data                       (Data)
 import Data.Foldable                   (Foldable (foldMap))
 import Data.Foldable.WithIndex         (FoldableWithIndex (..))
 import Data.Functor.Apply              (Apply (..))
@@ -93,7 +93,7 @@
 import Data.Hashable                   (Hashable (..))
 import Data.List                       (nub, sortBy)
 import Data.Maybe                      (fromMaybe)
-import Data.Monoid                     (Monoid, mappend, mempty)
+import Data.Monoid                     (Monoid, mempty)
 import Data.Ord                        (comparing)
 import Data.Semigroup                  (Semigroup (..))
 import Data.Traversable                (Traversable (traverse))
@@ -128,7 +128,7 @@
 -------------------------------------------------------------------------------
 
 data P a = P !Int !a
-    deriving (Functor, Foldable, Traversable, Typeable, Data)
+    deriving (Functor, Foldable, Traversable, Data)
 
 instance NFData a => NFData (P a) where
     rnf (P _ a) = rnf a
@@ -168,7 +168,7 @@
     { _getIndex        :: !Int
     , getInsOrdHashMap :: !(HashMap k (P v))
     }
-    deriving (Functor, Typeable, Data)
+    deriving (Functor, Data)
 
 -- | @since 0.2.5
 instance (NFData k, NFData v) => NFData (InsOrdHashMap k v) where
@@ -202,7 +202,6 @@
 
 instance (Eq k, Hashable k) => Monoid (InsOrdHashMap k v) where
     mempty = empty
-    mappend = union
 
 -- We cannot derive this, as we want to ordered folding and traversing
 instance Foldable (InsOrdHashMap k) where
diff --git a/src/Data/HashSet/InsOrd.hs b/src/Data/HashSet/InsOrd.hs
--- a/src/Data/HashSet/InsOrd.hs
+++ b/src/Data/HashSet/InsOrd.hs
@@ -93,7 +93,7 @@
     { _getIndex        :: !Int
     , getInsOrdHashSet :: !(HashMap k Int)
     }
-    deriving (Typeable, Data)
+    deriving (Data)
 
 -- | @since 0.2.5
 instance NFData k => NFData (InsOrdHashSet k) where
@@ -123,7 +123,6 @@
 
 instance (Eq k, Hashable k) => Monoid (InsOrdHashSet k) where
     mempty = empty
-    mappend = union
 
 instance Foldable InsOrdHashSet where
     -- in newer base only
diff --git a/test/Tests.hs b/test/Tests.hs
--- a/test/Tests.hs
+++ b/test/Tests.hs
@@ -7,7 +7,6 @@
 import Data.Function  (on)
 import Data.Hashable  (Hashable (..))
 import Data.List      (nubBy)
-import Data.Semigroup ((<>))
 import Data.Traversable (foldMapDefault)
 import Data.Word      (Word8)
 import Text.Read      (readMaybe)
