diff --git a/IPv6Addr.cabal b/IPv6Addr.cabal
--- a/IPv6Addr.cabal
+++ b/IPv6Addr.cabal
@@ -1,13 +1,13 @@
 name:                IPv6Addr
-version:             1.1.1
+version:             1.1.2
 synopsis:            Library to deal with IPv6 address text representations.
 description:         Library to deal with IPv6 address text representations, canonization and manipulations.
 homepage:            https://github.com/MichelBoucey/IPv6Addr
 license:             BSD3
 license-file:        LICENSE
 author:              Michel Boucey
-maintainer:          michel.boucey@cybervisible.fr
-copyright:           (c) 2011-2018 - Michel Boucey
+maintainer:          michel.boucey@gmail.com
+copyright:           (c) 2011-2019 - Michel Boucey
 category:            Network
 build-type:          Simple
 extra-source-files:  README.md
@@ -23,7 +23,7 @@
   build-depends:    base         >=4.8 && < 5
                   , text         >=1.1 && < 1.3
                   , iproute      >=1.3 && < 1.8
-                  , network      >=2.5 && < 2.9
+                  , network      >=2.5 && < 4
                   , random       >=1.0 && <= 1.1
                   , attoparsec   >=0.12 && < 0.14
                   , aeson        >= 0.8.0.2 && < 1.5
diff --git a/Text/IPv6Addr.hs b/Text/IPv6Addr.hs
--- a/Text/IPv6Addr.hs
+++ b/Text/IPv6Addr.hs
@@ -51,7 +51,7 @@
 import           Numeric              (showHex)
 import           System.Random        (randomRIO)
 
-data IPv6Addr = IPv6Addr !T.Text
+newtype IPv6Addr = IPv6Addr T.Text
 
 instance Show IPv6Addr where
   show (IPv6Addr a) = T.unpack a
@@ -492,7 +492,7 @@
       let l = longestLengthZerosRun t
       in (firstLongestZerosRunIndex t l,l)
       where
-        firstLongestZerosRunIndex x y = sum . snd . unzip $ Prelude.takeWhile (/=(True,y)) x
+        firstLongestZerosRunIndex x y = sum . map snd $ Prelude.takeWhile (/=(True,y)) x
         longestLengthZerosRun x =
           maximum (longest <$> x)
           where
