X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=System%2FMem%2FStableName.hs;h=d7d27a3c51c0932f106fb0ea9e76fb379bfc71ba;hb=41e8fba828acbae1751628af50849f5352b27873;hp=f0919f958fcaa8b07559ec192309fa1b7145bc7f;hpb=68feabdf62717aee17512d2cf0cc928c9f6f7a60;p=ghc-base.git diff --git a/System/Mem/StableName.hs b/System/Mem/StableName.hs index f0919f9..d7d27a3 100644 --- a/System/Mem/StableName.hs +++ b/System/Mem/StableName.hs @@ -1,3 +1,11 @@ +{-# LANGUAGE CPP #-} +#ifdef __GLASGOW_HASKELL__ +{-# LANGUAGE MagicHash #-} +#if !defined(__PARALLEL_HASKELL__) +{-# LANGUAGE UnboxedTuples #-} +#endif +#endif + ----------------------------------------------------------------------------- -- | -- Module : System.Mem.StableName @@ -38,7 +46,7 @@ import Hugs.Stable #endif #ifdef __GLASGOW_HASKELL__ -import GHC.IOBase ( IO(..) ) +import GHC.IO ( IO(..) ) import GHC.Base ( Int(..), StableName#, makeStableName# , eqStableName#, stableNameToInt# ) @@ -55,7 +63,9 @@ import GHC.Base ( Int(..), StableName#, makeStableName# the same object. The reverse is not necessarily true: if two stable names are not - equal, then the objects they name may still be equal. + equal, then the objects they name may still be equal. Note in particular + that `mkStableName` may return a different `StableName` after an + object is evaluated. Stable Names are similar to Stable Pointers ("Foreign.StablePtr"), but differ in the following ways: