add ga_inl, ga_inr
[ghc-base.git] / GHC / Weak.lhs
index 66fefcd..92e1eb8 100644 (file)
@@ -1,6 +1,14 @@
 \begin{code}
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+           , NoImplicitPrelude
+           , BangPatterns
+           , MagicHash
+           , UnboxedTuples
+           , DeriveDataTypeable
+           , StandaloneDeriving
+  #-}
 {-# OPTIONS_HADDOCK hide #-}
+
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  GHC.Weak
@@ -20,7 +28,6 @@ module GHC.Weak where
 
 import GHC.Base
 import Data.Maybe
-import GHC.IOBase       ( IO(..), unIO )
 import Data.Typeable
 
 {-|
@@ -123,10 +130,10 @@ runFinalizerBatch (I# n) arr =
    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