diff --git a/Foundation/Time/StopWatch.hs b/Foundation/Time/StopWatch.hs
--- a/Foundation/Time/StopWatch.hs
+++ b/Foundation/Time/StopWatch.hs
@@ -69,8 +69,11 @@
 startPrecise = do
 #if defined(mingw32_HOST_OS)
     blk <- newPinned 16
-    _ <- withMutablePtr blk $ \p ->
-        c_QueryPerformanceCounter (castPtr p `ptrPlus` 8)
+    _ <- withMutablePtr blk $ \p -> do
+          ticks <- integralDownsize <$> queryPerformanceCounter :: IO Word64
+          let p64 = castPtr p :: Ptr Word64
+          poke (p64 `ptrPlus` 8) ticks
+          pure p
     pure (StopWatchPrecise blk)
 #elif defined(darwin_HOST_OS)
     StopWatchPrecise <$> sysMacos_absolute_time
@@ -86,9 +89,8 @@
 stopPrecise (StopWatchPrecise blk) = do
 #if defined(mingw32_HOST_OS)
     withMutablePtr blk $ \p -> do
-        _ <- c_QueryPerformanceCounter (castPtr p)
+        end <- integralDownsize <$> queryPerformanceCounter
         let p64 = castPtr p :: Ptr Word64
-        end   <- peek p64
         start <- peek (p64 `ptrPlus` 8)
         pure $ NanoSeconds ((end - start) * secondInNano `div` initPrecise)
 #elif defined(darwin_HOST_OS)
diff --git a/foundation.cabal b/foundation.cabal
--- a/foundation.cabal
+++ b/foundation.cabal
@@ -1,5 +1,5 @@
 name:                foundation
-version:             0.0.27
+version:             0.0.28
 synopsis:            Alternative prelude with batteries and no dependencies
 description:
     A custom prelude with no dependencies apart from base.
@@ -196,7 +196,7 @@
                       BangPatterns
                       DeriveDataTypeable
 
-  if impl(ghc < 8.0) || impl(ghcjs)
+  if impl(ghc < 8.8) || impl(ghcjs)
     buildable: False
   else
     build-depends:   base
@@ -206,7 +206,7 @@
       if arch(i386)
         extra-libraries: gcc
 
-  build-depends: basement == 0.0.13
+  build-depends: basement == 0.0.14
 
   -- FIXME add suport for armel mipsel
   --  CPP-options: -DARCH_IS_LITTLE_ENDIAN
@@ -216,10 +216,8 @@
     cpp-options: -DARCH_IS_LITTLE_ENDIAN
   else
     cpp-options: -DARCH_IS_UNKNOWN_ENDIAN
-  ghc-options:       -Wall -fwarn-tabs
+  ghc-options:       -Wall -fwarn-tabs -Wno-redundant-constraints
   default-language:  Haskell2010
-  if impl(ghc >= 8.0)
-    ghc-options:     -Wno-redundant-constraints
   if flag(bounds-check)
     cpp-options: -DFOUNDATION_BOUNDS_CHECK
 
@@ -251,10 +249,8 @@
   build-depends:     base > 0 && < 1000
                    , basement
                    , foundation
-  ghc-options:       -Wall -fno-warn-orphans -fno-warn-missing-signatures
+  ghc-options:       -Wall -fno-warn-orphans -fno-warn-missing-signatures -Wno-redundant-constraints
   default-language:  Haskell2010
-  if impl(ghc >= 8.0)
-    ghc-options:     -Wno-redundant-constraints
 
 test-suite foundation-link
   type:              exitcode-stdio-1.0
