Exploit now-working default-method INLINE pragmas for Data.Bits
[ghc-base.git] / Data / Tuple.hs
index 335835c..22b9f78 100644 (file)
@@ -41,15 +41,19 @@ module Data.Tuple
     where
 
 #ifdef __GLASGOW_HASKELL__
-import GHC.Bool
-import GHC.Classes
-import GHC.Ordering
--- XXX The standalone deriving clauses fail with
---     The data constructors of `(,)' are not all in scope
---       so you cannot derive an instance for it
---     In the stand-alone deriving instance for `Eq (a, b)'
--- if we don't import GHC.Tuple
+
+import GHC.Base
+-- We need to depend on GHC.Base so that
+-- a) so that we get GHC.Bool, GHC.Classes, GHC.Ordering
+
+-- b) so that GHC.Base.inline is available, which is used
+--    when expanding instance declarations
+
 import GHC.Tuple
+-- We must import GHC.Tuple, to ensure sure that the 
+-- data constructors of `(,)' are in scope when we do
+-- the standalone deriving instance for Eq (a,b) etc
+
 #endif  /* __GLASGOW_HASKELL__ */
 
 #ifdef __NHC__
@@ -75,6 +79,10 @@ import Prelude
   )
 #endif
 
+#ifdef __GLASGOW_HASKELL__
+import GHC.Unit ()
+#endif
+
 default ()              -- Double isn't available yet
 
 #ifdef __GLASGOW_HASKELL__