diff --git a/Foundation/Conduit/Internal.hs b/Foundation/Conduit/Internal.hs
--- a/Foundation/Conduit/Internal.hs
+++ b/Foundation/Conduit/Internal.hs
@@ -11,6 +11,8 @@
 {-# LANGUAGE ScopedTypeVariables #-}
 {-# LANGUAGE Rank2Types #-}
 {-# LANGUAGE OverloadedStrings #-}
+{-# OPTIONS_GHC -Wno-inline-rule-shadowing #-}
+
 module Foundation.Conduit.Internal
     ( Pipe(..)
     , Conduit(..)
diff --git a/Foundation/Network/IPv4.hs b/Foundation/Network/IPv4.hs
--- a/Foundation/Network/IPv4.hs
+++ b/Foundation/Network/IPv4.hs
@@ -28,7 +28,7 @@
 import Data.Proxy
 import Foundation.String (String)
 import Foundation.Primitive
-import Foundation.Bits
+import Basement.Bits
 import Foundation.Parser hiding (peek)
 import Foundation.Collection (Sequential, Element, elem)
 
diff --git a/Foundation/Time/StopWatch.hs b/Foundation/Time/StopWatch.hs
--- a/Foundation/Time/StopWatch.hs
+++ b/Foundation/Time/StopWatch.hs
@@ -107,5 +107,7 @@
         pure $ NanoSeconds $ (endSec * secondInNano + endNSec) - (startSec * secondInNano + startNSec)
 #endif
 
+#if !defined(darwin_HOST_OS)
 secondInNano :: Word64
 secondInNano = 1000000000
+#endif
diff --git a/Foundation/Time/Types.hs b/Foundation/Time/Types.hs
--- a/Foundation/Time/Types.hs
+++ b/Foundation/Time/Types.hs
@@ -34,7 +34,7 @@
     primAddrRead addr ofs    = primAddrRead addr (coerce ofs)
     primAddrWrite addr ofs v = primAddrWrite addr (coerce ofs) (coerce v :: Word64)
 
--- | An amount of nanoseconds
+-- | An amount of seconds
 newtype Seconds = Seconds Word64
     deriving (Show,Eq,Ord,Additive,Enum,Bounded)
 
diff --git a/benchs/LargeWords.hs b/benchs/LargeWords.hs
new file mode 100644
--- /dev/null
+++ b/benchs/LargeWords.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# LANGUAGE RebindableSyntax #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE TypeApplications #-}
+module LargeWords where
+
+import Foundation
+import Basement.From
+import Basement.Types.Word128 (Word128)
+import Basement.Types.Word256 (Word256)
+import qualified Basement.Types.Word128 as Word128
+import qualified Basement.Types.Word256 as Word256
+import BenchUtil.Common
+
+largeNumber64 :: Natural
+largeNumber64 = 0xffffffffffffffff
+
+largeNumber128 :: Natural
+largeNumber128 = 0xfffffffffffffffffffffffffffffff
+
+largeNumber256 :: Natural
+largeNumber256 = 0xffffffffffffffffffffffffffffffffffffffffffffffff
+
+benchLargeWords =
+    [ bgroup "Addition"
+        [ bgroup "Word128"
+            [ bench "Word128" $ whnf (+ 1240) (Word128.fromNatural largeNumber128)
+            , bench "Natural" $ whnf (+ 1240) largeNumber128
+            ]
+        , bgroup "Word256"
+            [ bench "Word256" $ whnf (+ 200) (Word256.fromNatural largeNumber256)
+            , bench "Natural" $ whnf (+ 200) largeNumber256
+            ]
+        ]
+    , bgroup "Multiplication"
+        [ bgroup "Word128"
+            [ bench "Word128" $ whnf (* 1240) (Word128.fromNatural largeNumber128)
+            , bench "Natural" $ whnf (* 1240) largeNumber128
+            ]
+        , bgroup "Word256"
+            [ bench "Word256" $ whnf (* 200) (Word256.fromNatural largeNumber256)
+            , bench "Natural" $ whnf (* 200) largeNumber256
+            ]
+        ]
+    ]
diff --git a/benchs/Main.hs b/benchs/Main.hs
--- a/benchs/Main.hs
+++ b/benchs/Main.hs
@@ -16,6 +16,7 @@
 import qualified Basement.Block.Builder as Builder
 
 import Sys
+import LargeWords
 
 #ifdef BENCH_ALL
 import qualified Data.ByteString as ByteString
@@ -353,4 +354,5 @@
 main = defaultMain
     [ benchsTypes
     , bgroup "Sys" benchSys
+    , bgroup "LargeWord" benchLargeWords
     ]
diff --git a/foundation.cabal b/foundation.cabal
--- a/foundation.cabal
+++ b/foundation.cabal
@@ -1,5 +1,5 @@
 name:                foundation
-version:             0.0.21
+version:             0.0.22
 synopsis:            Alternative prelude with batteries and no dependencies
 description:
     A custom prelude with no dependencies apart from base.
@@ -203,8 +203,10 @@
                    , ghc-prim
     if os(windows)
       build-depends: Win32
+      if arch(i386)
+        extra-libraries: gcc
 
-  build-depends: basement == 0.0.8
+  build-depends: basement == 0.0.9
 
   -- FIXME add suport for armel mipsel
   --  CPP-options: -DARCH_IS_LITTLE_ENDIAN
@@ -246,7 +248,7 @@
   default-extensions: NoImplicitPrelude
                       RebindableSyntax
                       OverloadedStrings
-  build-depends:     base
+  build-depends:     base > 0 && < 1000
                    , basement
                    , foundation
   ghc-options:       -Wall -fno-warn-orphans -fno-warn-missing-signatures
@@ -262,7 +264,7 @@
   default-extensions: NoImplicitPrelude
                       RebindableSyntax
   if flag(linktest)
-    build-depends:     base
+    build-depends:     base > 0 && < 1000
                      , foundation
                      , template-haskell
     buildable:     True
@@ -292,6 +294,7 @@
   other-modules:     BenchUtil.Common
                      BenchUtil.RefData
                      Sys
+                     LargeWords
                      Fake.ByteString
                      Fake.Text
                      Fake.Vector
