| |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

Description | |||||||||||||||||||||||||||||||||||||||||||||

Mapping of C types to corresponding Haskell types. | |||||||||||||||||||||||||||||||||||||||||||||

Synopsis | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

Representations of C types | |||||||||||||||||||||||||||||||||||||||||||||

These types are needed to accurately represent C function prototypes,
in order to access C library interfaces in Haskell. The Haskell system
is not required to represent those types exactly as C does, but the
following guarantees are provided concerning a Haskell type - If a C function prototype has
`t`as an argument or result type, the use of`CT`in the corresponding position in a foreign declaration permits the Haskell program to access the full range of values encoded by the C type; and conversely, any Haskell value for`CT`has a valid representation in C. -
will yield the same value as`sizeOf`(`undefined`:: CT)`sizeof (t)`in C. -
matches the alignment constraint enforced by the C implementation for`alignment`(`undefined`:: CT)`t`. - The members
`peek`and`poke`of the`Storable`class map all values of`CT`to the corresponding value of`t`and vice versa. - When an instance of
`Bounded`is defined for`CT`, the values of`minBound`and`maxBound`coincide with`t_MIN`and`t_MAX`in C. - When an instance of
`Eq`or`Ord`is defined for`CT`, the predicates defined by the type class implement the same relation as the corresponding predicate in C on`t`. - When an instance of
`Num`,`Read`,`Integral`,`Fractional`,`Floating`,`RealFrac`, or`RealFloat`is defined for`CT`, the arithmetic operations defined by the type class implement the same function as the corresponding arithmetic operations (if available) in C on`t`. - When an instance of
`Bits`is defined for`CT`, the bitwise operation defined by the type class implement the same function as the corresponding bitwise operation in C on`t`.
| |||||||||||||||||||||||||||||||||||||||||||||

Integral types | |||||||||||||||||||||||||||||||||||||||||||||

These types are are represented as newtypes of
types in Data.Int and Data.Word, and are instances of
Eq, Ord, Num, Read,
Show, Enum, Typeable, Storable,
Bounded, Real, Integral and
Bits.
| |||||||||||||||||||||||||||||||||||||||||||||

data CChar | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CSChar | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CUChar | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CShort | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CUShort | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CInt | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CUInt | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CLong | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CULong | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CPtrdiff | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CSize | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CWchar | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CSigAtomic | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CLLong | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CULLong | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

Numeric types | |||||||||||||||||||||||||||||||||||||||||||||

These types are are represented as newtypes of basic
foreign types, and are instances of
Eq, Ord, Num, Read,
Show, Enum, Typeable and Storable.
| |||||||||||||||||||||||||||||||||||||||||||||

data CClock | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CTime | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

Floating types | |||||||||||||||||||||||||||||||||||||||||||||

These types are are represented as newtypes of
Float and Double, and are instances of
Eq, Ord, Num, Read,
Show, Enum, Typeable, Storable,
Real, Fractional, Floating,
RealFrac and RealFloat.
| |||||||||||||||||||||||||||||||||||||||||||||

data CFloat | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CDouble | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CLDouble | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

Other types | |||||||||||||||||||||||||||||||||||||||||||||

data CFile | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CFpos | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

data CJmpBuf | |||||||||||||||||||||||||||||||||||||||||||||

| |||||||||||||||||||||||||||||||||||||||||||||

Produced by Haddock version 0.7 |