X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=GHC%2FWeak.lhs;h=92e1eb89b039f59a0f6232e9271091e35bcdb2d8;hb=f827975d749073dbc8224fe74a3ee39393b26640;hp=6db5b5cd6de49ed5bf9107041c12e252431192fe;hpb=06ffe41b5a1730c93f5e3add2d0f32fe6677d223;p=ghc-base.git diff --git a/GHC/Weak.lhs b/GHC/Weak.lhs index 6db5b5c..92e1eb8 100644 --- a/GHC/Weak.lhs +++ b/GHC/Weak.lhs @@ -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,7 +130,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'