diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,5 @@
+- 0.1.5.1. (2018-09-24)
+    - GHC-8.6.1
 - 0.1.5 (2018-05-20)
     - GHC-8.4.2
     - Don't depend on nats and semigroups on newer GHC
diff --git a/binary-tagged.cabal b/binary-tagged.cabal
--- a/binary-tagged.cabal
+++ b/binary-tagged.cabal
@@ -1,18 +1,27 @@
+cabal-version:  >= 1.10
 name:           binary-tagged
-version:        0.1.5
+version:        0.1.5.1
+
 synopsis:       Tagged binary serialisation.
+category:       Data
 description:    Check <https://github.com/phadej/binary-tagged#readme README on Github>
-category:       Web
+
 homepage:       https://github.com/phadej/binary-tagged#readme
 bug-reports:    https://github.com/phadej/binary-tagged/issues
 author:         Oleg Grenrus <oleg.grenrus@iki.fi>
 maintainer:     Oleg Grenrus <oleg.grenrus@iki.fi>
 license:        BSD3
 license-file:   LICENSE
-tested-with:    GHC==7.8.4, GHC==7.10.3, GHC==8.0.2, GHC==8.2.2, GHC==8.4.2
 build-type:     Simple
-cabal-version:  >= 1.10
 
+tested-with:
+  GHC ==7.8.4
+   || ==7.10.3
+   || ==8.0.2
+   || ==8.2.2
+   || ==8.4.3
+   || ==8.6.1
+
 extra-source-files:
     CHANGELOG.md
     README.md
@@ -25,33 +34,39 @@
   hs-source-dirs:
       src
   ghc-options: -Wall
+
+  -- Libraries bundled with GHC
   build-depends:
-      base                     >=4.7  && <4.12
-    , aeson                    >=0.8  && <1.4
-    , array                    >=0.5  && <0.6
+      base                     >=4.7.0.2  && <4.13
+    , array                    >=0.5.0.0  && <0.6
+    , binary                   >=0.7.1.0  && <0.10
+    , bytestring               >=0.10.4.0 && <0.11
+    , containers               >=0.5.5.1  && <0.7
+    , text                     >=1.2.3.0  && <1.3
+    , time                     >=1.4.2    && <1.9
+
+  -- other dependencies
+  build-depends:
+      aeson                    >=0.8     && <1.5
     , base16-bytestring        >=0.1.1.6 && <0.2
-    , binary                   >=0.7  && <0.10
-    , bytestring               >=0.10 && <0.11
-    , containers               >=0.5  && <0.6
-    , generics-sop             >=0.1  && <0.4
-    , hashable                 >=1.2  && <1.3
-    , scientific               >=0.3  && <0.4
-    , SHA                      >=1.6  && <1.7
-    , tagged                   >=0.7  && <0.9
-    , text                     >=1.2  && <1.3
-    , time                     >=1.4  && <1.9
-    , unordered-containers     >=0.2  && <0.3
-    , vector                   >=0.10 && <0.13
+    , generics-sop             >=0.3.2.0 && <0.4
+    , hashable                 >=1.2     && <1.3
+    , scientific               >=0.3     && <0.4
+    , SHA                      >=1.6     && <1.7
+    , tagged                   >=0.7     && <0.9
+    , unordered-containers     >=0.2     && <0.3
+    , vector                   >=0.10    && <0.13
+
   exposed-modules:
       Data.Binary.Tagged
   default-language: Haskell2010
 
   if !impl(ghc >= 8.0)
     build-depends:
-      semigroups >=0.16 && <0.19
+      semigroups >=0.18.5 && <0.19
   if !impl(ghc >= 7.10)
     build-depends:
-      nats      >=1    && <1.2
+      nats      >=1.1.2   && <1.2
 
 test-suite binary-tagged-test
   type: exitcode-stdio-1.0
diff --git a/src/Data/Binary/Tagged.hs b/src/Data/Binary/Tagged.hs
--- a/src/Data/Binary/Tagged.hs
+++ b/src/Data/Binary/Tagged.hs
@@ -374,7 +374,7 @@
 --
 -- This can be calculated by @f x y = sum ([0..x+y]) + y@
 type Interleave (n :: Nat) (m :: Nat) = SumUpTo (n + m) + m
-type SumUpTo (n :: Nat) = Div2 (n * (n + 1))
+type SumUpTo (n :: Nat) = Div2 (n GHC.TypeLits.* (n + 1))
 type family Div2 (n :: Nat) :: Nat where
   Div2 0 = 0
   Div2 1 = 0
