Move the Integer type definition into GHC.Integer.Internals
authorIan Lynagh <igloo@earth.li>
Thu, 25 Sep 2008 13:39:35 +0000 (13:39 +0000)
committerIan Lynagh <igloo@earth.li>
Thu, 25 Sep 2008 13:39:35 +0000 (13:39 +0000)
This means that we can export the constructors, but still keep the
GHC.Integer interface generic.

GHC/Integer.lhs
GHC/Integer/Internals.hs [new file with mode: 0644]
integer.cabal

index 5107b99..137eff1 100644 (file)
@@ -68,6 +68,8 @@ import GHC.Prim (
 #endif
  )
 
+import GHC.Integer.Internals (Integer(..))
+
 #if WORD_SIZE_IN_BITS < 64
 import GHC.IntWord64 (
             Int64#, Word64#,
@@ -90,19 +92,6 @@ default ()              -- Double isn't available yet,
 %*                                                      *
 %*********************************************************
 
-\begin{code}
--- | Arbitrary-precision integers.
-data Integer
-   = S# Int#                            -- small integers
-#ifndef ILX
-   | J# Int# ByteArray#                 -- large integers
-#else
-   | J# Void BigInteger                 -- .NET big ints
-
-foreign type dotnet "BigInteger" BigInteger
-#endif
-\end{code}
-
 Convenient boxed Integer PrimOps.
 
 \begin{code}
diff --git a/GHC/Integer/Internals.hs b/GHC/Integer/Internals.hs
new file mode 100644 (file)
index 0000000..f1ffbf9
--- /dev/null
@@ -0,0 +1,21 @@
+{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# OPTIONS_HADDOCK hide #-}
+
+module GHC.Integer.Internals (Integer(..)) where
+
+import GHC.Prim (Int#, ByteArray#)
+
+-- Double isn't available yet, and we shouldn't be using defaults anyway:
+default ()
+
+-- | Arbitrary-precision integers.
+data Integer
+   = S# Int#                            -- small integers
+#ifndef ILX
+   | J# Int# ByteArray#                 -- large integers
+#else
+   | J# Void BigInteger                 -- .NET big ints
+
+foreign type dotnet "BigInteger" BigInteger
+#endif
+
index 3f2a85e..4623406 100644 (file)
@@ -12,6 +12,7 @@ build-type: Simple
 Library {
     build-depends: ghc-prim
     exposed-modules: GHC.Integer
+                     GHC.Integer.Internals
     extensions: CPP, MagicHash, UnboxedTuples,
                 ForeignFunctionInterface, UnliftedFFITypes
     -- We need to set the package name to integer (without a version number)