-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Stick two binary words together to get a bigger one -- -- This package provides Template Haskell utilities for declaring -- fixed-length binary word data types. Signed and unsigned 96, 128, 160, -- 192, 224, and 256-bit types are predefined. @package data-dword @version 0.3.2 -- | Template Haskell utilities for generating double words declarations module Data.DoubleWord.TH -- | Declare signed and unsigned binary word types built from the specified -- low and high halves. The high halves must have less or equal -- bit-length than the lover half. For each data type the following -- instances are declared: DoubleWord, Eq, Ord, -- Bounded, Enum, Num, Real, Integral, -- Show, Read, Hashable, Ix, Bits, -- BinaryWord. mkDoubleWord :: String -> String -> Bang -> Name -> String -> String -> Bang -> Name -> Bang -> Name -> [Name] -> Q [Dec] -- | mkUnpackedDoubleWord u uh s sh l is an alias for -- mkDoubleWord u u Unpacked uh s s Unpacked -- sh Unpacked l mkUnpackedDoubleWord :: String -> Name -> String -> Name -> Name -> [Name] -> Q [Dec] -- | This module provides strict (low and high halves are unpacked) signed -- and unsigned binary word data types of sizes 96, 128, 160, 192, 224, -- and 256 bits. module Data.DoubleWord -- | Defines a particular way to split a binary word in halves. class BinaryWord w => DoubleWord w where { -- | The low half type type family LoWord w; -- | The high half type type family HiWord w; } -- | The low half of the word loWord :: DoubleWord w => w -> LoWord w -- | The high half of the word hiWord :: DoubleWord w => w -> HiWord w -- | Construct a word from the low and high halves fromHiAndLo :: DoubleWord w => HiWord w -> LoWord w -> w -- | Extend the low half extendLo :: DoubleWord w => LoWord w -> w -- | Sign-extend the low half signExtendLo :: DoubleWord w => SignedWord (LoWord w) -> w data Word96 Word96 :: {-# UNPACK #-} !Word32 -> {-# UNPACK #-} !Word64 -> Word96 data Word128 Word128 :: {-# UNPACK #-} !Word64 -> {-# UNPACK #-} !Word64 -> Word128 data Word160 Word160 :: {-# UNPACK #-} !Word32 -> {-# UNPACK #-} !Word128 -> Word160 data Word192 Word192 :: {-# UNPACK #-} !Word64 -> {-# UNPACK #-} !Word128 -> Word192 data Word224 Word224 :: {-# UNPACK #-} !Word96 -> {-# UNPACK #-} !Word128 -> Word224 data Word256 Word256 :: {-# UNPACK #-} !Word128 -> {-# UNPACK #-} !Word128 -> Word256 data Int96 Int96 :: {-# UNPACK #-} !Int32 -> {-# UNPACK #-} !Word64 -> Int96 data Int128 Int128 :: {-# UNPACK #-} !Int64 -> {-# UNPACK #-} !Word64 -> Int128 data Int160 Int160 :: {-# UNPACK #-} !Int32 -> {-# UNPACK #-} !Word128 -> Int160 data Int192 Int192 :: {-# UNPACK #-} !Int64 -> {-# UNPACK #-} !Word128 -> Int192 data Int224 Int224 :: {-# UNPACK #-} !Int96 -> {-# UNPACK #-} !Word128 -> Int224 data Int256 Int256 :: {-# UNPACK #-} !Int128 -> {-# UNPACK #-} !Word128 -> Int256 instance GHC.Generics.Generic Data.DoubleWord.Int256 instance Data.Data.Data Data.DoubleWord.Int256 instance GHC.Generics.Generic Data.DoubleWord.Word256 instance Data.Data.Data Data.DoubleWord.Word256 instance Data.BinaryWord.BinaryWord Data.DoubleWord.Word256 instance Data.DoubleWord.Base.DoubleWord Data.DoubleWord.Int256 instance GHC.Classes.Eq Data.DoubleWord.Int256 instance GHC.Classes.Ord Data.DoubleWord.Int256 instance GHC.Enum.Bounded Data.DoubleWord.Int256 instance GHC.Enum.Enum Data.DoubleWord.Int256 instance GHC.Num.Num Data.DoubleWord.Int256 instance GHC.Real.Real Data.DoubleWord.Int256 instance GHC.Real.Integral Data.DoubleWord.Int256 instance GHC.Show.Show Data.DoubleWord.Int256 instance GHC.Read.Read Data.DoubleWord.Int256 instance Data.Hashable.Class.Hashable Data.DoubleWord.Int256 instance GHC.Arr.Ix Data.DoubleWord.Int256 instance Data.Bits.Bits Data.DoubleWord.Int256 instance Data.Bits.FiniteBits Data.DoubleWord.Int256 instance Data.BinaryWord.BinaryWord Data.DoubleWord.Int256 instance Data.DoubleWord.Base.DoubleWord Data.DoubleWord.Word256 instance GHC.Classes.Eq Data.DoubleWord.Word256 instance GHC.Classes.Ord Data.DoubleWord.Word256 instance GHC.Enum.Bounded Data.DoubleWord.Word256 instance GHC.Enum.Enum Data.DoubleWord.Word256 instance GHC.Num.Num Data.DoubleWord.Word256 instance GHC.Real.Real Data.DoubleWord.Word256 instance GHC.Real.Integral Data.DoubleWord.Word256 instance GHC.Show.Show Data.DoubleWord.Word256 instance GHC.Read.Read Data.DoubleWord.Word256 instance Data.Hashable.Class.Hashable Data.DoubleWord.Word256 instance GHC.Arr.Ix Data.DoubleWord.Word256 instance Data.Bits.Bits Data.DoubleWord.Word256 instance Data.Bits.FiniteBits Data.DoubleWord.Word256 instance GHC.Generics.Generic Data.DoubleWord.Int224 instance Data.Data.Data Data.DoubleWord.Int224 instance GHC.Generics.Generic Data.DoubleWord.Word224 instance Data.Data.Data Data.DoubleWord.Word224 instance Data.BinaryWord.BinaryWord Data.DoubleWord.Word224 instance Data.DoubleWord.Base.DoubleWord Data.DoubleWord.Int224 instance GHC.Classes.Eq Data.DoubleWord.Int224 instance GHC.Classes.Ord Data.DoubleWord.Int224 instance GHC.Enum.Bounded Data.DoubleWord.Int224 instance GHC.Enum.Enum Data.DoubleWord.Int224 instance GHC.Num.Num Data.DoubleWord.Int224 instance GHC.Real.Real Data.DoubleWord.Int224 instance GHC.Real.Integral Data.DoubleWord.Int224 instance GHC.Show.Show Data.DoubleWord.Int224 instance GHC.Read.Read Data.DoubleWord.Int224 instance Data.Hashable.Class.Hashable Data.DoubleWord.Int224 instance GHC.Arr.Ix Data.DoubleWord.Int224 instance Data.Bits.Bits Data.DoubleWord.Int224 instance Data.Bits.FiniteBits Data.DoubleWord.Int224 instance Data.BinaryWord.BinaryWord Data.DoubleWord.Int224 instance Data.DoubleWord.Base.DoubleWord Data.DoubleWord.Word224 instance GHC.Classes.Eq Data.DoubleWord.Word224 instance GHC.Classes.Ord Data.DoubleWord.Word224 instance GHC.Enum.Bounded Data.DoubleWord.Word224 instance GHC.Enum.Enum Data.DoubleWord.Word224 instance GHC.Num.Num Data.DoubleWord.Word224 instance GHC.Real.Real Data.DoubleWord.Word224 instance GHC.Real.Integral Data.DoubleWord.Word224 instance GHC.Show.Show Data.DoubleWord.Word224 instance GHC.Read.Read Data.DoubleWord.Word224 instance Data.Hashable.Class.Hashable Data.DoubleWord.Word224 instance GHC.Arr.Ix Data.DoubleWord.Word224 instance Data.Bits.Bits Data.DoubleWord.Word224 instance Data.Bits.FiniteBits Data.DoubleWord.Word224 instance GHC.Generics.Generic Data.DoubleWord.Int192 instance Data.Data.Data Data.DoubleWord.Int192 instance GHC.Generics.Generic Data.DoubleWord.Word192 instance Data.Data.Data Data.DoubleWord.Word192 instance Data.BinaryWord.BinaryWord Data.DoubleWord.Word192 instance Data.DoubleWord.Base.DoubleWord Data.DoubleWord.Int192 instance GHC.Classes.Eq Data.DoubleWord.Int192 instance GHC.Classes.Ord Data.DoubleWord.Int192 instance GHC.Enum.Bounded Data.DoubleWord.Int192 instance GHC.Enum.Enum Data.DoubleWord.Int192 instance GHC.Num.Num Data.DoubleWord.Int192 instance GHC.Real.Real Data.DoubleWord.Int192 instance GHC.Real.Integral Data.DoubleWord.Int192 instance GHC.Show.Show Data.DoubleWord.Int192 instance GHC.Read.Read Data.DoubleWord.Int192 instance Data.Hashable.Class.Hashable Data.DoubleWord.Int192 instance GHC.Arr.Ix Data.DoubleWord.Int192 instance Data.Bits.Bits Data.DoubleWord.Int192 instance Data.Bits.FiniteBits Data.DoubleWord.Int192 instance Data.BinaryWord.BinaryWord Data.DoubleWord.Int192 instance Data.DoubleWord.Base.DoubleWord Data.DoubleWord.Word192 instance GHC.Classes.Eq Data.DoubleWord.Word192 instance GHC.Classes.Ord Data.DoubleWord.Word192 instance GHC.Enum.Bounded Data.DoubleWord.Word192 instance GHC.Enum.Enum Data.DoubleWord.Word192 instance GHC.Num.Num Data.DoubleWord.Word192 instance GHC.Real.Real Data.DoubleWord.Word192 instance GHC.Real.Integral Data.DoubleWord.Word192 instance GHC.Show.Show Data.DoubleWord.Word192 instance GHC.Read.Read Data.DoubleWord.Word192 instance Data.Hashable.Class.Hashable Data.DoubleWord.Word192 instance GHC.Arr.Ix Data.DoubleWord.Word192 instance Data.Bits.Bits Data.DoubleWord.Word192 instance Data.Bits.FiniteBits Data.DoubleWord.Word192 instance GHC.Generics.Generic Data.DoubleWord.Int160 instance Data.Data.Data Data.DoubleWord.Int160 instance GHC.Generics.Generic Data.DoubleWord.Word160 instance Data.Data.Data Data.DoubleWord.Word160 instance Data.BinaryWord.BinaryWord Data.DoubleWord.Word160 instance Data.DoubleWord.Base.DoubleWord Data.DoubleWord.Int160 instance GHC.Classes.Eq Data.DoubleWord.Int160 instance GHC.Classes.Ord Data.DoubleWord.Int160 instance GHC.Enum.Bounded Data.DoubleWord.Int160 instance GHC.Enum.Enum Data.DoubleWord.Int160 instance GHC.Num.Num Data.DoubleWord.Int160 instance GHC.Real.Real Data.DoubleWord.Int160 instance GHC.Real.Integral Data.DoubleWord.Int160 instance GHC.Show.Show Data.DoubleWord.Int160 instance GHC.Read.Read Data.DoubleWord.Int160 instance Data.Hashable.Class.Hashable Data.DoubleWord.Int160 instance GHC.Arr.Ix Data.DoubleWord.Int160 instance Data.Bits.Bits Data.DoubleWord.Int160 instance Data.Bits.FiniteBits Data.DoubleWord.Int160 instance Data.BinaryWord.BinaryWord Data.DoubleWord.Int160 instance Data.DoubleWord.Base.DoubleWord Data.DoubleWord.Word160 instance GHC.Classes.Eq Data.DoubleWord.Word160 instance GHC.Classes.Ord Data.DoubleWord.Word160 instance GHC.Enum.Bounded Data.DoubleWord.Word160 instance GHC.Enum.Enum Data.DoubleWord.Word160 instance GHC.Num.Num Data.DoubleWord.Word160 instance GHC.Real.Real Data.DoubleWord.Word160 instance GHC.Real.Integral Data.DoubleWord.Word160 instance GHC.Show.Show Data.DoubleWord.Word160 instance GHC.Read.Read Data.DoubleWord.Word160 instance Data.Hashable.Class.Hashable Data.DoubleWord.Word160 instance GHC.Arr.Ix Data.DoubleWord.Word160 instance Data.Bits.Bits Data.DoubleWord.Word160 instance Data.Bits.FiniteBits Data.DoubleWord.Word160 instance GHC.Generics.Generic Data.DoubleWord.Int128 instance Data.Data.Data Data.DoubleWord.Int128 instance GHC.Generics.Generic Data.DoubleWord.Word128 instance Data.Data.Data Data.DoubleWord.Word128 instance Data.BinaryWord.BinaryWord Data.DoubleWord.Word128 instance Data.DoubleWord.Base.DoubleWord Data.DoubleWord.Int128 instance GHC.Classes.Eq Data.DoubleWord.Int128 instance GHC.Classes.Ord Data.DoubleWord.Int128 instance GHC.Enum.Bounded Data.DoubleWord.Int128 instance GHC.Enum.Enum Data.DoubleWord.Int128 instance GHC.Num.Num Data.DoubleWord.Int128 instance GHC.Real.Real Data.DoubleWord.Int128 instance GHC.Real.Integral Data.DoubleWord.Int128 instance GHC.Show.Show Data.DoubleWord.Int128 instance GHC.Read.Read Data.DoubleWord.Int128 instance Data.Hashable.Class.Hashable Data.DoubleWord.Int128 instance GHC.Arr.Ix Data.DoubleWord.Int128 instance Data.Bits.Bits Data.DoubleWord.Int128 instance Data.Bits.FiniteBits Data.DoubleWord.Int128 instance Data.BinaryWord.BinaryWord Data.DoubleWord.Int128 instance Data.DoubleWord.Base.DoubleWord Data.DoubleWord.Word128 instance GHC.Classes.Eq Data.DoubleWord.Word128 instance GHC.Classes.Ord Data.DoubleWord.Word128 instance GHC.Enum.Bounded Data.DoubleWord.Word128 instance GHC.Enum.Enum Data.DoubleWord.Word128 instance GHC.Num.Num Data.DoubleWord.Word128 instance GHC.Real.Real Data.DoubleWord.Word128 instance GHC.Real.Integral Data.DoubleWord.Word128 instance GHC.Show.Show Data.DoubleWord.Word128 instance GHC.Read.Read Data.DoubleWord.Word128 instance Data.Hashable.Class.Hashable Data.DoubleWord.Word128 instance GHC.Arr.Ix Data.DoubleWord.Word128 instance Data.Bits.Bits Data.DoubleWord.Word128 instance Data.Bits.FiniteBits Data.DoubleWord.Word128 instance GHC.Generics.Generic Data.DoubleWord.Int96 instance Data.Data.Data Data.DoubleWord.Int96 instance GHC.Generics.Generic Data.DoubleWord.Word96 instance Data.Data.Data Data.DoubleWord.Word96 instance Data.BinaryWord.BinaryWord Data.DoubleWord.Word96 instance Data.DoubleWord.Base.DoubleWord Data.DoubleWord.Int96 instance GHC.Classes.Eq Data.DoubleWord.Int96 instance GHC.Classes.Ord Data.DoubleWord.Int96 instance GHC.Enum.Bounded Data.DoubleWord.Int96 instance GHC.Enum.Enum Data.DoubleWord.Int96 instance GHC.Num.Num Data.DoubleWord.Int96 instance GHC.Real.Real Data.DoubleWord.Int96 instance GHC.Real.Integral Data.DoubleWord.Int96 instance GHC.Show.Show Data.DoubleWord.Int96 instance GHC.Read.Read Data.DoubleWord.Int96 instance Data.Hashable.Class.Hashable Data.DoubleWord.Int96 instance GHC.Arr.Ix Data.DoubleWord.Int96 instance Data.Bits.Bits Data.DoubleWord.Int96 instance Data.Bits.FiniteBits Data.DoubleWord.Int96 instance Data.BinaryWord.BinaryWord Data.DoubleWord.Int96 instance Data.DoubleWord.Base.DoubleWord Data.DoubleWord.Word96 instance GHC.Classes.Eq Data.DoubleWord.Word96 instance GHC.Classes.Ord Data.DoubleWord.Word96 instance GHC.Enum.Bounded Data.DoubleWord.Word96 instance GHC.Enum.Enum Data.DoubleWord.Word96 instance GHC.Num.Num Data.DoubleWord.Word96 instance GHC.Real.Real Data.DoubleWord.Word96 instance GHC.Real.Integral Data.DoubleWord.Word96 instance GHC.Show.Show Data.DoubleWord.Word96 instance GHC.Read.Read Data.DoubleWord.Word96 instance Data.Hashable.Class.Hashable Data.DoubleWord.Word96 instance GHC.Arr.Ix Data.DoubleWord.Word96 instance Data.Bits.Bits Data.DoubleWord.Word96 instance Data.Bits.FiniteBits Data.DoubleWord.Word96