X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=GHC%2FWord.hs;h=022a85e6e112070178a040b0f1585446426bddb8;hb=88b22778e7c06909683b493e037605a249ae37ad;hp=2332c13c50e87470323e905ecc5695bd31c4e85f;hpb=be44c54248f9a5a5bd6168af464013b405c15aab;p=ghc-base.git diff --git a/GHC/Word.hs b/GHC/Word.hs index 2332c13..022a85e 100644 --- a/GHC/Word.hs +++ b/GHC/Word.hs @@ -1,4 +1,4 @@ -{-# OPTIONS -fno-implicit-prelude #-} +{-# OPTIONS_GHC -fno-implicit-prelude #-} ----------------------------------------------------------------------------- -- | -- Module : GHC.Word @@ -16,6 +16,7 @@ #include "MachDeps.h" +-- #hide module GHC.Word ( Word(..), Word8(..), Word16(..), Word32(..), Word64(..), toEnumError, fromEnumError, succError, predError) @@ -69,9 +70,6 @@ predError inst_ty = -- |A 'Word' is an unsigned integral type, with the same size as 'Int'. data Word = W# Word# deriving (Eq, Ord) -instance CCallable Word -instance CReturnable Word - instance Show Word where showsPrec p x = showsPrec p (toInteger x) @@ -135,12 +133,15 @@ instance Integral Word where instance Bounded Word where minBound = 0 + + -- use unboxed literals for maxBound, because GHC doesn't optimise + -- (fromInteger 0xffffffff :: Word). #if WORD_SIZE_IN_BITS == 31 - maxBound = 0x7FFFFFFF + maxBound = W# (int2Word# 0x7FFFFFFF#) #elif WORD_SIZE_IN_BITS == 32 - maxBound = 0xFFFFFFFF + maxBound = W# (int2Word# 0xFFFFFFFF#) #else - maxBound = 0xFFFFFFFFFFFFFFFF + maxBound = W# (int2Word# 0xFFFFFFFFFFFFFFFF#) #endif instance Ix Word where @@ -185,9 +186,6 @@ instance Bits Word where data Word8 = W8# Word# deriving (Eq, Ord) -- ^ 8-bit unsigned integer type -instance CCallable Word8 -instance CReturnable Word8 - instance Show Word8 where showsPrec p x = showsPrec p (fromIntegral x :: Int) @@ -288,9 +286,6 @@ instance Bits Word8 where data Word16 = W16# Word# deriving (Eq, Ord) -- ^ 16-bit unsigned integer type -instance CCallable Word16 -instance CReturnable Word16 - instance Show Word16 where showsPrec p x = showsPrec p (fromIntegral x :: Int) @@ -611,9 +606,6 @@ instance Bits Word32 where #endif -instance CCallable Word32 -instance CReturnable Word32 - instance Show Word32 where #if WORD_SIZE_IN_BITS < 33 showsPrec p x = showsPrec p (toInteger x) @@ -868,9 +860,6 @@ instance Bits Word64 where #endif -instance CCallable Word64 -instance CReturnable Word64 - instance Show Word64 where showsPrec p x = showsPrec p (toInteger x)