Movatterモバイル変換
[0]ホーム
{-# LANGUAGE Trustworthy #-}{-# LANGUAGE CPP, NoImplicitPrelude, BangPatterns, MagicHash, UnboxedTuples #-}{-# OPTIONS_HADDOCK not-home #-}------------------------------------------------------------------------------- |-- Module : GHC.Word-- Copyright : (c) The University of Glasgow, 1997-2002-- License : see libraries/base/LICENSE---- Maintainer : cvs-ghc@haskell.org-- Stability : internal-- Portability : non-portable (GHC Extensions)---- Sized unsigned integral types: 'Word', 'Word8', 'Word16', 'Word32', and-- 'Word64'.-------------------------------------------------------------------------------#include "MachDeps.h"moduleGHC.Word(Word(..),Word8(..),Word16(..),Word32(..),Word64(..),-- * ShiftsuncheckedShiftL64#,uncheckedShiftRL64#,-- * Byte swappingbyteSwap16,byteSwap32,byteSwap64,-- * Bit reversalbitReverse8,bitReverse16,bitReverse32,bitReverse64,-- * Equality operators-- | See GHC.Classes#matching_overloaded_methods_in_ruleseqWord,neWord,gtWord,geWord,ltWord,leWord,eqWord8,neWord8,gtWord8,geWord8,ltWord8,leWord8,eqWord16,neWord16,gtWord16,geWord16,ltWord16,leWord16,eqWord32,neWord32,gtWord32,geWord32,ltWord32,leWord32,eqWord64,neWord64,gtWord64,geWord64,ltWord64,leWord64)whereimportData.MaybeimportGHC.PrimimportGHC.BaseimportGHC.BitsimportGHC.EnumimportGHC.NumimportGHC.RealimportGHC.IximportGHC.Show-------------------------------------------------------------------------- type Word8-------------------------------------------------------------------------- Word8 is represented in the same way as Word. Operations may assume-- and must ensure that it holds only values from its logical range.data{-# CTYPE"HsWord8"#-}Word8=W8#Word8#-- ^ 8-bit unsigned integer type-- See GHC.Classes#matching_overloaded_methods_in_rules-- | @since 2.01instanceEqWord8where== :: Word8 -> Word8 -> Bool(==)=Word8 -> Word8 -> BooleqWord8/= :: Word8 -> Word8 -> Bool(/=)=Word8 -> Word8 -> BoolneWord8eqWord8,neWord8::Word8->Word8->BooleqWord8 :: Word8 -> Word8 -> BooleqWord8(W8#Word8#x)(W8#Word8#y)=Int# -> BoolisTrue#((Word8# -> Word#word8ToWord#Word8#x)Word# -> Word# -> Int#`eqWord#`(Word8# -> Word#word8ToWord#Word8#y))neWord8 :: Word8 -> Word8 -> BoolneWord8(W8#Word8#x)(W8#Word8#y)=Int# -> BoolisTrue#((Word8# -> Word#word8ToWord#Word8#x)Word# -> Word# -> Int#`neWord#`(Word8# -> Word#word8ToWord#Word8#y)){-# INLINE[1]eqWord8#-}{-# INLINE[1]neWord8#-}-- | @since 2.01instanceOrdWord8where< :: Word8 -> Word8 -> Bool(<)=Word8 -> Word8 -> BoolltWord8<= :: Word8 -> Word8 -> Bool(<=)=Word8 -> Word8 -> BoolleWord8>= :: Word8 -> Word8 -> Bool(>=)=Word8 -> Word8 -> BoolgeWord8> :: Word8 -> Word8 -> Bool(>)=Word8 -> Word8 -> BoolgtWord8{-# INLINE[1]gtWord8#-}{-# INLINE[1]geWord8#-}{-# INLINE[1]ltWord8#-}{-# INLINE[1]leWord8#-}gtWord8,geWord8,ltWord8,leWord8::Word8->Word8->Bool(W8#Word8#x)gtWord8 :: Word8 -> Word8 -> Bool`gtWord8`(W8#Word8#y)=Int# -> BoolisTrue#(Word8#xWord8# -> Word8# -> Int#`gtWord8#`Word8#y)(W8#Word8#x)geWord8 :: Word8 -> Word8 -> Bool`geWord8`(W8#Word8#y)=Int# -> BoolisTrue#(Word8#xWord8# -> Word8# -> Int#`geWord8#`Word8#y)(W8#Word8#x)ltWord8 :: Word8 -> Word8 -> Bool`ltWord8`(W8#Word8#y)=Int# -> BoolisTrue#(Word8#xWord8# -> Word8# -> Int#`ltWord8#`Word8#y)(W8#Word8#x)leWord8 :: Word8 -> Word8 -> Bool`leWord8`(W8#Word8#y)=Int# -> BoolisTrue#(Word8#xWord8# -> Word8# -> Int#`leWord8#`Word8#y)-- | @since 2.01instanceShowWord8whereshowsPrec :: Int -> Word8 -> ShowSshowsPrecIntpWord8x=Int -> Int -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecIntp(Word8 -> Intforall a b. (Integral a, Num b) => a -> bfromIntegralWord8x::Int)-- | @since 2.01instanceNumWord8where(W8#Word8#x#)+ :: Word8 -> Word8 -> Word8+(W8#Word8#y#)=Word8# -> Word8W8#(Word8#x#Word8# -> Word8# -> Word8#`plusWord8#`Word8#y#)(W8#Word8#x#)- :: Word8 -> Word8 -> Word8-(W8#Word8#y#)=Word8# -> Word8W8#(Word8#x#Word8# -> Word8# -> Word8#`subWord8#`Word8#y#)(W8#Word8#x#)* :: Word8 -> Word8 -> Word8*(W8#Word8#y#)=Word8# -> Word8W8#(Word8#x#Word8# -> Word8# -> Word8#`timesWord8#`Word8#y#)negate :: Word8 -> Word8negate(W8#Word8#x#)=Word8# -> Word8W8#(Int8# -> Word8#int8ToWord8#(Int8# -> Int8#negateInt8#(Word8# -> Int8#word8ToInt8#Word8#x#)))abs :: Word8 -> Word8absWord8x=Word8xsignum :: Word8 -> Word8signumWord80=Word80signumWord8_=Word81fromInteger :: Integer -> Word8fromIntegerIntegeri=Word8# -> Word8W8#(Word# -> Word8#wordToWord8#(Integer -> Word#integerToWord#Integeri))-- | @since 2.01instanceRealWord8wheretoRational :: Word8 -> RationaltoRationalWord8x=Word8 -> Integerforall a. Integral a => a -> IntegertoIntegerWord8xInteger -> Integer -> Rationalforall a. Integral a => a -> a -> Ratio a%Integer1-- | @since 2.01instanceEnumWord8wheresucc :: Word8 -> Word8succWord8x|Word8xWord8 -> Word8 -> Boolforall a. Eq a => a -> a -> Bool/=Word8forall a. Bounded a => amaxBound=Word8xWord8 -> Word8 -> Word8forall a. Num a => a -> a -> a+Word81|Boolotherwise=String -> Word8forall a. String -> asuccErrorString"Word8"pred :: Word8 -> Word8predWord8x|Word8xWord8 -> Word8 -> Boolforall a. Eq a => a -> a -> Bool/=Word8forall a. Bounded a => aminBound=Word8xWord8 -> Word8 -> Word8forall a. Num a => a -> a -> a-Word81|Boolotherwise=String -> Word8forall a. String -> apredErrorString"Word8"toEnum :: Int -> Word8toEnumi :: Inti@(I#Int#i#)|IntiInt -> Int -> Boolforall a. Ord a => a -> a -> Bool>=Int0Bool -> Bool -> Bool&&IntiInt -> Int -> Boolforall a. Ord a => a -> a -> Bool<=Word8 -> Intforall a b. (Integral a, Num b) => a -> bfromIntegral(Word8forall a. Bounded a => amaxBound::Word8)=Word8# -> Word8W8#(Word# -> Word8#wordToWord8#(Int# -> Word#int2Word#Int#i#))|Boolotherwise=String -> Int -> (Word8, Word8) -> Word8forall a b. Show a => String -> Int -> (a, a) -> btoEnumErrorString"Word8"Inti(Word8forall a. Bounded a => aminBound::Word8,Word8forall a. Bounded a => amaxBound::Word8)fromEnum :: Word8 -> IntfromEnum(W8#Word8#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word8# -> Word#word8ToWord#Word8#x#))-- See Note [Stable Unfolding for list producers] in GHC.Enum{-# INLINEenumFrom#-}enumFrom :: Word8 -> [Word8]enumFrom=Word8 -> [Word8]forall a. (Enum a, Bounded a) => a -> [a]boundedEnumFrom-- See Note [Stable Unfolding for list producers] in GHC.Enum{-# INLINEenumFromThen#-}enumFromThen :: Word8 -> Word8 -> [Word8]enumFromThen=Word8 -> Word8 -> [Word8]forall a. (Enum a, Bounded a) => a -> a -> [a]boundedEnumFromThen-- | @since 2.01instanceIntegralWord8where-- see Note [INLINE division wrappers] in GHC.Base{-# INLINEquot#-}{-# INLINErem#-}{-# INLINEquotRem#-}{-# INLINEdiv#-}{-# INLINEmod#-}{-# INLINEdivMod#-}quot :: Word8 -> Word8 -> Word8quot(W8#Word8#x#)y :: Word8y@(W8#Word8#y#)|Word8yWord8 -> Word8 -> Boolforall a. Eq a => a -> a -> Bool/=Word80=Word8# -> Word8W8#(Word8#x#Word8# -> Word8# -> Word8#`quotWord8#`Word8#y#)|Boolotherwise=Word8forall a. adivZeroErrorrem :: Word8 -> Word8 -> Word8rem(W8#Word8#x#)y :: Word8y@(W8#Word8#y#)|Word8yWord8 -> Word8 -> Boolforall a. Eq a => a -> a -> Bool/=Word80=Word8# -> Word8W8#(Word8#x#Word8# -> Word8# -> Word8#`remWord8#`Word8#y#)|Boolotherwise=Word8forall a. adivZeroErrorquotRem :: Word8 -> Word8 -> (Word8, Word8)quotRem(W8#Word8#x#)y :: Word8y@(W8#Word8#y#)|Word8yWord8 -> Word8 -> Boolforall a. Eq a => a -> a -> Bool/=Word80=caseWord8#x#Word8# -> Word8# -> (# Word8#, Word8# #)`quotRemWord8#`Word8#y#of(#Word8#q,Word8#r#)->(Word8# -> Word8W8#Word8#q,Word8# -> Word8W8#Word8#r)|Boolotherwise=(Word8, Word8)forall a. adivZeroErrordiv :: Word8 -> Word8 -> Word8divWord8xWord8y=Word8 -> Word8 -> Word8forall a. Integral a => a -> a -> aquotWord8xWord8ymod :: Word8 -> Word8 -> Word8modWord8xWord8y=Word8 -> Word8 -> Word8forall a. Integral a => a -> a -> aremWord8xWord8ydivMod :: Word8 -> Word8 -> (Word8, Word8)divModWord8xWord8y=Word8 -> Word8 -> (Word8, Word8)forall a. Integral a => a -> a -> (a, a)quotRemWord8xWord8ytoInteger :: Word8 -> IntegertoInteger(W8#Word8#x#)=Int# -> IntegerIS(Word# -> Int#word2Int#(Word8# -> Word#word8ToWord#Word8#x#))-- | @since 2.01instanceBoundedWord8whereminBound :: Word8minBound=Word80maxBound :: Word8maxBound=Word80xFF-- | @since 2.01instanceIxWord8whererange :: (Word8, Word8) -> [Word8]range(Word8m,Word8n)=[Word8m..Word8n]unsafeIndex :: (Word8, Word8) -> Word8 -> IntunsafeIndex(Word8m,Word8_)Word8i=Word8 -> Intforall a b. (Integral a, Num b) => a -> bfromIntegral(Word8iWord8 -> Word8 -> Word8forall a. Num a => a -> a -> a-Word8m)inRange :: (Word8, Word8) -> Word8 -> BoolinRange(Word8m,Word8n)Word8i=Word8mWord8 -> Word8 -> Boolforall a. Ord a => a -> a -> Bool<=Word8iBool -> Bool -> Bool&&Word8iWord8 -> Word8 -> Boolforall a. Ord a => a -> a -> Bool<=Word8n-- | @since 2.01instanceBitsWord8where{-# INLINEshift#-}{-# INLINEbit#-}{-# INLINEtestBit#-}{-# INLINEpopCount#-}(W8#Word8#x#).&. :: Word8 -> Word8 -> Word8.&.(W8#Word8#y#)=Word8# -> Word8W8#(Word# -> Word8#wordToWord8#((Word8# -> Word#word8ToWord#Word8#x#)Word# -> Word# -> Word#`and#`(Word8# -> Word#word8ToWord#Word8#y#)))(W8#Word8#x#).|. :: Word8 -> Word8 -> Word8.|.(W8#Word8#y#)=Word8# -> Word8W8#(Word# -> Word8#wordToWord8#((Word8# -> Word#word8ToWord#Word8#x#)Word# -> Word# -> Word#`or#`(Word8# -> Word#word8ToWord#Word8#y#)))(W8#Word8#x#)xor :: Word8 -> Word8 -> Word8`xor`(W8#Word8#y#)=Word8# -> Word8W8#(Word# -> Word8#wordToWord8#((Word8# -> Word#word8ToWord#Word8#x#)Word# -> Word# -> Word#`xor#`(Word8# -> Word#word8ToWord#Word8#y#)))complement :: Word8 -> Word8complement(W8#Word8#x#)=Word8# -> Word8W8#(Word# -> Word8#wordToWord8#(Word# -> Word#not#(Word8# -> Word#word8ToWord#Word8#x#)))(W8#Word8#x#)shift :: Word8 -> Int -> Word8`shift`(I#Int#i#)|Int# -> BoolisTrue#(Int#i#Int# -> Int# -> Int#>=#Int#0#)=Word8# -> Word8W8#(Word# -> Word8#wordToWord8#((Word8# -> Word#word8ToWord#Word8#x#)Word# -> Int# -> Word#`shiftL#`Int#i#))|Boolotherwise=Word8# -> Word8W8#(Word# -> Word8#wordToWord8#((Word8# -> Word#word8ToWord#Word8#x#)Word# -> Int# -> Word#`shiftRL#`Int# -> Int#negateInt#Int#i#))(W8#Word8#x#)shiftL :: Word8 -> Int -> Word8`shiftL`(I#Int#i#)|Int# -> BoolisTrue#(Int#i#Int# -> Int# -> Int#>=#Int#0#)=Word8# -> Word8W8#(Word# -> Word8#wordToWord8#((Word8# -> Word#word8ToWord#Word8#x#)Word# -> Int# -> Word#`shiftL#`Int#i#))|Boolotherwise=Word8forall a. aoverflowError(W8#Word8#x#)unsafeShiftL :: Word8 -> Int -> Word8`unsafeShiftL`(I#Int#i#)=Word8# -> Word8W8#(Word# -> Word8#wordToWord8#((Word8# -> Word#word8ToWord#Word8#x#)Word# -> Int# -> Word#`uncheckedShiftL#`Int#i#))(W8#Word8#x#)shiftR :: Word8 -> Int -> Word8`shiftR`(I#Int#i#)|Int# -> BoolisTrue#(Int#i#Int# -> Int# -> Int#>=#Int#0#)=Word8# -> Word8W8#(Word# -> Word8#wordToWord8#((Word8# -> Word#word8ToWord#Word8#x#)Word# -> Int# -> Word#`shiftRL#`Int#i#))|Boolotherwise=Word8forall a. aoverflowError(W8#Word8#x#)unsafeShiftR :: Word8 -> Int -> Word8`unsafeShiftR`(I#Int#i#)=Word8# -> Word8W8#(Word# -> Word8#wordToWord8#((Word8# -> Word#word8ToWord#Word8#x#)Word# -> Int# -> Word#`uncheckedShiftRL#`Int#i#))(W8#Word8#x#)rotate :: Word8 -> Int -> Word8`rotate`(I#Int#i#)|Int# -> BoolisTrue#(Int#i'#Int# -> Int# -> Int#==#Int#0#)=Word8# -> Word8W8#Word8#x#|Boolotherwise=Word8# -> Word8W8#(Word# -> Word8#wordToWord8#(((Word8# -> Word#word8ToWord#Word8#x#)Word# -> Int# -> Word#`uncheckedShiftL#`Int#i'#)Word# -> Word# -> Word#`or#`((Word8# -> Word#word8ToWord#Word8#x#)Word# -> Int# -> Word#`uncheckedShiftRL#`(Int#8#Int# -> Int# -> Int#-#Int#i'#))))where!i'# :: Int#i'#=Word# -> Int#word2Int#(Int# -> Word#int2Word#Int#i#Word# -> Word# -> Word#`and#`Word#7##)bitSizeMaybe :: Word8 -> Maybe IntbitSizeMaybeWord8i=Int -> Maybe Intforall a. a -> Maybe aJust(Word8 -> Intforall b. FiniteBits b => b -> IntfiniteBitSizeWord8i)bitSize :: Word8 -> IntbitSizeWord8i=Word8 -> Intforall b. FiniteBits b => b -> IntfiniteBitSizeWord8iisSigned :: Word8 -> BoolisSignedWord8_=BoolFalsepopCount :: Word8 -> IntpopCount(W8#Word8#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word# -> Word#popCnt8#(Word8# -> Word#word8ToWord#Word8#x#)))bit :: Int -> Word8bitInti=Int -> Word8forall a. (Bits a, Num a) => Int -> abitDefaultIntitestBit :: Word8 -> Int -> BooltestBitWord8aInti=Word8 -> Int -> Boolforall a. (Bits a, Num a) => a -> Int -> BooltestBitDefaultWord8aInti-- | @since 4.6.0.0instanceFiniteBitsWord8where{-# INLINEcountLeadingZeros#-}{-# INLINEcountTrailingZeros#-}finiteBitSize :: Word8 -> IntfiniteBitSizeWord8_=Int8countLeadingZeros :: Word8 -> IntcountLeadingZeros(W8#Word8#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word# -> Word#clz8#(Word8# -> Word#word8ToWord#Word8#x#)))countTrailingZeros :: Word8 -> IntcountTrailingZeros(W8#Word8#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word# -> Word#ctz8#(Word8# -> Word#word8ToWord#Word8#x#))){-# RULES"properFraction/Float->(Word8,Float)"properFraction=\x->caseproperFractionxof{(n,y)->((fromIntegral::Int->Word8)n,y::Float)}"truncate/Float->Word8"truncate=(fromIntegral::Int->Word8).(truncate::Float->Int)"floor/Float->Word8"floor=(fromIntegral::Int->Word8).(floor::Float->Int)"ceiling/Float->Word8"ceiling=(fromIntegral::Int->Word8).(ceiling::Float->Int)"round/Float->Word8"round=(fromIntegral::Int->Word8).(round::Float->Int)#-}{-# RULES"properFraction/Double->(Word8,Double)"properFraction=\x->caseproperFractionxof{(n,y)->((fromIntegral::Int->Word8)n,y::Double)}"truncate/Double->Word8"truncate=(fromIntegral::Int->Word8).(truncate::Double->Int)"floor/Double->Word8"floor=(fromIntegral::Int->Word8).(floor::Double->Int)"ceiling/Double->Word8"ceiling=(fromIntegral::Int->Word8).(ceiling::Double->Int)"round/Double->Word8"round=(fromIntegral::Int->Word8).(round::Double->Int)#-}-------------------------------------------------------------------------- type Word16-------------------------------------------------------------------------- Word16 is represented in the same way as Word. Operations may assume-- and must ensure that it holds only values from its logical range.data{-# CTYPE"HsWord16"#-}Word16=W16#Word16#-- ^ 16-bit unsigned integer type-- See GHC.Classes#matching_overloaded_methods_in_rules-- | @since 2.01instanceEqWord16where== :: Word16 -> Word16 -> Bool(==)=Word16 -> Word16 -> BooleqWord16/= :: Word16 -> Word16 -> Bool(/=)=Word16 -> Word16 -> BoolneWord16eqWord16,neWord16::Word16->Word16->BooleqWord16 :: Word16 -> Word16 -> BooleqWord16(W16#Word16#x)(W16#Word16#y)=Int# -> BoolisTrue#((Word16# -> Word#word16ToWord#Word16#x)Word# -> Word# -> Int#`eqWord#`(Word16# -> Word#word16ToWord#Word16#y))neWord16 :: Word16 -> Word16 -> BoolneWord16(W16#Word16#x)(W16#Word16#y)=Int# -> BoolisTrue#((Word16# -> Word#word16ToWord#Word16#x)Word# -> Word# -> Int#`neWord#`(Word16# -> Word#word16ToWord#Word16#y)){-# INLINE[1]eqWord16#-}{-# INLINE[1]neWord16#-}-- | @since 2.01instanceOrdWord16where< :: Word16 -> Word16 -> Bool(<)=Word16 -> Word16 -> BoolltWord16<= :: Word16 -> Word16 -> Bool(<=)=Word16 -> Word16 -> BoolleWord16>= :: Word16 -> Word16 -> Bool(>=)=Word16 -> Word16 -> BoolgeWord16> :: Word16 -> Word16 -> Bool(>)=Word16 -> Word16 -> BoolgtWord16{-# INLINE[1]gtWord16#-}{-# INLINE[1]geWord16#-}{-# INLINE[1]ltWord16#-}{-# INLINE[1]leWord16#-}gtWord16,geWord16,ltWord16,leWord16::Word16->Word16->Bool(W16#Word16#x)gtWord16 :: Word16 -> Word16 -> Bool`gtWord16`(W16#Word16#y)=Int# -> BoolisTrue#(Word16#xWord16# -> Word16# -> Int#`gtWord16#`Word16#y)(W16#Word16#x)geWord16 :: Word16 -> Word16 -> Bool`geWord16`(W16#Word16#y)=Int# -> BoolisTrue#(Word16#xWord16# -> Word16# -> Int#`geWord16#`Word16#y)(W16#Word16#x)ltWord16 :: Word16 -> Word16 -> Bool`ltWord16`(W16#Word16#y)=Int# -> BoolisTrue#(Word16#xWord16# -> Word16# -> Int#`ltWord16#`Word16#y)(W16#Word16#x)leWord16 :: Word16 -> Word16 -> Bool`leWord16`(W16#Word16#y)=Int# -> BoolisTrue#(Word16#xWord16# -> Word16# -> Int#`leWord16#`Word16#y)-- | @since 2.01instanceShowWord16whereshowsPrec :: Int -> Word16 -> ShowSshowsPrecIntpWord16x=Int -> Int -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecIntp(Word16 -> Intforall a b. (Integral a, Num b) => a -> bfromIntegralWord16x::Int)-- | @since 2.01instanceNumWord16where(W16#Word16#x#)+ :: Word16 -> Word16 -> Word16+(W16#Word16#y#)=Word16# -> Word16W16#(Word16#x#Word16# -> Word16# -> Word16#`plusWord16#`Word16#y#)(W16#Word16#x#)- :: Word16 -> Word16 -> Word16-(W16#Word16#y#)=Word16# -> Word16W16#(Word16#x#Word16# -> Word16# -> Word16#`subWord16#`Word16#y#)(W16#Word16#x#)* :: Word16 -> Word16 -> Word16*(W16#Word16#y#)=Word16# -> Word16W16#(Word16#x#Word16# -> Word16# -> Word16#`timesWord16#`Word16#y#)negate :: Word16 -> Word16negate(W16#Word16#x#)=Word16# -> Word16W16#(Int16# -> Word16#int16ToWord16#(Int16# -> Int16#negateInt16#(Word16# -> Int16#word16ToInt16#Word16#x#)))abs :: Word16 -> Word16absWord16x=Word16xsignum :: Word16 -> Word16signumWord160=Word160signumWord16_=Word161fromInteger :: Integer -> Word16fromIntegerIntegeri=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#(Integer -> Word#integerToWord#Integeri))-- | @since 2.01instanceRealWord16wheretoRational :: Word16 -> RationaltoRationalWord16x=Word16 -> Integerforall a. Integral a => a -> IntegertoIntegerWord16xInteger -> Integer -> Rationalforall a. Integral a => a -> a -> Ratio a%Integer1-- | @since 2.01instanceEnumWord16wheresucc :: Word16 -> Word16succWord16x|Word16xWord16 -> Word16 -> Boolforall a. Eq a => a -> a -> Bool/=Word16forall a. Bounded a => amaxBound=Word16xWord16 -> Word16 -> Word16forall a. Num a => a -> a -> a+Word161|Boolotherwise=String -> Word16forall a. String -> asuccErrorString"Word16"pred :: Word16 -> Word16predWord16x|Word16xWord16 -> Word16 -> Boolforall a. Eq a => a -> a -> Bool/=Word16forall a. Bounded a => aminBound=Word16xWord16 -> Word16 -> Word16forall a. Num a => a -> a -> a-Word161|Boolotherwise=String -> Word16forall a. String -> apredErrorString"Word16"toEnum :: Int -> Word16toEnumi :: Inti@(I#Int#i#)|IntiInt -> Int -> Boolforall a. Ord a => a -> a -> Bool>=Int0Bool -> Bool -> Bool&&IntiInt -> Int -> Boolforall a. Ord a => a -> a -> Bool<=Word16 -> Intforall a b. (Integral a, Num b) => a -> bfromIntegral(Word16forall a. Bounded a => amaxBound::Word16)=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#(Int# -> Word#int2Word#Int#i#))|Boolotherwise=String -> Int -> (Word16, Word16) -> Word16forall a b. Show a => String -> Int -> (a, a) -> btoEnumErrorString"Word16"Inti(Word16forall a. Bounded a => aminBound::Word16,Word16forall a. Bounded a => amaxBound::Word16)fromEnum :: Word16 -> IntfromEnum(W16#Word16#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word16# -> Word#word16ToWord#Word16#x#))-- See Note [Stable Unfolding for list producers] in GHC.Enum{-# INLINEenumFrom#-}enumFrom :: Word16 -> [Word16]enumFrom=Word16 -> [Word16]forall a. (Enum a, Bounded a) => a -> [a]boundedEnumFrom-- See Note [Stable Unfolding for list producers] in GHC.Enum{-# INLINEenumFromThen#-}enumFromThen :: Word16 -> Word16 -> [Word16]enumFromThen=Word16 -> Word16 -> [Word16]forall a. (Enum a, Bounded a) => a -> a -> [a]boundedEnumFromThen-- | @since 2.01instanceIntegralWord16where-- see Note [INLINE division wrappers] in GHC.Base{-# INLINEquot#-}{-# INLINErem#-}{-# INLINEquotRem#-}{-# INLINEdiv#-}{-# INLINEmod#-}{-# INLINEdivMod#-}quot :: Word16 -> Word16 -> Word16quot(W16#Word16#x#)y :: Word16y@(W16#Word16#y#)|Word16yWord16 -> Word16 -> Boolforall a. Eq a => a -> a -> Bool/=Word160=Word16# -> Word16W16#(Word16#x#Word16# -> Word16# -> Word16#`quotWord16#`Word16#y#)|Boolotherwise=Word16forall a. adivZeroErrorrem :: Word16 -> Word16 -> Word16rem(W16#Word16#x#)y :: Word16y@(W16#Word16#y#)|Word16yWord16 -> Word16 -> Boolforall a. Eq a => a -> a -> Bool/=Word160=Word16# -> Word16W16#(Word16#x#Word16# -> Word16# -> Word16#`remWord16#`Word16#y#)|Boolotherwise=Word16forall a. adivZeroErrorquotRem :: Word16 -> Word16 -> (Word16, Word16)quotRem(W16#Word16#x#)y :: Word16y@(W16#Word16#y#)|Word16yWord16 -> Word16 -> Boolforall a. Eq a => a -> a -> Bool/=Word160=caseWord16#x#Word16# -> Word16# -> (# Word16#, Word16# #)`quotRemWord16#`Word16#y#of(#Word16#q,Word16#r#)->(Word16# -> Word16W16#Word16#q,Word16# -> Word16W16#Word16#r)|Boolotherwise=(Word16, Word16)forall a. adivZeroErrordiv :: Word16 -> Word16 -> Word16divWord16xWord16y=Word16 -> Word16 -> Word16forall a. Integral a => a -> a -> aquotWord16xWord16ymod :: Word16 -> Word16 -> Word16modWord16xWord16y=Word16 -> Word16 -> Word16forall a. Integral a => a -> a -> aremWord16xWord16ydivMod :: Word16 -> Word16 -> (Word16, Word16)divModWord16xWord16y=Word16 -> Word16 -> (Word16, Word16)forall a. Integral a => a -> a -> (a, a)quotRemWord16xWord16ytoInteger :: Word16 -> IntegertoInteger(W16#Word16#x#)=Int# -> IntegerIS(Word# -> Int#word2Int#(Word16# -> Word#word16ToWord#Word16#x#))-- | @since 2.01instanceBoundedWord16whereminBound :: Word16minBound=Word160maxBound :: Word16maxBound=Word160xFFFF-- | @since 2.01instanceIxWord16whererange :: (Word16, Word16) -> [Word16]range(Word16m,Word16n)=[Word16m..Word16n]unsafeIndex :: (Word16, Word16) -> Word16 -> IntunsafeIndex(Word16m,Word16_)Word16i=Word16 -> Intforall a b. (Integral a, Num b) => a -> bfromIntegral(Word16iWord16 -> Word16 -> Word16forall a. Num a => a -> a -> a-Word16m)inRange :: (Word16, Word16) -> Word16 -> BoolinRange(Word16m,Word16n)Word16i=Word16mWord16 -> Word16 -> Boolforall a. Ord a => a -> a -> Bool<=Word16iBool -> Bool -> Bool&&Word16iWord16 -> Word16 -> Boolforall a. Ord a => a -> a -> Bool<=Word16n-- | @since 2.01instanceBitsWord16where{-# INLINEshift#-}{-# INLINEbit#-}{-# INLINEtestBit#-}{-# INLINEpopCount#-}(W16#Word16#x#).&. :: Word16 -> Word16 -> Word16.&.(W16#Word16#y#)=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#((Word16# -> Word#word16ToWord#Word16#x#)Word# -> Word# -> Word#`and#`(Word16# -> Word#word16ToWord#Word16#y#)))(W16#Word16#x#).|. :: Word16 -> Word16 -> Word16.|.(W16#Word16#y#)=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#((Word16# -> Word#word16ToWord#Word16#x#)Word# -> Word# -> Word#`or#`(Word16# -> Word#word16ToWord#Word16#y#)))(W16#Word16#x#)xor :: Word16 -> Word16 -> Word16`xor`(W16#Word16#y#)=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#((Word16# -> Word#word16ToWord#Word16#x#)Word# -> Word# -> Word#`xor#`(Word16# -> Word#word16ToWord#Word16#y#)))complement :: Word16 -> Word16complement(W16#Word16#x#)=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#(Word# -> Word#not#(Word16# -> Word#word16ToWord#Word16#x#)))(W16#Word16#x#)shift :: Word16 -> Int -> Word16`shift`(I#Int#i#)|Int# -> BoolisTrue#(Int#i#Int# -> Int# -> Int#>=#Int#0#)=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#((Word16# -> Word#word16ToWord#Word16#x#)Word# -> Int# -> Word#`shiftL#`Int#i#))|Boolotherwise=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#((Word16# -> Word#word16ToWord#Word16#x#)Word# -> Int# -> Word#`shiftRL#`Int# -> Int#negateInt#Int#i#))(W16#Word16#x#)shiftL :: Word16 -> Int -> Word16`shiftL`(I#Int#i#)|Int# -> BoolisTrue#(Int#i#Int# -> Int# -> Int#>=#Int#0#)=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#((Word16# -> Word#word16ToWord#Word16#x#)Word# -> Int# -> Word#`shiftL#`Int#i#))|Boolotherwise=Word16forall a. aoverflowError(W16#Word16#x#)unsafeShiftL :: Word16 -> Int -> Word16`unsafeShiftL`(I#Int#i#)=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#((Word16# -> Word#word16ToWord#Word16#x#)Word# -> Int# -> Word#`uncheckedShiftL#`Int#i#))(W16#Word16#x#)shiftR :: Word16 -> Int -> Word16`shiftR`(I#Int#i#)|Int# -> BoolisTrue#(Int#i#Int# -> Int# -> Int#>=#Int#0#)=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#((Word16# -> Word#word16ToWord#Word16#x#)Word# -> Int# -> Word#`shiftRL#`Int#i#))|Boolotherwise=Word16forall a. aoverflowError(W16#Word16#x#)unsafeShiftR :: Word16 -> Int -> Word16`unsafeShiftR`(I#Int#i#)=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#((Word16# -> Word#word16ToWord#Word16#x#)Word# -> Int# -> Word#`uncheckedShiftRL#`Int#i#))(W16#Word16#x#)rotate :: Word16 -> Int -> Word16`rotate`(I#Int#i#)|Int# -> BoolisTrue#(Int#i'#Int# -> Int# -> Int#==#Int#0#)=Word16# -> Word16W16#Word16#x#|Boolotherwise=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#(((Word16# -> Word#word16ToWord#Word16#x#)Word# -> Int# -> Word#`uncheckedShiftL#`Int#i'#)Word# -> Word# -> Word#`or#`((Word16# -> Word#word16ToWord#Word16#x#)Word# -> Int# -> Word#`uncheckedShiftRL#`(Int#16#Int# -> Int# -> Int#-#Int#i'#))))where!i'# :: Int#i'#=Word# -> Int#word2Int#(Int# -> Word#int2Word#Int#i#Word# -> Word# -> Word#`and#`Word#15##)bitSizeMaybe :: Word16 -> Maybe IntbitSizeMaybeWord16i=Int -> Maybe Intforall a. a -> Maybe aJust(Word16 -> Intforall b. FiniteBits b => b -> IntfiniteBitSizeWord16i)bitSize :: Word16 -> IntbitSizeWord16i=Word16 -> Intforall b. FiniteBits b => b -> IntfiniteBitSizeWord16iisSigned :: Word16 -> BoolisSignedWord16_=BoolFalsepopCount :: Word16 -> IntpopCount(W16#Word16#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word# -> Word#popCnt16#(Word16# -> Word#word16ToWord#Word16#x#)))bit :: Int -> Word16bitInti=Int -> Word16forall a. (Bits a, Num a) => Int -> abitDefaultIntitestBit :: Word16 -> Int -> BooltestBitWord16aInti=Word16 -> Int -> Boolforall a. (Bits a, Num a) => a -> Int -> BooltestBitDefaultWord16aInti-- | @since 4.6.0.0instanceFiniteBitsWord16where{-# INLINEcountLeadingZeros#-}{-# INLINEcountTrailingZeros#-}finiteBitSize :: Word16 -> IntfiniteBitSizeWord16_=Int16countLeadingZeros :: Word16 -> IntcountLeadingZeros(W16#Word16#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word# -> Word#clz16#(Word16# -> Word#word16ToWord#Word16#x#)))countTrailingZeros :: Word16 -> IntcountTrailingZeros(W16#Word16#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word# -> Word#ctz16#(Word16# -> Word#word16ToWord#Word16#x#)))-- | Reverse order of bytes in 'Word16'.---- @since 4.7.0.0byteSwap16::Word16->Word16byteSwap16 :: Word16 -> Word16byteSwap16(W16#Word16#w#)=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#(Word# -> Word#byteSwap16#(Word16# -> Word#word16ToWord#Word16#w#))){-# RULES"properFraction/Float->(Word16,Float)"properFraction=\x->caseproperFractionxof{(n,y)->((fromIntegral::Int->Word16)n,y::Float)}"truncate/Float->Word16"truncate=(fromIntegral::Int->Word16).(truncate::Float->Int)"floor/Float->Word16"floor=(fromIntegral::Int->Word16).(floor::Float->Int)"ceiling/Float->Word16"ceiling=(fromIntegral::Int->Word16).(ceiling::Float->Int)"round/Float->Word16"round=(fromIntegral::Int->Word16).(round::Float->Int)#-}{-# RULES"properFraction/Double->(Word16,Double)"properFraction=\x->caseproperFractionxof{(n,y)->((fromIntegral::Int->Word16)n,y::Double)}"truncate/Double->Word16"truncate=(fromIntegral::Int->Word16).(truncate::Double->Int)"floor/Double->Word16"floor=(fromIntegral::Int->Word16).(floor::Double->Int)"ceiling/Double->Word16"ceiling=(fromIntegral::Int->Word16).(ceiling::Double->Int)"round/Double->Word16"round=(fromIntegral::Int->Word16).(round::Double->Int)#-}-------------------------------------------------------------------------- type Word32-------------------------------------------------------------------------- Word32 is represented in the same way as Word.#if WORD_SIZE_IN_BITS > 32-- Operations may assume and must ensure that it holds only values-- from its logical range.-- We can use rewrite rules for the RealFrac methods{-# RULES"properFraction/Float->(Word32,Float)"properFraction=\x->caseproperFractionxof{(n,y)->((fromIntegral::Int->Word32)n,y::Float)}"truncate/Float->Word32"truncate=(fromIntegral::Int->Word32).(truncate::Float->Int)"floor/Float->Word32"floor=(fromIntegral::Int->Word32).(floor::Float->Int)"ceiling/Float->Word32"ceiling=(fromIntegral::Int->Word32).(ceiling::Float->Int)"round/Float->Word32"round=(fromIntegral::Int->Word32).(round::Float->Int)#-}{-# RULES"properFraction/Double->(Word32,Double)"properFraction=\x->caseproperFractionxof{(n,y)->((fromIntegral::Int->Word32)n,y::Double)}"truncate/Double->Word32"truncate=(fromIntegral::Int->Word32).(truncate::Double->Int)"floor/Double->Word32"floor=(fromIntegral::Int->Word32).(floor::Double->Int)"ceiling/Double->Word32"ceiling=(fromIntegral::Int->Word32).(ceiling::Double->Int)"round/Double->Word32"round=(fromIntegral::Int->Word32).(round::Double->Int)#-}#endifdata{-# CTYPE"HsWord32"#-}Word32=W32#Word32#-- ^ 32-bit unsigned integer type-- See GHC.Classes#matching_overloaded_methods_in_rules-- | @since 2.01instanceEqWord32where== :: Word32 -> Word32 -> Bool(==)=Word32 -> Word32 -> BooleqWord32/= :: Word32 -> Word32 -> Bool(/=)=Word32 -> Word32 -> BoolneWord32eqWord32,neWord32::Word32->Word32->BooleqWord32 :: Word32 -> Word32 -> BooleqWord32(W32#Word32#x)(W32#Word32#y)=Int# -> BoolisTrue#((Word32# -> Word#word32ToWord#Word32#x)Word# -> Word# -> Int#`eqWord#`(Word32# -> Word#word32ToWord#Word32#y))neWord32 :: Word32 -> Word32 -> BoolneWord32(W32#Word32#x)(W32#Word32#y)=Int# -> BoolisTrue#((Word32# -> Word#word32ToWord#Word32#x)Word# -> Word# -> Int#`neWord#`(Word32# -> Word#word32ToWord#Word32#y)){-# INLINE[1]eqWord32#-}{-# INLINE[1]neWord32#-}-- | @since 2.01instanceOrdWord32where< :: Word32 -> Word32 -> Bool(<)=Word32 -> Word32 -> BoolltWord32<= :: Word32 -> Word32 -> Bool(<=)=Word32 -> Word32 -> BoolleWord32>= :: Word32 -> Word32 -> Bool(>=)=Word32 -> Word32 -> BoolgeWord32> :: Word32 -> Word32 -> Bool(>)=Word32 -> Word32 -> BoolgtWord32{-# INLINE[1]gtWord32#-}{-# INLINE[1]geWord32#-}{-# INLINE[1]ltWord32#-}{-# INLINE[1]leWord32#-}gtWord32,geWord32,ltWord32,leWord32::Word32->Word32->Bool(W32#Word32#x)gtWord32 :: Word32 -> Word32 -> Bool`gtWord32`(W32#Word32#y)=Int# -> BoolisTrue#(Word32#xWord32# -> Word32# -> Int#`gtWord32#`Word32#y)(W32#Word32#x)geWord32 :: Word32 -> Word32 -> Bool`geWord32`(W32#Word32#y)=Int# -> BoolisTrue#(Word32#xWord32# -> Word32# -> Int#`geWord32#`Word32#y)(W32#Word32#x)ltWord32 :: Word32 -> Word32 -> Bool`ltWord32`(W32#Word32#y)=Int# -> BoolisTrue#(Word32#xWord32# -> Word32# -> Int#`ltWord32#`Word32#y)(W32#Word32#x)leWord32 :: Word32 -> Word32 -> Bool`leWord32`(W32#Word32#y)=Int# -> BoolisTrue#(Word32#xWord32# -> Word32# -> Int#`leWord32#`Word32#y)-- | @since 2.01instanceNumWord32where(W32#Word32#x#)+ :: Word32 -> Word32 -> Word32+(W32#Word32#y#)=Word32# -> Word32W32#(Word32#x#Word32# -> Word32# -> Word32#`plusWord32#`Word32#y#)(W32#Word32#x#)- :: Word32 -> Word32 -> Word32-(W32#Word32#y#)=Word32# -> Word32W32#(Word32#x#Word32# -> Word32# -> Word32#`subWord32#`Word32#y#)(W32#Word32#x#)* :: Word32 -> Word32 -> Word32*(W32#Word32#y#)=Word32# -> Word32W32#(Word32#x#Word32# -> Word32# -> Word32#`timesWord32#`Word32#y#)negate :: Word32 -> Word32negate(W32#Word32#x#)=Word32# -> Word32W32#(Int32# -> Word32#int32ToWord32#(Int32# -> Int32#negateInt32#(Word32# -> Int32#word32ToInt32#Word32#x#)))abs :: Word32 -> Word32absWord32x=Word32xsignum :: Word32 -> Word32signumWord320=Word320signumWord32_=Word321fromInteger :: Integer -> Word32fromIntegerIntegeri=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#(Integer -> Word#integerToWord#Integeri))-- | @since 2.01instanceEnumWord32wheresucc :: Word32 -> Word32succWord32x|Word32xWord32 -> Word32 -> Boolforall a. Eq a => a -> a -> Bool/=Word32forall a. Bounded a => amaxBound=Word32xWord32 -> Word32 -> Word32forall a. Num a => a -> a -> a+Word321|Boolotherwise=String -> Word32forall a. String -> asuccErrorString"Word32"pred :: Word32 -> Word32predWord32x|Word32xWord32 -> Word32 -> Boolforall a. Eq a => a -> a -> Bool/=Word32forall a. Bounded a => aminBound=Word32xWord32 -> Word32 -> Word32forall a. Num a => a -> a -> a-Word321|Boolotherwise=String -> Word32forall a. String -> apredErrorString"Word32"toEnum :: Int -> Word32toEnumi :: Inti@(I#Int#i#)|IntiInt -> Int -> Boolforall a. Ord a => a -> a -> Bool>=Int0#if WORD_SIZE_IN_BITS > 32Bool -> Bool -> Bool&&IntiInt -> Int -> Boolforall a. Ord a => a -> a -> Bool<=Word32 -> Intforall a b. (Integral a, Num b) => a -> bfromIntegral(Word32forall a. Bounded a => amaxBound::Word32)#endif=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#(Int# -> Word#int2Word#Int#i#))|Boolotherwise=String -> Int -> (Word32, Word32) -> Word32forall a b. Show a => String -> Int -> (a, a) -> btoEnumErrorString"Word32"Inti(Word32forall a. Bounded a => aminBound::Word32,Word32forall a. Bounded a => amaxBound::Word32)#if WORD_SIZE_IN_BITS == 32fromEnumx@(W32#x#)|x<=fromIntegral(maxBound::Int)=I#(word2Int#(word32ToWord#x#))|otherwise=fromEnumError"Word32"xenumFrom=integralEnumFromenumFromThen=integralEnumFromThenenumFromTo=integralEnumFromToenumFromThenTo=integralEnumFromThenTo#elsefromEnum :: Word32 -> IntfromEnum(W32#Word32#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word32# -> Word#word32ToWord#Word32#x#))-- See Note [Stable Unfolding for list producers] in GHC.Enum{-# INLINEenumFrom#-}enumFrom :: Word32 -> [Word32]enumFrom=Word32 -> [Word32]forall a. (Enum a, Bounded a) => a -> [a]boundedEnumFrom-- See Note [Stable Unfolding for list producers] in GHC.Enum{-# INLINEenumFromThen#-}enumFromThen :: Word32 -> Word32 -> [Word32]enumFromThen=Word32 -> Word32 -> [Word32]forall a. (Enum a, Bounded a) => a -> a -> [a]boundedEnumFromThen#endif-- | @since 2.01instanceIntegralWord32where-- see Note [INLINE division wrappers] in GHC.Base{-# INLINEquot#-}{-# INLINErem#-}{-# INLINEquotRem#-}{-# INLINEdiv#-}{-# INLINEmod#-}{-# INLINEdivMod#-}quot :: Word32 -> Word32 -> Word32quot(W32#Word32#x#)y :: Word32y@(W32#Word32#y#)|Word32yWord32 -> Word32 -> Boolforall a. Eq a => a -> a -> Bool/=Word320=Word32# -> Word32W32#(Word32#x#Word32# -> Word32# -> Word32#`quotWord32#`Word32#y#)|Boolotherwise=Word32forall a. adivZeroErrorrem :: Word32 -> Word32 -> Word32rem(W32#Word32#x#)y :: Word32y@(W32#Word32#y#)|Word32yWord32 -> Word32 -> Boolforall a. Eq a => a -> a -> Bool/=Word320=Word32# -> Word32W32#(Word32#x#Word32# -> Word32# -> Word32#`remWord32#`Word32#y#)|Boolotherwise=Word32forall a. adivZeroErrorquotRem :: Word32 -> Word32 -> (Word32, Word32)quotRem(W32#Word32#x#)y :: Word32y@(W32#Word32#y#)|Word32yWord32 -> Word32 -> Boolforall a. Eq a => a -> a -> Bool/=Word320=caseWord32#x#Word32# -> Word32# -> (# Word32#, Word32# #)`quotRemWord32#`Word32#y#of(#Word32#q,Word32#r#)->(Word32# -> Word32W32#Word32#q,Word32# -> Word32W32#Word32#r)|Boolotherwise=(Word32, Word32)forall a. adivZeroErrordiv :: Word32 -> Word32 -> Word32divWord32xWord32y=Word32 -> Word32 -> Word32forall a. Integral a => a -> a -> aquotWord32xWord32ymod :: Word32 -> Word32 -> Word32modWord32xWord32y=Word32 -> Word32 -> Word32forall a. Integral a => a -> a -> aremWord32xWord32ydivMod :: Word32 -> Word32 -> (Word32, Word32)divModWord32xWord32y=Word32 -> Word32 -> (Word32, Word32)forall a. Integral a => a -> a -> (a, a)quotRemWord32xWord32ytoInteger :: Word32 -> IntegertoInteger(W32#Word32#x#)=Word# -> IntegerintegerFromWord#(Word32# -> Word#word32ToWord#Word32#x#)-- | @since 2.01instanceBitsWord32where{-# INLINEshift#-}{-# INLINEbit#-}{-# INLINEtestBit#-}{-# INLINEpopCount#-}(W32#Word32#x#).&. :: Word32 -> Word32 -> Word32.&.(W32#Word32#y#)=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#((Word32# -> Word#word32ToWord#Word32#x#)Word# -> Word# -> Word#`and#`(Word32# -> Word#word32ToWord#Word32#y#)))(W32#Word32#x#).|. :: Word32 -> Word32 -> Word32.|.(W32#Word32#y#)=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#((Word32# -> Word#word32ToWord#Word32#x#)Word# -> Word# -> Word#`or#`(Word32# -> Word#word32ToWord#Word32#y#)))(W32#Word32#x#)xor :: Word32 -> Word32 -> Word32`xor`(W32#Word32#y#)=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#((Word32# -> Word#word32ToWord#Word32#x#)Word# -> Word# -> Word#`xor#`(Word32# -> Word#word32ToWord#Word32#y#)))complement :: Word32 -> Word32complement(W32#Word32#x#)=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#(Word# -> Word#not#(Word32# -> Word#word32ToWord#Word32#x#)))(W32#Word32#x#)shift :: Word32 -> Int -> Word32`shift`(I#Int#i#)|Int# -> BoolisTrue#(Int#i#Int# -> Int# -> Int#>=#Int#0#)=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#((Word32# -> Word#word32ToWord#Word32#x#)Word# -> Int# -> Word#`shiftL#`Int#i#))|Boolotherwise=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#((Word32# -> Word#word32ToWord#Word32#x#)Word# -> Int# -> Word#`shiftRL#`Int# -> Int#negateInt#Int#i#))(W32#Word32#x#)shiftL :: Word32 -> Int -> Word32`shiftL`(I#Int#i#)|Int# -> BoolisTrue#(Int#i#Int# -> Int# -> Int#>=#Int#0#)=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#((Word32# -> Word#word32ToWord#Word32#x#)Word# -> Int# -> Word#`shiftL#`Int#i#))|Boolotherwise=Word32forall a. aoverflowError(W32#Word32#x#)unsafeShiftL :: Word32 -> Int -> Word32`unsafeShiftL`(I#Int#i#)=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#((Word32# -> Word#word32ToWord#Word32#x#)Word# -> Int# -> Word#`uncheckedShiftL#`Int#i#))(W32#Word32#x#)shiftR :: Word32 -> Int -> Word32`shiftR`(I#Int#i#)|Int# -> BoolisTrue#(Int#i#Int# -> Int# -> Int#>=#Int#0#)=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#((Word32# -> Word#word32ToWord#Word32#x#)Word# -> Int# -> Word#`shiftRL#`Int#i#))|Boolotherwise=Word32forall a. aoverflowError(W32#Word32#x#)unsafeShiftR :: Word32 -> Int -> Word32`unsafeShiftR`(I#Int#i#)=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#((Word32# -> Word#word32ToWord#Word32#x#)Word# -> Int# -> Word#`uncheckedShiftRL#`Int#i#))(W32#Word32#x#)rotate :: Word32 -> Int -> Word32`rotate`(I#Int#i#)|Int# -> BoolisTrue#(Int#i'#Int# -> Int# -> Int#==#Int#0#)=Word32# -> Word32W32#Word32#x#|Boolotherwise=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#(((Word32# -> Word#word32ToWord#Word32#x#)Word# -> Int# -> Word#`uncheckedShiftL#`Int#i'#)Word# -> Word# -> Word#`or#`((Word32# -> Word#word32ToWord#Word32#x#)Word# -> Int# -> Word#`uncheckedShiftRL#`(Int#32#Int# -> Int# -> Int#-#Int#i'#))))where!i'# :: Int#i'#=Word# -> Int#word2Int#(Int# -> Word#int2Word#Int#i#Word# -> Word# -> Word#`and#`Word#31##)bitSizeMaybe :: Word32 -> Maybe IntbitSizeMaybeWord32i=Int -> Maybe Intforall a. a -> Maybe aJust(Word32 -> Intforall b. FiniteBits b => b -> IntfiniteBitSizeWord32i)bitSize :: Word32 -> IntbitSizeWord32i=Word32 -> Intforall b. FiniteBits b => b -> IntfiniteBitSizeWord32iisSigned :: Word32 -> BoolisSignedWord32_=BoolFalsepopCount :: Word32 -> IntpopCount(W32#Word32#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word# -> Word#popCnt32#(Word32# -> Word#word32ToWord#Word32#x#)))bit :: Int -> Word32bitInti=Int -> Word32forall a. (Bits a, Num a) => Int -> abitDefaultIntitestBit :: Word32 -> Int -> BooltestBitWord32aInti=Word32 -> Int -> Boolforall a. (Bits a, Num a) => a -> Int -> BooltestBitDefaultWord32aInti-- | @since 4.6.0.0instanceFiniteBitsWord32where{-# INLINEcountLeadingZeros#-}{-# INLINEcountTrailingZeros#-}finiteBitSize :: Word32 -> IntfiniteBitSizeWord32_=Int32countLeadingZeros :: Word32 -> IntcountLeadingZeros(W32#Word32#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word# -> Word#clz32#(Word32# -> Word#word32ToWord#Word32#x#)))countTrailingZeros :: Word32 -> IntcountTrailingZeros(W32#Word32#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word# -> Word#ctz32#(Word32# -> Word#word32ToWord#Word32#x#)))-- | @since 2.01instanceShowWord32where#if WORD_SIZE_IN_BITS < 33showsPrecpx=showsPrecp(toIntegerx)#elseshowsPrec :: Int -> Word32 -> ShowSshowsPrecIntpWord32x=Int -> Int -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecIntp(Word32 -> Intforall a b. (Integral a, Num b) => a -> bfromIntegralWord32x::Int)#endif-- | @since 2.01instanceRealWord32wheretoRational :: Word32 -> RationaltoRationalWord32x=Word32 -> Integerforall a. Integral a => a -> IntegertoIntegerWord32xInteger -> Integer -> Rationalforall a. Integral a => a -> a -> Ratio a%Integer1-- | @since 2.01instanceBoundedWord32whereminBound :: Word32minBound=Word320maxBound :: Word32maxBound=Word320xFFFFFFFF-- | @since 2.01instanceIxWord32whererange :: (Word32, Word32) -> [Word32]range(Word32m,Word32n)=[Word32m..Word32n]unsafeIndex :: (Word32, Word32) -> Word32 -> IntunsafeIndex(Word32m,Word32_)Word32i=Word32 -> Intforall a b. (Integral a, Num b) => a -> bfromIntegral(Word32iWord32 -> Word32 -> Word32forall a. Num a => a -> a -> a-Word32m)inRange :: (Word32, Word32) -> Word32 -> BoolinRange(Word32m,Word32n)Word32i=Word32mWord32 -> Word32 -> Boolforall a. Ord a => a -> a -> Bool<=Word32iBool -> Bool -> Bool&&Word32iWord32 -> Word32 -> Boolforall a. Ord a => a -> a -> Bool<=Word32n-- | Reverse order of bytes in 'Word32'.---- @since 4.7.0.0byteSwap32::Word32->Word32byteSwap32 :: Word32 -> Word32byteSwap32(W32#Word32#w#)=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#(Word# -> Word#byteSwap32#(Word32# -> Word#word32ToWord#Word32#w#)))-------------------------------------------------------------------------- type Word64------------------------------------------------------------------------data{-# CTYPE"HsWord64"#-}Word64=W64#Word64#-- ^ 64-bit unsigned integer type-- See GHC.Classes#matching_overloaded_methods_in_rules-- | @since 2.01instanceEqWord64where== :: Word64 -> Word64 -> Bool(==)=Word64 -> Word64 -> BooleqWord64/= :: Word64 -> Word64 -> Bool(/=)=Word64 -> Word64 -> BoolneWord64eqWord64,neWord64::Word64->Word64->BooleqWord64 :: Word64 -> Word64 -> BooleqWord64(W64#Word64#x)(W64#Word64#y)=Int# -> BoolisTrue#(Word64#xWord64# -> Word64# -> Int#`eqWord64#`Word64#y)neWord64 :: Word64 -> Word64 -> BoolneWord64(W64#Word64#x)(W64#Word64#y)=Int# -> BoolisTrue#(Word64#xWord64# -> Word64# -> Int#`neWord64#`Word64#y){-# INLINE[1]eqWord64#-}{-# INLINE[1]neWord64#-}-- | @since 2.01instanceOrdWord64where< :: Word64 -> Word64 -> Bool(<)=Word64 -> Word64 -> BoolltWord64<= :: Word64 -> Word64 -> Bool(<=)=Word64 -> Word64 -> BoolleWord64>= :: Word64 -> Word64 -> Bool(>=)=Word64 -> Word64 -> BoolgeWord64> :: Word64 -> Word64 -> Bool(>)=Word64 -> Word64 -> BoolgtWord64{-# INLINE[1]gtWord64#-}{-# INLINE[1]geWord64#-}{-# INLINE[1]ltWord64#-}{-# INLINE[1]leWord64#-}gtWord64,geWord64,ltWord64,leWord64::Word64->Word64->Bool(W64#Word64#x)gtWord64 :: Word64 -> Word64 -> Bool`gtWord64`(W64#Word64#y)=Int# -> BoolisTrue#(Word64#xWord64# -> Word64# -> Int#`gtWord64#`Word64#y)(W64#Word64#x)geWord64 :: Word64 -> Word64 -> Bool`geWord64`(W64#Word64#y)=Int# -> BoolisTrue#(Word64#xWord64# -> Word64# -> Int#`geWord64#`Word64#y)(W64#Word64#x)ltWord64 :: Word64 -> Word64 -> Bool`ltWord64`(W64#Word64#y)=Int# -> BoolisTrue#(Word64#xWord64# -> Word64# -> Int#`ltWord64#`Word64#y)(W64#Word64#x)leWord64 :: Word64 -> Word64 -> Bool`leWord64`(W64#Word64#y)=Int# -> BoolisTrue#(Word64#xWord64# -> Word64# -> Int#`leWord64#`Word64#y)-- | @since 2.01instanceNumWord64where(W64#Word64#x#)+ :: Word64 -> Word64 -> Word64+(W64#Word64#y#)=Word64# -> Word64W64#(Word64#x#Word64# -> Word64# -> Word64#`plusWord64#`Word64#y#)(W64#Word64#x#)- :: Word64 -> Word64 -> Word64-(W64#Word64#y#)=Word64# -> Word64W64#(Word64#x#Word64# -> Word64# -> Word64#`subWord64#`Word64#y#)(W64#Word64#x#)* :: Word64 -> Word64 -> Word64*(W64#Word64#y#)=Word64# -> Word64W64#(Word64#x#Word64# -> Word64# -> Word64#`timesWord64#`Word64#y#)negate :: Word64 -> Word64negate(W64#Word64#x#)=Word64# -> Word64W64#(Int64# -> Word64#int64ToWord64#(Int64# -> Int64#negateInt64#(Word64# -> Int64#word64ToInt64#Word64#x#)))abs :: Word64 -> Word64absWord64x=Word64xsignum :: Word64 -> Word64signumWord640=Word640signumWord64_=Word641fromInteger :: Integer -> Word64fromIntegerIntegeri=Word64# -> Word64W64#(Integer -> Word64#integerToWord64#Integeri)-- | @since 2.01instanceEnumWord64wheresucc :: Word64 -> Word64succWord64x|Word64xWord64 -> Word64 -> Boolforall a. Eq a => a -> a -> Bool/=Word64forall a. Bounded a => amaxBound=Word64xWord64 -> Word64 -> Word64forall a. Num a => a -> a -> a+Word641|Boolotherwise=String -> Word64forall a. String -> asuccErrorString"Word64"pred :: Word64 -> Word64predWord64x|Word64xWord64 -> Word64 -> Boolforall a. Eq a => a -> a -> Bool/=Word64forall a. Bounded a => aminBound=Word64xWord64 -> Word64 -> Word64forall a. Num a => a -> a -> a-Word641|Boolotherwise=String -> Word64forall a. String -> apredErrorString"Word64"toEnum :: Int -> Word64toEnumi :: Inti@(I#Int#i#)|IntiInt -> Int -> Boolforall a. Ord a => a -> a -> Bool>=Int0=Word64# -> Word64W64#(Word# -> Word64#wordToWord64#(Int# -> Word#int2Word#Int#i#))|Boolotherwise=String -> Int -> (Word64, Word64) -> Word64forall a b. Show a => String -> Int -> (a, a) -> btoEnumErrorString"Word64"Inti(Word64forall a. Bounded a => aminBound::Word64,Word64forall a. Bounded a => amaxBound::Word64)fromEnum :: Word64 -> IntfromEnumx :: Word64x@(W64#Word64#x#)|Word64xWord64 -> Word64 -> Boolforall a. Ord a => a -> a -> Bool<=Int -> Word64forall a b. (Integral a, Num b) => a -> bfromIntegral(Intforall a. Bounded a => amaxBound::Int)=Int# -> IntI#(Word# -> Int#word2Int#(Word64# -> Word#word64ToWord#Word64#x#))|Boolotherwise=String -> Word64 -> Intforall a b. Show a => String -> a -> bfromEnumErrorString"Word64"Word64x#if WORD_SIZE_IN_BITS < 64-- See Note [Stable Unfolding for list producers] in GHC.Enum{-# INLINEenumFrom#-}enumFrom=integralEnumFrom-- See Note [Stable Unfolding for list producers] in GHC.Enum{-# INLINEenumFromThen#-}enumFromThen=integralEnumFromThen-- See Note [Stable Unfolding for list producers] in GHC.Enum{-# INLINEenumFromTo#-}enumFromTo=integralEnumFromTo-- See Note [Stable Unfolding for list producers] in GHC.Enum{-# INLINEenumFromThenTo#-}enumFromThenTo=integralEnumFromThenTo#else-- use Word's Enum as it has better support for fusion. We can't use-- `boundedEnumFrom` and `boundedEnumFromThen` -- which use Int's Enum-- instance -- because Word64 isn't compatible with Int/Int64's domain.---- See Note [Stable Unfolding for list producers] in GHC.Enum{-# INLINEenumFrom#-}enumFrom :: Word64 -> [Word64]enumFromWord64x=(Word -> Word64) -> [Word] -> [Word64]forall a b. (a -> b) -> [a] -> [b]mapWord -> Word64forall a b. (Integral a, Num b) => a -> bfromIntegral(Word -> [Word]forall a. Enum a => a -> [a]enumFrom(Word64 -> Wordforall a b. (Integral a, Num b) => a -> bfromIntegralWord64x::Word))-- See Note [Stable Unfolding for list producers] in GHC.Enum{-# INLINEenumFromThen#-}enumFromThen :: Word64 -> Word64 -> [Word64]enumFromThenWord64xWord64y=(Word -> Word64) -> [Word] -> [Word64]forall a b. (a -> b) -> [a] -> [b]mapWord -> Word64forall a b. (Integral a, Num b) => a -> bfromIntegral(Word -> Word -> [Word]forall a. Enum a => a -> a -> [a]enumFromThen(Word64 -> Wordforall a b. (Integral a, Num b) => a -> bfromIntegralWord64x::Word)(Word64 -> Wordforall a b. (Integral a, Num b) => a -> bfromIntegralWord64y))-- See Note [Stable Unfolding for list producers] in GHC.Enum{-# INLINEenumFromTo#-}enumFromTo :: Word64 -> Word64 -> [Word64]enumFromToWord64xWord64y=(Word -> Word64) -> [Word] -> [Word64]forall a b. (a -> b) -> [a] -> [b]mapWord -> Word64forall a b. (Integral a, Num b) => a -> bfromIntegral(Word -> Word -> [Word]forall a. Enum a => a -> a -> [a]enumFromTo(Word64 -> Wordforall a b. (Integral a, Num b) => a -> bfromIntegralWord64x::Word)(Word64 -> Wordforall a b. (Integral a, Num b) => a -> bfromIntegralWord64y))-- See Note [Stable Unfolding for list producers] in GHC.Enum{-# INLINEenumFromThenTo#-}enumFromThenTo :: Word64 -> Word64 -> Word64 -> [Word64]enumFromThenToWord64xWord64yWord64z=(Word -> Word64) -> [Word] -> [Word64]forall a b. (a -> b) -> [a] -> [b]mapWord -> Word64forall a b. (Integral a, Num b) => a -> bfromIntegral(Word -> Word -> Word -> [Word]forall a. Enum a => a -> a -> a -> [a]enumFromThenTo(Word64 -> Wordforall a b. (Integral a, Num b) => a -> bfromIntegralWord64x::Word)(Word64 -> Wordforall a b. (Integral a, Num b) => a -> bfromIntegralWord64y)(Word64 -> Wordforall a b. (Integral a, Num b) => a -> bfromIntegralWord64z))#endif-- | @since 2.01instanceIntegralWord64where-- see Note [INLINE division wrappers] in GHC.Base{-# INLINEquot#-}{-# INLINErem#-}{-# INLINEquotRem#-}{-# INLINEdiv#-}{-# INLINEmod#-}{-# INLINEdivMod#-}quot :: Word64 -> Word64 -> Word64quot(W64#Word64#x#)y :: Word64y@(W64#Word64#y#)|Word64yWord64 -> Word64 -> Boolforall a. Eq a => a -> a -> Bool/=Word640=Word64# -> Word64W64#(Word64#x#Word64# -> Word64# -> Word64#`quotWord64#`Word64#y#)|Boolotherwise=Word64forall a. adivZeroErrorrem :: Word64 -> Word64 -> Word64rem(W64#Word64#x#)y :: Word64y@(W64#Word64#y#)|Word64yWord64 -> Word64 -> Boolforall a. Eq a => a -> a -> Bool/=Word640=Word64# -> Word64W64#(Word64#x#Word64# -> Word64# -> Word64#`remWord64#`Word64#y#)|Boolotherwise=Word64forall a. adivZeroErrorquotRem :: Word64 -> Word64 -> (Word64, Word64)quotRem(W64#Word64#x#)y :: Word64y@(W64#Word64#y#)#if WORD_SIZE_IN_BITS < 64|y/=0=(W64#(x#`quotWord64#`y#),W64#(x#`remWord64#`y#))#else-- we don't have a `quotRemWord64#` primitive yet.|Word64yWord64 -> Word64 -> Boolforall a. Eq a => a -> a -> Bool/=Word640=caseWord# -> Word# -> (# Word#, Word# #)quotRemWord#(Word64# -> Word#word64ToWord#Word64#x#)(Word64# -> Word#word64ToWord#Word64#y#)of(#Word#q,Word#r#)->(Word64# -> Word64W64#(Word# -> Word64#wordToWord64#Word#q),Word64# -> Word64W64#(Word# -> Word64#wordToWord64#Word#r))#endif|Boolotherwise=(Word64, Word64)forall a. adivZeroErrordiv :: Word64 -> Word64 -> Word64divWord64xWord64y=Word64 -> Word64 -> Word64forall a. Integral a => a -> a -> aquotWord64xWord64ymod :: Word64 -> Word64 -> Word64modWord64xWord64y=Word64 -> Word64 -> Word64forall a. Integral a => a -> a -> aremWord64xWord64ydivMod :: Word64 -> Word64 -> (Word64, Word64)divModWord64xWord64y=Word64 -> Word64 -> (Word64, Word64)forall a. Integral a => a -> a -> (a, a)quotRemWord64xWord64ytoInteger :: Word64 -> IntegertoInteger(W64#Word64#x#)=Word64# -> IntegerintegerFromWord64#Word64#x#-- | @since 2.01instanceBitsWord64where{-# INLINEshift#-}{-# INLINEbit#-}{-# INLINEtestBit#-}{-# INLINEpopCount#-}(W64#Word64#x#).&. :: Word64 -> Word64 -> Word64.&.(W64#Word64#y#)=Word64# -> Word64W64#(Word64#x#Word64# -> Word64# -> Word64#`and64#`Word64#y#)(W64#Word64#x#).|. :: Word64 -> Word64 -> Word64.|.(W64#Word64#y#)=Word64# -> Word64W64#(Word64#x#Word64# -> Word64# -> Word64#`or64#`Word64#y#)(W64#Word64#x#)xor :: Word64 -> Word64 -> Word64`xor`(W64#Word64#y#)=Word64# -> Word64W64#(Word64#x#Word64# -> Word64# -> Word64#`xor64#`Word64#y#)complement :: Word64 -> Word64complement(W64#Word64#x#)=Word64# -> Word64W64#(Word64# -> Word64#not64#Word64#x#)(W64#Word64#x#)shift :: Word64 -> Int -> Word64`shift`(I#Int#i#)|Int# -> BoolisTrue#(Int#i#Int# -> Int# -> Int#>=#Int#0#)=Word64# -> Word64W64#(Word64#x#Word64# -> Int# -> Word64#`shiftLWord64#`Int#i#)|Boolotherwise=Word64# -> Word64W64#(Word64#x#Word64# -> Int# -> Word64#`shiftRLWord64#`Int# -> Int#negateInt#Int#i#)(W64#Word64#x#)shiftL :: Word64 -> Int -> Word64`shiftL`(I#Int#i#)|Int# -> BoolisTrue#(Int#i#Int# -> Int# -> Int#>=#Int#0#)=Word64# -> Word64W64#(Word64#x#Word64# -> Int# -> Word64#`shiftLWord64#`Int#i#)|Boolotherwise=Word64forall a. aoverflowError(W64#Word64#x#)unsafeShiftL :: Word64 -> Int -> Word64`unsafeShiftL`(I#Int#i#)=Word64# -> Word64W64#(Word64#x#Word64# -> Int# -> Word64#`uncheckedShiftL64#`Int#i#)(W64#Word64#x#)shiftR :: Word64 -> Int -> Word64`shiftR`(I#Int#i#)|Int# -> BoolisTrue#(Int#i#Int# -> Int# -> Int#>=#Int#0#)=Word64# -> Word64W64#(Word64#x#Word64# -> Int# -> Word64#`shiftRLWord64#`Int#i#)|Boolotherwise=Word64forall a. aoverflowError(W64#Word64#x#)unsafeShiftR :: Word64 -> Int -> Word64`unsafeShiftR`(I#Int#i#)=Word64# -> Word64W64#(Word64#x#Word64# -> Int# -> Word64#`uncheckedShiftRL64#`Int#i#)(W64#Word64#x#)rotate :: Word64 -> Int -> Word64`rotate`(I#Int#i#)|Int# -> BoolisTrue#(Int#i'#Int# -> Int# -> Int#==#Int#0#)=Word64# -> Word64W64#Word64#x#|Boolotherwise=Word64# -> Word64W64#((Word64#x#Word64# -> Int# -> Word64#`uncheckedShiftL64#`Int#i'#)Word64# -> Word64# -> Word64#`or64#`(Word64#x#Word64# -> Int# -> Word64#`uncheckedShiftRL64#`(Int#64#Int# -> Int# -> Int#-#Int#i'#)))where!i'# :: Int#i'#=Word# -> Int#word2Int#(Int# -> Word#int2Word#Int#i#Word# -> Word# -> Word#`and#`Word#63##)bitSizeMaybe :: Word64 -> Maybe IntbitSizeMaybeWord64i=Int -> Maybe Intforall a. a -> Maybe aJust(Word64 -> Intforall b. FiniteBits b => b -> IntfiniteBitSizeWord64i)bitSize :: Word64 -> IntbitSizeWord64i=Word64 -> Intforall b. FiniteBits b => b -> IntfiniteBitSizeWord64iisSigned :: Word64 -> BoolisSignedWord64_=BoolFalsepopCount :: Word64 -> IntpopCount(W64#Word64#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word64# -> Word#popCnt64#Word64#x#))bit :: Int -> Word64bitInti=Int -> Word64forall a. (Bits a, Num a) => Int -> abitDefaultIntitestBit :: Word64 -> Int -> BooltestBitWord64aInti=Word64 -> Int -> Boolforall a. (Bits a, Num a) => a -> Int -> BooltestBitDefaultWord64aInti-- | @since 4.6.0.0instanceFiniteBitsWord64where{-# INLINEcountLeadingZeros#-}{-# INLINEcountTrailingZeros#-}finiteBitSize :: Word64 -> IntfiniteBitSizeWord64_=Int64countLeadingZeros :: Word64 -> IntcountLeadingZeros(W64#Word64#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word64# -> Word#clz64#Word64#x#))countTrailingZeros :: Word64 -> IntcountTrailingZeros(W64#Word64#x#)=Int# -> IntI#(Word# -> Int#word2Int#(Word64# -> Word#ctz64#Word64#x#))-- | @since 2.01instanceShowWord64whereshowsPrec :: Int -> Word64 -> ShowSshowsPrecIntpWord64x=Int -> Integer -> ShowSforall a. Show a => Int -> a -> ShowSshowsPrecIntp(Word64 -> Integerforall a. Integral a => a -> IntegertoIntegerWord64x)-- | @since 2.01instanceRealWord64wheretoRational :: Word64 -> RationaltoRationalWord64x=Word64 -> Integerforall a. Integral a => a -> IntegertoIntegerWord64xInteger -> Integer -> Rationalforall a. Integral a => a -> a -> Ratio a%Integer1-- | @since 2.01instanceBoundedWord64whereminBound :: Word64minBound=Word640maxBound :: Word64maxBound=Word640xFFFFFFFFFFFFFFFF-- | @since 2.01instanceIxWord64whererange :: (Word64, Word64) -> [Word64]range(Word64m,Word64n)=[Word64m..Word64n]unsafeIndex :: (Word64, Word64) -> Word64 -> IntunsafeIndex(Word64m,Word64_)Word64i=Word64 -> Intforall a b. (Integral a, Num b) => a -> bfromIntegral(Word64iWord64 -> Word64 -> Word64forall a. Num a => a -> a -> a-Word64m)inRange :: (Word64, Word64) -> Word64 -> BoolinRange(Word64m,Word64n)Word64i=Word64mWord64 -> Word64 -> Boolforall a. Ord a => a -> a -> Bool<=Word64iBool -> Bool -> Bool&&Word64iWord64 -> Word64 -> Boolforall a. Ord a => a -> a -> Bool<=Word64n-- | Reverse order of bytes in 'Word64'.---- @since 4.7.0.0byteSwap64::Word64->Word64byteSwap64 :: Word64 -> Word64byteSwap64(W64#Word64#w#)=Word64# -> Word64W64#(Word64# -> Word64#byteSwap64#Word64#w#)-- | Reverse the order of the bits in a 'Word8'.---- @since 4.14.0.0bitReverse8::Word8->Word8bitReverse8 :: Word8 -> Word8bitReverse8(W8#Word8#w#)=Word8# -> Word8W8#(Word# -> Word8#wordToWord8#(Word# -> Word#bitReverse8#(Word8# -> Word#word8ToWord#Word8#w#)))-- | Reverse the order of the bits in a 'Word16'.---- @since 4.14.0.0bitReverse16::Word16->Word16bitReverse16 :: Word16 -> Word16bitReverse16(W16#Word16#w#)=Word16# -> Word16W16#(Word# -> Word16#wordToWord16#(Word# -> Word#bitReverse16#(Word16# -> Word#word16ToWord#Word16#w#)))-- | Reverse the order of the bits in a 'Word32'.---- @since 4.14.0.0bitReverse32::Word32->Word32bitReverse32 :: Word32 -> Word32bitReverse32(W32#Word32#w#)=Word32# -> Word32W32#(Word# -> Word32#wordToWord32#(Word# -> Word#bitReverse32#(Word32# -> Word#word32ToWord#Word32#w#)))-- | Reverse the order of the bits in a 'Word64'.---- @since 4.14.0.0bitReverse64::Word64->Word64bitReverse64 :: Word64 -> Word64bitReverse64(W64#Word64#w#)=Word64# -> Word64W64#(Word64# -> Word64#bitReverse64#Word64#w#)--------------------------------------------------------------------------------- unchecked shift primops may be lowered into C shift operations which have-- unspecified behaviour if the amount of bits to shift is greater or equal to the word-- size in bits.-- The following safe shift operations wrap unchecked primops to take this into-- account: 0 is consistently returned when the shift amount is too big.shiftRLWord64#::Word64#->Int#->Word64#Word64#ashiftRLWord64# :: Word64# -> Int# -> Word64#`shiftRLWord64#`Int#b=Word64# -> Int# -> Word64#uncheckedShiftRL64#Word64#aInt#bWord64# -> Word64# -> Word64#`and64#`Int64# -> Word64#int64ToWord64#(Int# -> Int64#intToInt64#(Int# -> Int# -> Int#shift_maskInt#64#Int#b))shiftLWord64#::Word64#->Int#->Word64#Word64#ashiftLWord64# :: Word64# -> Int# -> Word64#`shiftLWord64#`Int#b=Word64# -> Int# -> Word64#uncheckedShiftL64#Word64#aInt#bWord64# -> Word64# -> Word64#`and64#`Int64# -> Word64#int64ToWord64#(Int# -> Int64#intToInt64#(Int# -> Int# -> Int#shift_maskInt#64#Int#b))
[8]ページ先頭