-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | Data types for large but fixed width signed and unsigned integers
--   
--   A library to provide data types for large (ie > 64 bits) but fixed
--   width signed and unsigned integers with the usual typeclass instances
--   to allow them to be used interchangeably with Word64.
--   
--   The types and operations are coded to be as fast as possible using
--   strictness annotations, INLINEABLE pragmas and unboxed values
--   and operations where appropriate.
@package wide-word
@version 0.1.8.1

-- | This module provides an opaque unsigned 64 bit value with the usual
--   set of typeclass instances one would expect for a fixed width unsigned
--   integer type. Operations like addition, subtraction and multiplication
--   etc provide a "modulo 2^64" result as one would expect from a fixed
--   width unsigned word.
--   
--   This just re-exports the Word64 type defined in Data.Word plus some
--   functions like plusCarrySum and timesCarryProd that do the normal
--   addition and multiplication but provide a carry in addition to the
--   regular operation.
module Data.WideWord.Word64
mkWord64 :: Word32 -> Word32 -> Word64
oneWord64 :: Word64
plusCarrySum :: Word64 -> Word64 -> (Word64, Word64)
quotRem2Word64 :: Word64 -> Word64 -> Word64 -> (Word64, Word64)
showHexWord64 :: Word64 -> String
subCarryDiff :: Word64 -> Word64 -> (Word64, Word64)
timesCarryProd :: Word64 -> Word64 -> (Word64, Word64)
word64Hi32 :: Word64 -> Word32
word64Lo32 :: Word64 -> Word32
zeroWord64 :: Word64

module Data.WideWord.Word256
data Word256
Word256 :: !Word64 -> !Word64 -> !Word64 -> !Word64 -> Word256
[word256hi] :: Word256 -> !Word64
[word256m1] :: Word256 -> !Word64
[word256m0] :: Word256 -> !Word64
[word256lo] :: Word256 -> !Word64
showHexWord256 :: Word256 -> String
zeroWord256 :: Word256
instance Data.Binary.Class.Binary Data.WideWord.Word256.Word256
instance GHC.Internal.Bits.Bits Data.WideWord.Word256.Word256
instance GHC.Internal.Enum.Bounded Data.WideWord.Word256.Word256
instance GHC.Internal.Data.Data.Data Data.WideWord.Word256.Word256
instance GHC.Internal.Enum.Enum Data.WideWord.Word256.Word256
instance GHC.Classes.Eq Data.WideWord.Word256.Word256
instance GHC.Internal.Bits.FiniteBits Data.WideWord.Word256.Word256
instance GHC.Internal.Generics.Generic Data.WideWord.Word256.Word256
instance Data.Hashable.Class.Hashable Data.WideWord.Word256.Word256
instance GHC.Internal.Real.Integral Data.WideWord.Word256.Word256
instance GHC.Internal.Ix.Ix Data.WideWord.Word256.Word256
instance Control.DeepSeq.NFData Data.WideWord.Word256.Word256
instance GHC.Internal.Num.Num Data.WideWord.Word256.Word256
instance GHC.Classes.Ord Data.WideWord.Word256.Word256
instance Data.Primitive.Types.Prim Data.WideWord.Word256.Word256
instance GHC.Internal.Read.Read Data.WideWord.Word256.Word256
instance GHC.Internal.Real.Real Data.WideWord.Word256.Word256
instance GHC.Internal.Show.Show Data.WideWord.Word256.Word256
instance GHC.Internal.Foreign.Storable.Storable Data.WideWord.Word256.Word256

module Data.WideWord.Word128
data Word128
Word128 :: !Word64 -> !Word64 -> Word128
[word128Hi64] :: Word128 -> !Word64
[word128Lo64] :: Word128 -> !Word64
byteSwapWord128 :: Word128 -> Word128
showHexWord128 :: Word128 -> String
zeroWord128 :: Word128
instance Data.Binary.Class.Binary Data.WideWord.Word128.Word128
instance GHC.Internal.Bits.Bits Data.WideWord.Word128.Word128
instance GHC.Internal.Enum.Bounded Data.WideWord.Word128.Word128
instance GHC.Internal.Data.Data.Data Data.WideWord.Word128.Word128
instance GHC.Internal.Enum.Enum Data.WideWord.Word128.Word128
instance GHC.Classes.Eq Data.WideWord.Word128.Word128
instance GHC.Internal.Bits.FiniteBits Data.WideWord.Word128.Word128
instance GHC.Internal.Generics.Generic Data.WideWord.Word128.Word128
instance Data.Hashable.Class.Hashable Data.WideWord.Word128.Word128
instance GHC.Internal.Real.Integral Data.WideWord.Word128.Word128
instance GHC.Internal.Ix.Ix Data.WideWord.Word128.Word128
instance Control.DeepSeq.NFData Data.WideWord.Word128.Word128
instance GHC.Internal.Num.Num Data.WideWord.Word128.Word128
instance GHC.Classes.Ord Data.WideWord.Word128.Word128
instance Data.Primitive.Types.Prim Data.WideWord.Word128.Word128
instance GHC.Internal.Read.Read Data.WideWord.Word128.Word128
instance GHC.Internal.Real.Real Data.WideWord.Word128.Word128
instance GHC.Internal.Show.Show Data.WideWord.Word128.Word128
instance GHC.Internal.Foreign.Storable.Storable Data.WideWord.Word128.Word128

module Data.WideWord.Int128
data Int128
Int128 :: !Word64 -> !Word64 -> Int128
[int128Hi64] :: Int128 -> !Word64
[int128Lo64] :: Int128 -> !Word64
byteSwapInt128 :: Int128 -> Int128
showHexInt128 :: Int128 -> String
zeroInt128 :: Int128
instance Data.Binary.Class.Binary Data.WideWord.Int128.Int128
instance GHC.Internal.Bits.Bits Data.WideWord.Int128.Int128
instance GHC.Internal.Enum.Bounded Data.WideWord.Int128.Int128
instance GHC.Internal.Data.Data.Data Data.WideWord.Int128.Int128
instance GHC.Internal.Enum.Enum Data.WideWord.Int128.Int128
instance GHC.Classes.Eq Data.WideWord.Int128.Int128
instance GHC.Internal.Bits.FiniteBits Data.WideWord.Int128.Int128
instance GHC.Internal.Generics.Generic Data.WideWord.Int128.Int128
instance Data.Hashable.Class.Hashable Data.WideWord.Int128.Int128
instance GHC.Internal.Real.Integral Data.WideWord.Int128.Int128
instance GHC.Internal.Ix.Ix Data.WideWord.Int128.Int128
instance Control.DeepSeq.NFData Data.WideWord.Int128.Int128
instance GHC.Internal.Num.Num Data.WideWord.Int128.Int128
instance GHC.Classes.Ord Data.WideWord.Int128.Int128
instance Data.Primitive.Types.Prim Data.WideWord.Int128.Int128
instance GHC.Internal.Read.Read Data.WideWord.Int128.Int128
instance GHC.Internal.Real.Real Data.WideWord.Int128.Int128
instance GHC.Internal.Show.Show Data.WideWord.Int128.Int128
instance GHC.Internal.Foreign.Storable.Storable Data.WideWord.Int128.Int128

module Data.WideWord
