\begin{code}
-{-# OPTIONS_GHC -fno-implicit-prelude #-}
+{-# OPTIONS_GHC -XNoImplicitPrelude #-}
{-# OPTIONS_HADDOCK hide #-}
-----------------------------------------------------------------------------
-- |
import GHC.Base
import Data.Maybe
-import GHC.IOBase ( IO(..), unIO )
-import Data.Typeable ( Typeable1(..), mkTyCon, mkTyConApp )
+import Data.Typeable
{-|
A weak pointer object with a key and a value. The value has type @v@.
let go m = IO $ \s ->
case m of
0# -> (# s, () #)
- _ -> let m' = m -# 1# in
+ _ -> let !m' = m -# 1# in
case indexArray# arr m' of { (# io #) ->
- case unIO io s of { (# s, _ #) ->
- unIO (go m') s
+ case unIO io s of { (# s', _ #) ->
+ unIO (go m') s'
}}
in
go n