Use explicit language extensions & remove extension fields from base.cabal
[ghc-base.git] / System / Mem / StableName.hs
index f0919f9..d7d27a3 100644 (file)
@@ -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: