Haskell Hierarchical Libraries (base package)ContentsIndex
Portability portable
Stability experimental
Maintainer libraries@haskell.org
Unsigned integral types
Unsigned integer types.
data Word
data Word8
data Word16
data Word32
data Word64
Unsigned integral types
data Word
A Word is an unsigned integral type, with the same size as Int.
IArray UArray Word
Ix ix => Eq (UArray ix Word)
Ix ix => Ord (UArray ix Word)
(Ix ix, Show ix) => Show (UArray ix Word)
MArray (STUArray s) Word (ST s)
(Ix ix, Show ix) => Show (DiffUArray ix Word)
IArray (IOToDiffArray IOUArray) Word
MArray IOUArray Word IO
Storable Word
Show Word
Num Word
Real Word
Enum Word
Integral Word
Bounded Word
Ix Word
Read Word
Bits Word
Eq Word
Ord Word
data Word8
8-bit unsigned integer type
IArray UArray Word8
Ix ix => Eq (UArray ix Word8)
Ix ix => Ord (UArray ix Word8)
(Ix ix, Show ix) => Show (UArray ix Word8)
MArray (STUArray s) Word8 (ST s)
(Ix ix, Show ix) => Show (DiffUArray ix Word8)
IArray (IOToDiffArray IOUArray) Word8
MArray IOUArray Word8 IO
Typeable Word8
Storable Word8
Show Word8
Num Word8
Real Word8
Enum Word8
Integral Word8
Bounded Word8
Ix Word8
Read Word8
Bits Word8
Eq Word8
Ord Word8
data Word16
16-bit unsigned integer type
IArray UArray Word16
Ix ix => Eq (UArray ix Word16)
Ix ix => Ord (UArray ix Word16)
(Ix ix, Show ix) => Show (UArray ix Word16)
MArray (STUArray s) Word16 (ST s)
(Ix ix, Show ix) => Show (DiffUArray ix Word16)
IArray (IOToDiffArray IOUArray) Word16
MArray IOUArray Word16 IO
Typeable Word16
Storable Word16
Show Word16
Num Word16
Real Word16
Enum Word16
Integral Word16
Bounded Word16
Ix Word16
Read Word16
Bits Word16
Eq Word16
Ord Word16
data Word32
32-bit unsigned integer type
IArray UArray Word32
Ix ix => Eq (UArray ix Word32)
Ix ix => Ord (UArray ix Word32)
(Ix ix, Show ix) => Show (UArray ix Word32)
MArray (STUArray s) Word32 (ST s)
(Ix ix, Show ix) => Show (DiffUArray ix Word32)
IArray (IOToDiffArray IOUArray) Word32
MArray IOUArray Word32 IO
Typeable Word32
Storable Word32
Num Word32
Enum Word32
Integral Word32
Bits Word32
Show Word32
Real Word32
Bounded Word32
Ix Word32
Read Word32
Eq Word32
Ord Word32
data Word64
64-bit unsigned integer type
IArray UArray Word64
Ix ix => Eq (UArray ix Word64)
Ix ix => Ord (UArray ix Word64)
(Ix ix, Show ix) => Show (UArray ix Word64)
MArray (STUArray s) Word64 (ST s)
(Ix ix, Show ix) => Show (DiffUArray ix Word64)
IArray (IOToDiffArray IOUArray) Word64
MArray IOUArray Word64 IO
Typeable Word64
Storable Word64
Eq Word64
Ord Word64
Num Word64
Enum Word64
Integral Word64
Bits Word64
Show Word64
Real Word64
Bounded Word64
Ix Word64
Read Word64
  • All arithmetic is performed modulo 2^n, where n is the number of bits in the type. One non-obvious consequence of this is that negate should not raise an error on negative arguments.
  • For coercing between any two integer types, use fromIntegral, which is specialized for all the common cases so should be fast enough. Coercing word types to and from integer types preserves representation, not sign.
  • It would be very natural to add a type Natural providing an unbounded size unsigned integer, just as Integer provides unbounded size signed integers. We do not do that yet since there is no demand for it.
  • The rules that hold for Enum instances over a bounded type such as Int (see the section of the Haskell report dealing with arithmetic sequences) also hold for the Enum instances over the various Word types defined here.
  • Right and left shifts by amounts greater than or equal to the width of the type result in a zero result. This is contrary to the behaviour in C, which is undefined; a common interpretation is to truncate the shift count to the width of the type, for example 1 << 32 == 1 in some C implementations.
Produced by Haddock version 0.6