diff --git a/Z-IO.cabal b/Z-IO.cabal
--- a/Z-IO.cabal
+++ b/Z-IO.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               Z-IO
-version:            1.0.2.0
+version:            2.0.0.0
 synopsis:           Simple and high performance IO toolkit for Haskell
 description:
   Simple and high performance IO toolkit for Haskell, including
@@ -117,16 +117,16 @@
 
   other-modules:      Z.IO.UV.Win
   build-depends:
-    , base                  >=4.12  && <5.0
+    , base                  >=4.16  && <5.0
     , containers            ^>=0.6
     , exceptions            ^>=0.10
-    , foldl                 >=1.3   && <2.0
-    , primitive             >=0.7.2 && <0.8
+    , foldl                 >= 1.3  && <2.0
+    , primitive             >=0.7.3 && <0.8
     , stm                   ^>=2.5
     , time                  >=1.9   && <2.0
     , unix-time             >=0.4.7 && <0.5
     , unordered-containers  ^>=0.2
-    , Z-Data                ^>=1.3
+    , Z-Data                >=2.0   && <3.0
 
   default-language:   Haskell2010
   default-extensions:
@@ -168,10 +168,7 @@
     UnliftedFFITypes
     ViewPatterns
 
-  build-tool-depends:
-    , hsc2hs:hsc2hs
-    , hspec-discover:hspec-discover
-
+  build-tool-depends: hsc2hs:hsc2hs -any, hspec-discover:hspec-discover -any
   ghc-options:        -Wall
   include-dirs:       include third_party/zlib third_party/cwalk/include
   includes:
@@ -250,7 +247,9 @@
       third_party/libuv/src/win/winapi.c
       third_party/libuv/src/win/winsock.c
 
-    cc-options:      -Wall -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600
+    cc-options:
+      -Wall -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600
+
     cpp-options:     -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0600
     include-dirs:    third_party/libuv/include third_party/libuv/src
 
@@ -350,15 +349,14 @@
           third_party/libuv/include third_party/libuv/src/unix
           third_party/libuv/src
 
-        cc-options:
-          -Wall -D_DARWIN_UNLIMITED_SELECT=1 -D_DARWIN_USE_64_BIT_INODE=1
+        cc-options:   -Wall -D_DARWIN_UNLIMITED_SELECT=1 -D_DARWIN_USE_64_BIT_INODE=1
 
       else
         if flag(no-pkg-config)
           extra-libraries: uv
 
         else
-          pkgconfig-depends: libuv >=1.32
+          pkgconfig-depends: libuv ==1.32 || >1.32
 
 test-suite Z-IO-Test
   type:               exitcode-stdio-1.0
@@ -379,9 +377,9 @@
     , zlib
 
   other-modules:
-    Z.IO.BIO.BaseSpec
     Z.IO.BIO.ConcurrentSpec
     Z.IO.BIO.ZlibSpec
+    Z.IO.BIO.BaseSpec
     Z.IO.FileSystem.ThreadedSpec
     Z.IO.FileSystemSpec
     Z.IO.LowResTimerSpec
@@ -396,7 +394,7 @@
 
   ghc-options:        -threaded
   default-language:   Haskell2010
-  build-tool-depends: hspec-discover:hspec-discover >=2 && <3
+  build-tool-depends: hspec-discover:hspec-discover ==2.*
 
 benchmark z-io-gettime
   type:             exitcode-stdio-1.0
