Data.Int

haskell2010-1.1.2.0: Compatibility with Haskell 2010

Safe Haskell | Safe
Language | Haskell2010

Data.Int

Contents

- Signed integer types

Synopsis

- data Int :: *
- data Int8 :: *
- data Int16 :: *
- data Int32 :: *
- data Int64 :: *

# Signed integer types

This module provides signed integer types of unspecified width (`Int`) and fixed widths (`Int8`, `Int16`, `Int32` and `Int64`). All arithmetic is performed modulo 2^n, where `n` is the number of bits in the type.

For coercing between any two integer types, use `fromIntegral`. Coercing word types (see Data.Word) to and from integer types preserves representation, not sign.

The rules that hold for `Enum` instances over a bounded type such as `Int` (see the section of the Haskell language report dealing with arithmetic sequences) also hold for the `Enum` instances over the various `Int` types defined here.

Right and left shifts by amounts greater than or equal to the width of the type result in either zero or -1, depending on the sign of the value being shifted. 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.

data Int :: * Source

A fixed-precision integer type with at least the range `[-2^29 .. 2^29-1]`. The exact range for a given implementation can be determined by using `minBound` and `maxBound` from the `Bounded` class.

Instances

Bounded Int |
Enum Int |
Eq Int |
Integral Int |
Num Int |
Ord Int |
Read Int |
Real Int |
Show Int |
Ix Int |
Storable Int |
Bits Int |
FiniteBits Int |

data Int8 :: * Source

8-bit signed integer type

Instances

Bounded Int8 |
Enum Int8 |
Eq Int8 |
Integral Int8 |
Num Int8 |
Ord Int8 |
Read Int8 |
Real Int8 |
Show Int8 |
Ix Int8 |
Storable Int8 |
Bits Int8 |
FiniteBits Int8 |
Typeable * Int8 |

data Int16 :: * Source

16-bit signed integer type

Instances

Bounded Int16 |
Enum Int16 |
Eq Int16 |
Integral Int16 |
Num Int16 |
Ord Int16 |
Read Int16 |
Real Int16 |
Show Int16 |
Ix Int16 |
Storable Int16 |
Bits Int16 |
FiniteBits Int16 |
Typeable * Int16 |

data Int32 :: * Source

32-bit signed integer type

Instances

Bounded Int32 |
Enum Int32 |
Eq Int32 |
Integral Int32 |
Num Int32 |
Ord Int32 |
Read Int32 |
Real Int32 |
Show Int32 |
Ix Int32 |
Storable Int32 |
Bits Int32 |
FiniteBits Int32 |
Typeable * Int32 |

data Int64 :: * Source

64-bit signed integer type

Instances

Bounded Int64 |
Enum Int64 |
Eq Int64 |
Integral Int64 |
Num Int64 |
Ord Int64 |
Read Int64 |
Real Int64 |
Show Int64 |
Ix Int64 |
Storable Int64 |
Bits Int64 |
FiniteBits Int64 |
Typeable * Int64 |