X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=GHC%2FWeak.lhs;h=67046f88f3d0a2507b9fba19a5fe20ee8da30d7b;hb=41e8fba828acbae1751628af50849f5352b27873;hp=6db5b5cd6de49ed5bf9107041c12e252431192fe;hpb=06ffe41b5a1730c93f5e3add2d0f32fe6677d223;p=ghc-base.git diff --git a/GHC/Weak.lhs b/GHC/Weak.lhs index 6db5b5c..67046f8 100644 --- a/GHC/Weak.lhs +++ b/GHC/Weak.lhs @@ -1,6 +1,12 @@ \begin{code} -{-# OPTIONS_GHC -XNoImplicitPrelude #-} +{-# LANGUAGE CPP + , NoImplicitPrelude + , BangPatterns + , MagicHash + , UnboxedTuples + #-} {-# OPTIONS_HADDOCK hide #-} + ----------------------------------------------------------------------------- -- | -- Module : GHC.Weak @@ -20,7 +26,6 @@ module GHC.Weak where import GHC.Base import Data.Maybe -import GHC.IOBase ( IO(..), unIO ) import Data.Typeable {-| @@ -123,7 +128,7 @@ 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'