Re-export Word from Prelude (re #9531)
authorHerbert Valerio Riedel <hvr@gnu.org>
Sun, 31 Aug 2014 09:40:50 +0000 (11:40 +0200)
committerHerbert Valerio Riedel <hvr@gnu.org>
Sun, 31 Aug 2014 10:25:16 +0000 (12:25 +0200)
The original proposal text can be found at

  http://www.haskell.org/pipermail/libraries/2014-August/023491.html

The proposal passed with a clear majority, and was additionally
confirmed by the core libraries committee.

*Compatibility Note*

Only code that imports `Data.Word` for the sole purpose of using `Word`
*and* requires to be `-Werror`-clean (due to `-fwarn-unused-imports`)
is affected by this change.

In order to write warning-free forward/backward compatible against `base`,
a variant of the following CPP-based snippet can be used:

  -- Starting with base>4.7.0 or GHC>7.8 Prelude re-exports 'Word'
  -- The following is needed, if 'Word' is the *only* entity needed from Data.Word
  #ifdef MIN_VERSION_base
  # if !MIN_VERSION_base(4,7,1)
  import Data.Word (Word)
  # endif
  -- no cabal_macros.h -- fallback to __GLASGOW_HASKELL__
  #elif __GLASGOW_HASKELL__ < 709
  import Data.Word (Word)
  #endif

This also updates the haddock submodule in order to avoid a compile warning

compiler/coreSyn/MkCore.lhs
libraries/base/Prelude.hs
libraries/base/changelog.md
mk/validate-settings.mk
testsuite/tests/lib/integer/IntegerConversionRules.hs
testsuite/tests/numeric/should_run/T7014.hs
testsuite/tests/typecheck/should_fail/T5095.stderr
utils/haddock

index 3ba8b1d..08c3eed 100644 (file)
@@ -92,7 +92,9 @@ import DynFlags
 import Data.Char        ( ord )
 import Data.List
 import Data.Ord
-import Data.Word
+#if __GLASGOW_HASKELL__ < 709
+import Data.Word        ( Word )
+#endif
 
 infixl 4 `mkCoreApp`, `mkCoreApps`
 \end{code}
index 9b1119e..3a3cc4d 100644 (file)
@@ -48,7 +48,7 @@ module Prelude (
 
     -- *** Numeric types
     Int, Integer, Float, Double,
-    Rational,
+    Rational, Word,
 
     -- *** Numeric type classes
     Num((+), (-), (*), negate, abs, signum, fromInteger),
index 28005f8..b976811 100644 (file)
@@ -20,6 +20,8 @@
 
   * Make `abs` and `signum` handle (-0.0) correctly per IEEE-754.
 
+  * Re-export `Data.Word.Word` from `Prelude`
+
 ## 4.7.0.1  *Jul 2014*
 
   * Bundled with GHC 7.8.3
index 4ccef07..bd3e3bc 100644 (file)
@@ -96,6 +96,9 @@ libraries/containers_dist-install_EXTRA_HC_OPTS += -fno-warn-incomplete-patterns
 # Temporarily turn off pointless-pragma warnings for containers
 libraries/containers_dist-install_EXTRA_HC_OPTS += -fno-warn-pointless-pragmas
 
+# Temporarily turn off unused-imports warnings for containers
+libraries/containers_dist-install_EXTRA_HC_OPTS += -fno-warn-unused-imports
+
 # bytestring has identities at the moment
 libraries/bytestring_dist-install_EXTRA_HC_OPTS += -fno-warn-identities
 
index cb5269f..56949e7 100644 (file)
@@ -1,7 +1,10 @@
+{-# LANGUAGE CPP #-}
 
 module IntegerConversionRules where
 
-import Data.Word
+#if __GLASGOW_HASKELL__ < 709
+import Data.Word (Word)
+#endif
 
 f1 :: Int -> Double
 f1 = fi
index 8237538..222b33b 100644 (file)
@@ -1,7 +1,11 @@
+{-# LANGUAGE CPP #-}
+
 module Main where
 
 import Data.Bits
-import Data.Word
+#if __GLASGOW_HASKELL__ < 705
+import Data.Word (Word)
+#endif
 
 test_and1 :: Word -> Word
 test_and1 x = x .&. 0
index e8d2b71..55342cd 100644 (file)
@@ -53,7 +53,7 @@ T5095.hs:9:11:
       instance Eq Float -- Defined in ‘GHC.Classes’
       instance Eq Int -- Defined in ‘GHC.Classes’
       instance Eq Ordering -- Defined in ‘GHC.Classes’
-      instance Eq GHC.Types.Word -- Defined in ‘GHC.Classes’
+      instance Eq Word -- Defined in ‘GHC.Classes’
       instance Eq a => Eq [a] -- Defined in ‘GHC.Classes’
       instance Eq Integer
         -- Defined in ‘integer-gmp-0.5.1.0:GHC.Integer.Type’
index b2a807d..eee52f6 160000 (submodule)
@@ -1 +1 @@
-Subproject commit b2a807da55d197c648fd2df1f156f9862711d92b
+Subproject commit eee52f697233f99e23c1d8183511229fb93e3f3e