Foreign.C.Types

Copyright (c) The FFI task force 2001
License BSD-style (see the file libraries/base/LICENSE)
Maintainer [email protected]
Stability provisional
Portability portable
Safe Haskell Trustworthy
Language Haskell2010

Description

Mapping of C types to corresponding Haskell types.

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 CT representing a C type t:

  • 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.
  • sizeOf (undefined :: CT) will yield the same value as sizeof (t) in C.
  • alignment (undefined :: CT) matches the alignment constraint enforced by the C implementation for 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.

Platform differences

This module contains platform specific information about types. As such, the types presented on this page reflect the platform on which the documentation was generated and may not coincide with the types on your platform.

Integral types

These types 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.

newtype CChar Source

Haskell type representing the C char type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CChar Int8
Instances
Instances details
Bounded CChar
Instance details

Defined in Foreign.C.Types

Enum CChar
Instance details

Defined in Foreign.C.Types

Eq CChar
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CChar -> CChar -> Bool Source

(/=) :: CChar -> CChar -> Bool Source

Integral CChar
Instance details

Defined in Foreign.C.Types

Num CChar
Instance details

Defined in Foreign.C.Types

Ord CChar
Instance details

Defined in Foreign.C.Types

Read CChar
Instance details

Defined in Foreign.C.Types

Real CChar
Instance details

Defined in Foreign.C.Types

Show CChar
Instance details

Defined in Foreign.C.Types

FiniteBits CChar
Instance details

Defined in Foreign.C.Types

Bits CChar
Instance details

Defined in Foreign.C.Types

Storable CChar
Instance details

Defined in Foreign.C.Types

newtype CSChar Source

Haskell type representing the C signed char type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CSChar Int8
Instances
Instances details
Bounded CSChar
Instance details

Defined in Foreign.C.Types

Enum CSChar
Instance details

Defined in Foreign.C.Types

Eq CSChar
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CSChar -> CSChar -> Bool Source

(/=) :: CSChar -> CSChar -> Bool Source

Integral CSChar
Instance details

Defined in Foreign.C.Types

Num CSChar
Instance details

Defined in Foreign.C.Types

Ord CSChar
Instance details

Defined in Foreign.C.Types

Read CSChar
Instance details

Defined in Foreign.C.Types

Real CSChar
Instance details

Defined in Foreign.C.Types

Show CSChar
Instance details

Defined in Foreign.C.Types

FiniteBits CSChar
Instance details

Defined in Foreign.C.Types

Bits CSChar
Instance details

Defined in Foreign.C.Types

Storable CSChar
Instance details

Defined in Foreign.C.Types

newtype CUChar Source

Haskell type representing the C unsigned char type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CUChar Word8
Instances
Instances details
Bounded CUChar
Instance details

Defined in Foreign.C.Types

Enum CUChar
Instance details

Defined in Foreign.C.Types

Eq CUChar
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CUChar -> CUChar -> Bool Source

(/=) :: CUChar -> CUChar -> Bool Source

Integral CUChar
Instance details

Defined in Foreign.C.Types

Num CUChar
Instance details

Defined in Foreign.C.Types

Ord CUChar
Instance details

Defined in Foreign.C.Types

Read CUChar
Instance details

Defined in Foreign.C.Types

Real CUChar
Instance details

Defined in Foreign.C.Types

Show CUChar
Instance details

Defined in Foreign.C.Types

FiniteBits CUChar
Instance details

Defined in Foreign.C.Types

Bits CUChar
Instance details

Defined in Foreign.C.Types

Storable CUChar
Instance details

Defined in Foreign.C.Types

newtype CShort Source

Haskell type representing the C short type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CShort Int16
Instances
Instances details
Bounded CShort
Instance details

Defined in Foreign.C.Types

Enum CShort
Instance details

Defined in Foreign.C.Types

Eq CShort
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CShort -> CShort -> Bool Source

(/=) :: CShort -> CShort -> Bool Source

Integral CShort
Instance details

Defined in Foreign.C.Types

Num CShort
Instance details

Defined in Foreign.C.Types

Ord CShort
Instance details

Defined in Foreign.C.Types

Read CShort
Instance details

Defined in Foreign.C.Types

Real CShort
Instance details

Defined in Foreign.C.Types

Show CShort
Instance details

Defined in Foreign.C.Types

FiniteBits CShort
Instance details

Defined in Foreign.C.Types

Bits CShort
Instance details

Defined in Foreign.C.Types

Storable CShort
Instance details

Defined in Foreign.C.Types

newtype CUShort Source

Haskell type representing the C unsigned short type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CUShort Word16
Instances
Instances details
Bounded CUShort
Instance details

Defined in Foreign.C.Types

Enum CUShort
Instance details

Defined in Foreign.C.Types

Eq CUShort
Instance details

Defined in Foreign.C.Types

Integral CUShort
Instance details

Defined in Foreign.C.Types

Num CUShort
Instance details

Defined in Foreign.C.Types

Ord CUShort
Instance details

Defined in Foreign.C.Types

Read CUShort
Instance details

Defined in Foreign.C.Types

Real CUShort
Instance details

Defined in Foreign.C.Types

Show CUShort
Instance details

Defined in Foreign.C.Types

FiniteBits CUShort
Instance details

Defined in Foreign.C.Types

Bits CUShort
Instance details

Defined in Foreign.C.Types

Storable CUShort
Instance details

Defined in Foreign.C.Types

newtype CInt Source

Haskell type representing the C int type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CInt Int32
Instances
Instances details
Bounded CInt
Instance details

Defined in Foreign.C.Types

Enum CInt
Instance details

Defined in Foreign.C.Types

Eq CInt
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CInt -> CInt -> Bool Source

(/=) :: CInt -> CInt -> Bool Source

Integral CInt
Instance details

Defined in Foreign.C.Types

Num CInt
Instance details

Defined in Foreign.C.Types

Ord CInt
Instance details

Defined in Foreign.C.Types

Methods

compare :: CInt -> CInt -> Ordering Source

(<) :: CInt -> CInt -> Bool Source

(<=) :: CInt -> CInt -> Bool Source

(>) :: CInt -> CInt -> Bool Source

(>=) :: CInt -> CInt -> Bool Source

max :: CInt -> CInt -> CInt Source

min :: CInt -> CInt -> CInt Source

Read CInt
Instance details

Defined in Foreign.C.Types

Real CInt
Instance details

Defined in Foreign.C.Types

Methods

toRational :: CInt -> Rational Source

Show CInt
Instance details

Defined in Foreign.C.Types

FiniteBits CInt
Instance details

Defined in Foreign.C.Types

Bits CInt
Instance details

Defined in Foreign.C.Types

Storable CInt
Instance details

Defined in Foreign.C.Types

newtype CUInt Source

Haskell type representing the C unsigned int type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CUInt Word32
Instances
Instances details
Bounded CUInt
Instance details

Defined in Foreign.C.Types

Enum CUInt
Instance details

Defined in Foreign.C.Types

Eq CUInt
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CUInt -> CUInt -> Bool Source

(/=) :: CUInt -> CUInt -> Bool Source

Integral CUInt
Instance details

Defined in Foreign.C.Types

Num CUInt
Instance details

Defined in Foreign.C.Types

Ord CUInt
Instance details

Defined in Foreign.C.Types

Read CUInt
Instance details

Defined in Foreign.C.Types

Real CUInt
Instance details

Defined in Foreign.C.Types

Show CUInt
Instance details

Defined in Foreign.C.Types

FiniteBits CUInt
Instance details

Defined in Foreign.C.Types

Bits CUInt
Instance details

Defined in Foreign.C.Types

Storable CUInt
Instance details

Defined in Foreign.C.Types

newtype CLong Source

Haskell type representing the C long type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CLong Int64
Instances
Instances details
Bounded CLong
Instance details

Defined in Foreign.C.Types

Enum CLong
Instance details

Defined in Foreign.C.Types

Eq CLong
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CLong -> CLong -> Bool Source

(/=) :: CLong -> CLong -> Bool Source

Integral CLong
Instance details

Defined in Foreign.C.Types

Num CLong
Instance details

Defined in Foreign.C.Types

Ord CLong
Instance details

Defined in Foreign.C.Types

Read CLong
Instance details

Defined in Foreign.C.Types

Real CLong
Instance details

Defined in Foreign.C.Types

Show CLong
Instance details

Defined in Foreign.C.Types

FiniteBits CLong
Instance details

Defined in Foreign.C.Types

Bits CLong
Instance details

Defined in Foreign.C.Types

Storable CLong
Instance details

Defined in Foreign.C.Types

newtype CULong Source

Haskell type representing the C unsigned long type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CULong Word64
Instances
Instances details
Bounded CULong
Instance details

Defined in Foreign.C.Types

Enum CULong
Instance details

Defined in Foreign.C.Types

Eq CULong
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CULong -> CULong -> Bool Source

(/=) :: CULong -> CULong -> Bool Source

Integral CULong
Instance details

Defined in Foreign.C.Types

Num CULong
Instance details

Defined in Foreign.C.Types

Ord CULong
Instance details

Defined in Foreign.C.Types

Read CULong
Instance details

Defined in Foreign.C.Types

Real CULong
Instance details

Defined in Foreign.C.Types

Show CULong
Instance details

Defined in Foreign.C.Types

FiniteBits CULong
Instance details

Defined in Foreign.C.Types

Bits CULong
Instance details

Defined in Foreign.C.Types

Storable CULong
Instance details

Defined in Foreign.C.Types

newtype CPtrdiff Source

Haskell type representing the C ptrdiff_t type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CPtrdiff Int64
Instances
Instances details
Bounded CPtrdiff
Instance details

Defined in Foreign.C.Types

Enum CPtrdiff
Instance details

Defined in Foreign.C.Types

Eq CPtrdiff
Instance details

Defined in Foreign.C.Types

Integral CPtrdiff
Instance details

Defined in Foreign.C.Types

Num CPtrdiff
Instance details

Defined in Foreign.C.Types

Ord CPtrdiff
Instance details

Defined in Foreign.C.Types

Read CPtrdiff
Instance details

Defined in Foreign.C.Types

Real CPtrdiff
Instance details

Defined in Foreign.C.Types

Show CPtrdiff
Instance details

Defined in Foreign.C.Types

FiniteBits CPtrdiff
Instance details

Defined in Foreign.C.Types

Bits CPtrdiff
Instance details

Defined in Foreign.C.Types

Storable CPtrdiff
Instance details

Defined in Foreign.C.Types

newtype CSize Source

Haskell type representing the C size_t type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CSize Word64
Instances
Instances details
Bounded CSize
Instance details

Defined in Foreign.C.Types

Enum CSize
Instance details

Defined in Foreign.C.Types

Eq CSize
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CSize -> CSize -> Bool Source

(/=) :: CSize -> CSize -> Bool Source

Integral CSize
Instance details

Defined in Foreign.C.Types

Num CSize
Instance details

Defined in Foreign.C.Types

Ord CSize
Instance details

Defined in Foreign.C.Types

Read CSize
Instance details

Defined in Foreign.C.Types

Real CSize
Instance details

Defined in Foreign.C.Types

Show CSize
Instance details

Defined in Foreign.C.Types

FiniteBits CSize
Instance details

Defined in Foreign.C.Types

Bits CSize
Instance details

Defined in Foreign.C.Types

Storable CSize
Instance details

Defined in Foreign.C.Types

newtype CWchar Source

Haskell type representing the C wchar_t type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CWchar Int32
Instances
Instances details
Bounded CWchar
Instance details

Defined in Foreign.C.Types

Enum CWchar
Instance details

Defined in Foreign.C.Types

Eq CWchar
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CWchar -> CWchar -> Bool Source

(/=) :: CWchar -> CWchar -> Bool Source

Integral CWchar
Instance details

Defined in Foreign.C.Types

Num CWchar
Instance details

Defined in Foreign.C.Types

Ord CWchar
Instance details

Defined in Foreign.C.Types

Read CWchar
Instance details

Defined in Foreign.C.Types

Real CWchar
Instance details

Defined in Foreign.C.Types

Show CWchar
Instance details

Defined in Foreign.C.Types

FiniteBits CWchar
Instance details

Defined in Foreign.C.Types

Bits CWchar
Instance details

Defined in Foreign.C.Types

Storable CWchar
Instance details

Defined in Foreign.C.Types

newtype CSigAtomic Source

Haskell type representing the C sig_atomic_t type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CSigAtomic Int32
Instances
Instances details
Bounded CSigAtomic
Instance details

Defined in Foreign.C.Types

Enum CSigAtomic
Instance details

Defined in Foreign.C.Types

Eq CSigAtomic
Instance details

Defined in Foreign.C.Types

Integral CSigAtomic
Instance details

Defined in Foreign.C.Types

Num CSigAtomic
Instance details

Defined in Foreign.C.Types

Ord CSigAtomic
Instance details

Defined in Foreign.C.Types

Read CSigAtomic
Instance details

Defined in Foreign.C.Types

Real CSigAtomic
Instance details

Defined in Foreign.C.Types

Show CSigAtomic
Instance details

Defined in Foreign.C.Types

FiniteBits CSigAtomic
Instance details

Defined in Foreign.C.Types

Bits CSigAtomic
Instance details

Defined in Foreign.C.Types

Storable CSigAtomic
Instance details

Defined in Foreign.C.Types

newtype CLLong Source

Haskell type representing the C long long type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CLLong Int64
Instances
Instances details
Bounded CLLong
Instance details

Defined in Foreign.C.Types

Enum CLLong
Instance details

Defined in Foreign.C.Types

Eq CLLong
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CLLong -> CLLong -> Bool Source

(/=) :: CLLong -> CLLong -> Bool Source

Integral CLLong
Instance details

Defined in Foreign.C.Types

Num CLLong
Instance details

Defined in Foreign.C.Types

Ord CLLong
Instance details

Defined in Foreign.C.Types

Read CLLong
Instance details

Defined in Foreign.C.Types

Real CLLong
Instance details

Defined in Foreign.C.Types

Show CLLong
Instance details

Defined in Foreign.C.Types

FiniteBits CLLong
Instance details

Defined in Foreign.C.Types

Bits CLLong
Instance details

Defined in Foreign.C.Types

Storable CLLong
Instance details

Defined in Foreign.C.Types

newtype CULLong Source

Haskell type representing the C unsigned long long type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CULLong Word64
Instances
Instances details
Bounded CULLong
Instance details

Defined in Foreign.C.Types

Enum CULLong
Instance details

Defined in Foreign.C.Types

Eq CULLong
Instance details

Defined in Foreign.C.Types

Integral CULLong
Instance details

Defined in Foreign.C.Types

Num CULLong
Instance details

Defined in Foreign.C.Types

Ord CULLong
Instance details

Defined in Foreign.C.Types

Read CULLong
Instance details

Defined in Foreign.C.Types

Real CULLong
Instance details

Defined in Foreign.C.Types

Show CULLong
Instance details

Defined in Foreign.C.Types

FiniteBits CULLong
Instance details

Defined in Foreign.C.Types

Bits CULLong
Instance details

Defined in Foreign.C.Types

Storable CULLong
Instance details

Defined in Foreign.C.Types

newtype CBool Source

Haskell type representing the C bool type. (The concrete types of Foreign.C.Types are platform-specific.)

Since: base-4.10.0.0

Constructors

CBool Word8
Instances
Instances details
Bounded CBool
Instance details

Defined in Foreign.C.Types

Enum CBool
Instance details

Defined in Foreign.C.Types

Eq CBool
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CBool -> CBool -> Bool Source

(/=) :: CBool -> CBool -> Bool Source

Integral CBool
Instance details

Defined in Foreign.C.Types

Num CBool
Instance details

Defined in Foreign.C.Types

Ord CBool
Instance details

Defined in Foreign.C.Types

Read CBool
Instance details

Defined in Foreign.C.Types

Real CBool
Instance details

Defined in Foreign.C.Types

Show CBool
Instance details

Defined in Foreign.C.Types

FiniteBits CBool
Instance details

Defined in Foreign.C.Types

Bits CBool
Instance details

Defined in Foreign.C.Types

Storable CBool
Instance details

Defined in Foreign.C.Types

newtype CIntPtr Source

Constructors

CIntPtr Int64
Instances
Instances details
Bounded CIntPtr
Instance details

Defined in Foreign.C.Types

Enum CIntPtr
Instance details

Defined in Foreign.C.Types

Eq CIntPtr
Instance details

Defined in Foreign.C.Types

Integral CIntPtr
Instance details

Defined in Foreign.C.Types

Num CIntPtr
Instance details

Defined in Foreign.C.Types

Ord CIntPtr
Instance details

Defined in Foreign.C.Types

Read CIntPtr
Instance details

Defined in Foreign.C.Types

Real CIntPtr
Instance details

Defined in Foreign.C.Types

Show CIntPtr
Instance details

Defined in Foreign.C.Types

FiniteBits CIntPtr
Instance details

Defined in Foreign.C.Types

Bits CIntPtr
Instance details

Defined in Foreign.C.Types

Storable CIntPtr
Instance details

Defined in Foreign.C.Types

newtype CUIntPtr Source

Constructors

CUIntPtr Word64
Instances
Instances details
Bounded CUIntPtr
Instance details

Defined in Foreign.C.Types

Enum CUIntPtr
Instance details

Defined in Foreign.C.Types

Eq CUIntPtr
Instance details

Defined in Foreign.C.Types

Integral CUIntPtr
Instance details

Defined in Foreign.C.Types

Num CUIntPtr
Instance details

Defined in Foreign.C.Types

Ord CUIntPtr
Instance details

Defined in Foreign.C.Types

Read CUIntPtr
Instance details

Defined in Foreign.C.Types

Real CUIntPtr
Instance details

Defined in Foreign.C.Types

Show CUIntPtr
Instance details

Defined in Foreign.C.Types

FiniteBits CUIntPtr
Instance details

Defined in Foreign.C.Types

Bits CUIntPtr
Instance details

Defined in Foreign.C.Types

Storable CUIntPtr
Instance details

Defined in Foreign.C.Types

newtype CIntMax Source

Constructors

CIntMax Int64
Instances
Instances details
Bounded CIntMax
Instance details

Defined in Foreign.C.Types

Enum CIntMax
Instance details

Defined in Foreign.C.Types

Eq CIntMax
Instance details

Defined in Foreign.C.Types

Integral CIntMax
Instance details

Defined in Foreign.C.Types

Num CIntMax
Instance details

Defined in Foreign.C.Types

Ord CIntMax
Instance details

Defined in Foreign.C.Types

Read CIntMax
Instance details

Defined in Foreign.C.Types

Real CIntMax
Instance details

Defined in Foreign.C.Types

Show CIntMax
Instance details

Defined in Foreign.C.Types

FiniteBits CIntMax
Instance details

Defined in Foreign.C.Types

Bits CIntMax
Instance details

Defined in Foreign.C.Types

Storable CIntMax
Instance details

Defined in Foreign.C.Types

newtype CUIntMax Source

Constructors

CUIntMax Word64
Instances
Instances details
Bounded CUIntMax
Instance details

Defined in Foreign.C.Types

Enum CUIntMax
Instance details

Defined in Foreign.C.Types

Eq CUIntMax
Instance details

Defined in Foreign.C.Types

Integral CUIntMax
Instance details

Defined in Foreign.C.Types

Num CUIntMax
Instance details

Defined in Foreign.C.Types

Ord CUIntMax
Instance details

Defined in Foreign.C.Types

Read CUIntMax
Instance details

Defined in Foreign.C.Types

Real CUIntMax
Instance details

Defined in Foreign.C.Types

Show CUIntMax
Instance details

Defined in Foreign.C.Types

FiniteBits CUIntMax
Instance details

Defined in Foreign.C.Types

Bits CUIntMax
Instance details

Defined in Foreign.C.Types

Storable CUIntMax
Instance details

Defined in Foreign.C.Types

Numeric types

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

newtype CClock Source

Haskell type representing the C clock_t type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CClock Int64
Instances
Instances details
Enum CClock
Instance details

Defined in Foreign.C.Types

Eq CClock
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CClock -> CClock -> Bool Source

(/=) :: CClock -> CClock -> Bool Source

Num CClock
Instance details

Defined in Foreign.C.Types

Ord CClock
Instance details

Defined in Foreign.C.Types

Read CClock
Instance details

Defined in Foreign.C.Types

Real CClock
Instance details

Defined in Foreign.C.Types

Show CClock
Instance details

Defined in Foreign.C.Types

Storable CClock
Instance details

Defined in Foreign.C.Types

newtype CTime Source

Haskell type representing the C time_t type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CTime Int64
Instances
Instances details
Enum CTime
Instance details

Defined in Foreign.C.Types

Eq CTime
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CTime -> CTime -> Bool Source

(/=) :: CTime -> CTime -> Bool Source

Num CTime
Instance details

Defined in Foreign.C.Types

Ord CTime
Instance details

Defined in Foreign.C.Types

Read CTime
Instance details

Defined in Foreign.C.Types

Real CTime
Instance details

Defined in Foreign.C.Types

Show CTime
Instance details

Defined in Foreign.C.Types

Storable CTime
Instance details

Defined in Foreign.C.Types

newtype CUSeconds Source

Haskell type representing the C useconds_t type. (The concrete types of Foreign.C.Types are platform-specific.)

Since: base-4.4.0.0

Constructors

CUSeconds Word32
Instances
Instances details
Enum CUSeconds
Instance details

Defined in Foreign.C.Types

Eq CUSeconds
Instance details

Defined in Foreign.C.Types

Num CUSeconds
Instance details

Defined in Foreign.C.Types

Ord CUSeconds
Instance details

Defined in Foreign.C.Types

Read CUSeconds
Instance details

Defined in Foreign.C.Types

Real CUSeconds
Instance details

Defined in Foreign.C.Types

Show CUSeconds
Instance details

Defined in Foreign.C.Types

Storable CUSeconds
Instance details

Defined in Foreign.C.Types

newtype CSUSeconds Source

Haskell type representing the C suseconds_t type. (The concrete types of Foreign.C.Types are platform-specific.)

Since: base-4.4.0.0

Constructors

CSUSeconds Int64
Instances
Instances details
Enum CSUSeconds
Instance details

Defined in Foreign.C.Types

Eq CSUSeconds
Instance details

Defined in Foreign.C.Types

Num CSUSeconds
Instance details

Defined in Foreign.C.Types

Ord CSUSeconds
Instance details

Defined in Foreign.C.Types

Read CSUSeconds
Instance details

Defined in Foreign.C.Types

Real CSUSeconds
Instance details

Defined in Foreign.C.Types

Show CSUSeconds
Instance details

Defined in Foreign.C.Types

Storable CSUSeconds
Instance details

Defined in Foreign.C.Types

To convert CTime to UTCTime, use the following:

\t -> posixSecondsToUTCTime (realToFrac t :: POSIXTime)

Floating types

These types 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. That does mean that CFloat's (respectively CDouble's) instances of Eq, Ord, Num and Fractional are as badly behaved as Float's (respectively Double's).

newtype CFloat Source

Haskell type representing the C float type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CFloat Float
Instances
Instances details
Enum CFloat
Instance details

Defined in Foreign.C.Types

Eq CFloat
Instance details

Defined in Foreign.C.Types

Methods

(==) :: CFloat -> CFloat -> Bool Source

(/=) :: CFloat -> CFloat -> Bool Source

Floating CFloat
Instance details

Defined in Foreign.C.Types

Fractional CFloat
Instance details

Defined in Foreign.C.Types

Num CFloat
Instance details

Defined in Foreign.C.Types

Ord CFloat
Instance details

Defined in Foreign.C.Types

Read CFloat
Instance details

Defined in Foreign.C.Types

Real CFloat
Instance details

Defined in Foreign.C.Types

RealFloat CFloat
Instance details

Defined in Foreign.C.Types

RealFrac CFloat
Instance details

Defined in Foreign.C.Types

Methods

properFraction :: Integral b => CFloat -> (b, CFloat) Source

truncate :: Integral b => CFloat -> b Source

round :: Integral b => CFloat -> b Source

ceiling :: Integral b => CFloat -> b Source

floor :: Integral b => CFloat -> b Source

Show CFloat
Instance details

Defined in Foreign.C.Types

Storable CFloat
Instance details

Defined in Foreign.C.Types

newtype CDouble Source

Haskell type representing the C double type. (The concrete types of Foreign.C.Types are platform-specific.)

Constructors

CDouble Double
Instances
Instances details
Enum CDouble
Instance details

Defined in Foreign.C.Types

Eq CDouble
Instance details

Defined in Foreign.C.Types

Floating CDouble
Instance details

Defined in Foreign.C.Types

Fractional CDouble
Instance details

Defined in Foreign.C.Types

Num CDouble
Instance details

Defined in Foreign.C.Types

Ord CDouble
Instance details

Defined in Foreign.C.Types

Read CDouble
Instance details

Defined in Foreign.C.Types

Real CDouble
Instance details

Defined in Foreign.C.Types

RealFloat CDouble
Instance details

Defined in Foreign.C.Types

RealFrac CDouble
Instance details

Defined in Foreign.C.Types

Show CDouble
Instance details

Defined in Foreign.C.Types

Storable CDouble
Instance details

Defined in Foreign.C.Types

Other types

data CFile Source

Haskell type representing the C FILE type. (The concrete types of Foreign.C.Types are platform-specific.)

data CFpos Source

Haskell type representing the C fpos_t type. (The concrete types of Foreign.C.Types are platform-specific.)

data CJmpBuf Source

Haskell type representing the C jmp_buf type. (The concrete types of Foreign.C.Types are platform-specific.)

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/Foreign-C-Types.html