[make Jhc.Addr not depend on the prelude
John Meacham <john@repetae.net>**20061108004250] hunk ./lib/base/Jhc/Addr.hs 1
-module Jhc.Addr where
+{-# OPTIONS_JHC -N #-}
+
+module Jhc.Addr(
+    Addr(),
+    FunAddr(),
+    nullAddr,
+    nullFunAddr,
+    plusAddr,
+    addrToWordPtr,
+    wordPtrToAddr,
+    wordPtrToFunAddr,
+    funAddrToWordPtr
+    ) where
hunk ./lib/base/Jhc/Addr.hs 16
+import Data.Int
hunk ./lib/base/Jhc/Addr.hs 21
-nullAddr = wordPtrToAddr 0
-nullFunAddr = wordPtrToFunAddr 0
-
-{-
-addrToWordPtr :: Addr -> WordPtr
-addrToWordPtr = integralCast
-wordPtrToAddr :: WordPtr -> Addr
-wordPtrToAddr = integralCast
+nullAddr = wordPtrToAddr zeroWordPtr
+nullFunAddr = wordPtrToFunAddr zeroWordPtr
hunk ./lib/base/Jhc/Addr.hs 25
-wordPtrToFunAddr :: WordPtr -> FunAddr
-wordPtrToFunAddr = integralCast
-funAddrToWordPtr :: FunAddr -> WordPtr
-funAddrToWordPtr = integralCast
--}
-
hunk ./lib/base/Jhc/Addr.hs 27
-plusAddr addr off = wordPtrToAddr (addrToWordPtr addr + fromInt off)
+plusAddr addr off = wordPtrToAddr (addrToWordPtr addr `plusWordPtr` intToWordPtr off)
hunk ./lib/base/Jhc/Addr.hs 36
+foreign import primitive "integralCast" intToWordPtr :: Int -> WordPtr
+
+foreign import primitive "zero" zeroWordPtr :: WordPtr
+foreign import primitive "plus" plusWordPtr :: WordPtr -> WordPtr -> WordPtr
+
+
+