diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,106 @@
+# list-tries-0.6.6 (2018-11-20)
+* Updated dependencies and code for GHC 8.6.1, thanks as usual to Mikhail
+  Glushenkov.
+
+# list-tries-0.6.5 (2018-03-20)
+* Updated dependencies and code for GHC 8.4.1 and QuickCheck-2.11,
+  thanks again to Mikhail Glushenkov.
+
+# list-tries-0.6.4 (2017-05-27)
+* Updated dependencies for GHC 8.2.1 (release candidate 2) and
+  binary-0.9, thanks to Mikhail Glushenkov for helping with this.
+* Also a code change due to a newly problematic type inference.
+
+# list-tries-0.6.3 (2016-07-18)
+* Dependency update to allow dlist-0.8.
+
+# list-tries-0.6.2 (2016-06-28)
+* Updated dependencies for GHC 8.0.1.
+* Added Semigroup instances, bringing in a new dependency on semigroups
+  on pre-8.0 GHC versions.
+
+# list-tries-0.6.1 (2015-04-03)
+* Fixed build on base < 4.8.
+
+# list-tries-0.6.0 (2015-03-28)
+* Updated dependencies for GHC 7.10.
+* Fixed library vs. test executable dlist dependency mismatch.
+* Renamed `Map.toList` to `toListKV` to avoid conflicts with the new
+  `Foldable` class. Also renamed `Map.fromList` and `Map.fromListWith`
+  to `fromListKV` and `fromListKVWith` to match. Thanks to davean for
+  the patch.
+* Added Cabal source-repository metadata, pointing to GitHub.
+
+# list-tries-0.5.2 (2014-03-20)
+* Updated dependencies, for GHC 7.8 and other new packages.
+
+# list-tries-0.5.1 (2013-05-10)
+* Fix cabal build.
+* Minor documentation clarification.
+* Update `binary` dependency.
+
+# list-tries-0.5 (2013-05-09)
+* Added the `lookupPrefix` and `deleteSuffixes` functions, of which especially
+  the former was an embarrassing omission:
+
+        lookupPrefix   :: [k] -> trie map k a -> trie map k a
+        deleteSuffixes :: [k] -> trie map k a -> trie map k a
+
+* Fixed the documentation headers to refer to 's' instead of 'k' as what we
+  use for the length of the given key.
+* Fixed documentation of 'deletePrefix': its complexity is O(s), not O(m).
+* Some dependency updates.
+
+# list-tries-0.4.3 (2012-10-18)
+* Dependency updates for GHC 7.6 and otherwise.
+
+# list-tries-0.4.2 (2012-05-23)
+* Dependency updates for GHC 7.4, thanks to Anders Kaseorg.
+
+# list-tries-0.4.1 (2011-03-17)
+* Dependency update and Cabalization of the test executable, thanks to JP
+  Moresmau.
+
+# list-tries-0.4 (2010-09-11)
+* Fixed documentation of the `deletePrefix` function: if the given key is not
+  a prefix of any key, an empty, not unchanged, map/set is returned. Thanks to
+  Brian Bloniarz for the bug report.
+* Fixed bug in the Patricia version of `deletePrefix` causing it to not delete
+  anything if the prefix to be deleted was a proper prefix of the common
+  prefix.
+* Changed `children` to return the map as-is instead of converting it into a
+  list first:
+
+        children :: Trie trie st map k => trie map k a -> CMap trie map k a
+
+* Added the `children1` function as a single-level equivalent of `children`,
+  more directly reflecting the structure of the non-Patricia tries. Requested
+  by Brian Bloniarz.
+
+        children1 :: Trie trie st map k => trie map k a -> CMap trie map k a
+
+# list-tries-0.3 (2010-09-09)
+* Fixed strictness of the strict versions of the following
+  non-Patricia functions: `insert`, `adjust`, `alter`, `union`,
+  `difference`, `intersection`, `mapInKeys`; as well as the Patricia
+  versions of `insert` and `adjust`. Thanks to Brian Bloniarz for the
+  bug report.
+* Applied the static argument transformation throughout, improving
+  performance.
+* Dropped support for containers < 0.3; GHC 6.12 has been out long
+  enough, and support for older versions is too crippled to make it
+  worthwhile.
+
+# list-tries-0.2 (2010-04-06)
+* Dependency update, nothing more.
+
+# list-tries-0.1 (2009-07-05)
+* All tries are now instances of `Binary`, thanks to Gregory Crosswhite. Adds a
+  dependency on the `binary` library as well as the following two methods to
+  the `Map` class in `Base.Map`:
+
+        serializeToList     :: m k a -> [(k,a)]
+        deserializeFromList :: [(k,a)] -> m k a
+
+# list-tries-0.0 (2009-04-21)
+* Initial release.
diff --git a/CHANGELOG.txt b/CHANGELOG.txt
deleted file mode 100644
--- a/CHANGELOG.txt
+++ /dev/null
@@ -1,112 +0,0 @@
-2018-03-20, 0.6.5:
-	Updated dependencies and code for GHC 8.4.1 and QuickCheck-2.11, thanks
-	again to Mikhail Glushenkov.
-
-2017-05-27, 0.6.4:
-	Updated dependencies for GHC 8.2.1 (release candidate 2) and
-	binary-0.9, thanks to Mikhail Glushenkov for helping with this.
-
-	Also a code change due to a newly problematic type inference.
-
-2016-07-18, 0.6.3:
-	Dependency update to allow dlist-0.8.
-
-2016-06-28, 0.6.2:
-	Updated dependencies for GHC 8.0.1.
-
-	Added Semigroup instances, bringing in a new dependency on semigroups
-	on pre-8.0 GHC versions.
-
-2015-04-03, 0.6.1:
-	Fixed build on base < 4.8.
-
-2015-03-28, 0.6.0:
-	Updated dependencies for GHC 7.10.
-
-	Fixed library vs. test executable dlist dependency mismatch.
-
-	Renamed Map.toList to toListKV to avoid conflicts with the new Foldable
-	class. Also renamed Map.fromList and Map.fromListWith to fromListKV and
-	fromListKVWith to match. Thanks to davean for the patch.
-
-	Added Cabal source-repository metadata, pointing to GitHub.
-
-2014-03-20, 0.5.2:
-	Updated dependencies, for GHC 7.8 and other new packages.
-
-2013-05-10, 0.5.1:
-	Fix cabal build.
-
-	Minor documentation clarification.
-
-	Update binary dependency.
-
-2013-05-09, 0.5:
-	Added the 'lookupPrefix' and 'deleteSuffixes' functions, of which especially
-	the former was an embarrassing omission:
-
-		lookupPrefix   :: [k] -> trie map k a -> trie map k a
-		deleteSuffixes :: [k] -> trie map k a -> trie map k a
-
-	Fixed the documentation headers to refer to 's' instead of 'k' as what we
-	use for the length of the given key.
-
-	Fixed documentation of 'deletePrefix': its complexity is O(s), not O(m).
-
-	Some dependency updates.
-
-2012-10-18, 0.4.3:
-	Dependency updates for GHC 7.6 and otherwise.
-
-2012-05-23, 0.4.2:
-	Dependency updates for GHC 7.4, thanks to Anders Kaseorg.
-
-2011-03-17, 0.4.1:
-	Dependency update and Cabalization of the test executable, thanks to JP
-	Moresmau.
-
-2010-09-11, 0.4:
-	Fixed documentation of the 'deletePrefix' function: if the given key is not
-	a prefix of any key, an empty, not unchanged, map/set is returned. Thanks to
-	Brian Bloniarz for the bug report.
-
-	Fixed bug in the Patricia version of 'deletePrefix' causing it to not delete
-	anything if the prefix to be deleted was a proper prefix of the common
-	prefix.
-
-	Changed 'children' to return the map as-is instead of converting it into a
-	list first:
-
-		children :: Trie trie st map k => trie map k a -> CMap trie map k a
-
-	Added the 'children1' function as a single-level equivalent of 'children',
-	more directly reflecting the structure of the non-Patricia tries. Requested
-	by Brian Bloniarz.
-
-		children1 :: Trie trie st map k => trie map k a -> CMap trie map k a
-
-2010-09-09, 0.3:
-   Fixed strictness of the strict versions of the following non-Patricia
-   functions: insert, adjust, alter, union, difference, intersection,
-   mapInKeys; as well as the Patricia versions of insert and adjust. Thanks to
-   Brian Bloniarz for the bug report.
-
-   Applied the static argument transformation throughout, improving
-   performance.
-
-   Dropped support for containers < 0.3; GHC 6.12 has been out long enough, and
-   support for older versions is too crippled to make it worthwhile.
-
-2010-04-06, 0.2:
-	Dependency update, nothing more.
-
-2009-07-05, 0.1:
-	All tries are now instances of Binary, thanks to Gregory Crosswhite. Adds a
-	dependency on the 'binary' library as well as the following two methods to
-	the Map class in Base.Map:
-
-		serializeToList     :: m k a -> [(k,a)]
-		deserializeFromList :: [(k,a)] -> m k a
-
-2009-04-21, 0.0:
-	Initial release.
diff --git a/Data/ListTrie/Base/Map.hs b/Data/ListTrie/Base/Map.hs
--- a/Data/ListTrie/Base/Map.hs
+++ b/Data/ListTrie/Base/Map.hs
@@ -1,6 +1,6 @@
 -- File created: 2008-11-07 17:30:16
 
-{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-}
+{-# LANGUAGE CPP, MultiParamTypeClasses, FlexibleInstances #-}
 
 module Data.ListTrie.Base.Map
    ( Map(..), OrdMap(..)
@@ -15,9 +15,11 @@
 import Data.List           (foldl1', mapAccumL, nubBy, partition, sort, sortBy)
 import Data.Ord            (comparing)
 import Data.Traversable    (Traversable(..), mapAccumR)
-import qualified Data.IntMap as IM
-import qualified Data.Map    as M
-
+import qualified Data.IntMap     as IM
+import qualified Data.Map        as M
+#if MIN_VERSION_containers(0,5,0)
+import qualified Data.Map.Strict as M.Strict
+#endif
 import Prelude hiding ( filter, foldl, foldl1, foldr, foldr1, lookup, null
                       , mapM, sequence
                       )
@@ -343,7 +345,11 @@
    null   = M.null
    lookup = M.lookup
 
+#if MIN_VERSION_containers(0,5,0)
+   insertWith = M.Strict.insertWith
+#else
    insertWith = M.insertWith'
+#endif
 
    update = M.update
    adjust = M.adjust
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,3 @@
+# list-tries [![Hackage version](https://img.shields.io/hackage/v/list-tries.svg?label=Hackage)](https://hackage.haskell.org/package/list-tries) [![Build Status](https://secure.travis-ci.org/Deewiant/list-tries.svg?branch=master)](http://travis-ci.org/Deewiant/list-tries)
+
+Tries and Patricia tries: finite sets and maps for list keys.
diff --git a/list-tries.cabal b/list-tries.cabal
--- a/list-tries.cabal
+++ b/list-tries.cabal
@@ -1,7 +1,7 @@
 Cabal-Version: >= 1.9.2
 
 Name:        list-tries
-Version:     0.6.5
+Version:     0.6.6
 Homepage:    http://iki.fi/matti.niemenmaa/list-tries/
 Synopsis:    Tries and Patricia tries: finite sets and maps for list keys
 Category:    Data, Data Structures
@@ -28,11 +28,13 @@
 License-File: LICENSE.txt
 Tested-With:  GHC == 7.0.4, GHC == 7.2.2, GHC == 7.4.2,
               GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3,
-              GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.1
+              GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4,
+              GHC == 8.6.2
 
 Build-Type: Simple
 
-Extra-Source-Files: CHANGELOG.txt
+Extra-Source-Files: README.md
+                    CHANGELOG.md
                     CREDITS.txt
                     headers/*.h
                     tests/README.txt
@@ -44,10 +46,10 @@
   location: https://github.com/Deewiant/list-tries
 
 Library
-   Build-Depends: base       >= 4.3  && < 4.12
-                , containers >= 0.4  && < 0.6
+   Build-Depends: base       >= 4.3  && < 4.13
+                , containers >= 0.4  && < 0.7
                 , dlist      >= 0.4  && < 0.9
-                , binary     >= 0.5  && < 0.10
+                , binary     >= 0.5  && < 0.11
 
    if impl(ghc < 8.0)
       Build-Depends: semigroups >= 0.18 && < 0.19
@@ -93,14 +95,14 @@
    main-is: Main.hs
 
    Build-Depends: list-tries
-                , base                       >= 4.3 && < 4.12
-                , binary                     >= 0.5 && < 0.10
-                , template-haskell           >= 2.3 && < 2.14
+                , base                       >= 4.3 && < 4.13
+                , binary                     >= 0.5 && < 0.11
+                , template-haskell           >= 2.3 && < 2.15
                 , HUnit                      >= 1.2 && < 1.7
-                , QuickCheck                 >= 2.1 && < 2.12
-                , test-framework             >= 0.2 && < 0.9
-                , test-framework-hunit       >= 0.2 && < 0.4
-                , test-framework-quickcheck2 >= 0.2 && < 0.4
+                , QuickCheck                 >= 2.1 && < 3
+                , test-framework             >= 0.2 && < 1
+                , test-framework-hunit       >= 0.2 && < 1
+                , test-framework-quickcheck2 >= 0.2 && < 1
                 , ChasingBottoms             >= 1.2 && < 1.4
 
    Other-Modules: Tests.Base
