ghc-internal-9.1400.0: Basic libraries
Copyright(c) The FFI task force 2001
LicenseBSD-style (see the file libraries/base/LICENSE)
Maintainerffi@haskell.org
Stabilityprovisional
Portabilityportable
Safe HaskellTrustworthy
LanguageHaskell2010

GHC.Internal.Foreign.C.Types

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 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 #

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

Constructors

CChar Word8 

Instances

Instances details
Bits CChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

compare :: CChar -> CChar -> Ordering #

(<) :: CChar -> CChar -> Bool #

(<=) :: CChar -> CChar -> Bool #

(>) :: CChar -> CChar -> Bool #

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

max :: CChar -> CChar -> CChar #

min :: CChar -> CChar -> CChar #

Bounded CChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

sizeOf :: CChar -> Int #

alignment :: CChar -> Int #

peekElemOff :: Ptr CChar -> Int -> IO CChar #

pokeElemOff :: Ptr CChar -> Int -> CChar -> IO () #

peekByteOff :: Ptr b -> Int -> IO CChar #

pokeByteOff :: Ptr b -> Int -> CChar -> IO () #

peek :: Ptr CChar -> IO CChar #

poke :: Ptr CChar -> CChar -> IO () #

Ix CChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CChar -> Rational #

Show CChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

showsPrec :: Int -> CChar -> ShowS #

show :: CChar -> String #

showList :: [CChar] -> ShowS #

newtype CSChar #

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

Constructors

CSChar Int8 

Instances

Instances details
Bits CSChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CSChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CSChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CSChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CSChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CSChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CSChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ix CSChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CSChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CSChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CSChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CSChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CSChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CUChar #

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

Constructors

CUChar Word8 

Instances

Instances details
Bits CUChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CUChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CUChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CUChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CUChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CUChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CUChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ix CUChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CUChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CUChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CUChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CUChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CUChar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CShort #

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

Constructors

CShort Int16 

Instances

Instances details
Bits CShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ix CShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CUShort #

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

Constructors

CUShort Word16 

Instances

Instances details
Bits CUShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CUShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CUShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

(==) :: CUShort -> CUShort -> Bool #

(/=) :: CUShort -> CUShort -> Bool #

Ord CUShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CUShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CUShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CUShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ix CUShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CUShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CUShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CUShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CUShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CUShort # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CInt #

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

Constructors

CInt Int32 

Instances

Instances details
Bits CInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

compare :: CInt -> CInt -> Ordering #

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

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

(>) :: CInt -> CInt -> Bool #

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

max :: CInt -> CInt -> CInt #

min :: CInt -> CInt -> CInt #

Bounded CInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

succ :: CInt -> CInt #

pred :: CInt -> CInt #

toEnum :: Int -> CInt #

fromEnum :: CInt -> Int #

enumFrom :: CInt -> [CInt] #

enumFromThen :: CInt -> CInt -> [CInt] #

enumFromTo :: CInt -> CInt -> [CInt] #

enumFromThenTo :: CInt -> CInt -> CInt -> [CInt] #

Storable CInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

sizeOf :: CInt -> Int #

alignment :: CInt -> Int #

peekElemOff :: Ptr CInt -> Int -> IO CInt #

pokeElemOff :: Ptr CInt -> Int -> CInt -> IO () #

peekByteOff :: Ptr b -> Int -> IO CInt #

pokeByteOff :: Ptr b -> Int -> CInt -> IO () #

peek :: Ptr CInt -> IO CInt #

poke :: Ptr CInt -> CInt -> IO () #

Ix CInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

range :: (CInt, CInt) -> [CInt] #

index :: (CInt, CInt) -> CInt -> Int #

unsafeIndex :: (CInt, CInt) -> CInt -> Int #

inRange :: (CInt, CInt) -> CInt -> Bool #

rangeSize :: (CInt, CInt) -> Int #

unsafeRangeSize :: (CInt, CInt) -> Int #

Num CInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

(+) :: CInt -> CInt -> CInt #

(-) :: CInt -> CInt -> CInt #

(*) :: CInt -> CInt -> CInt #

negate :: CInt -> CInt #

abs :: CInt -> CInt #

signum :: CInt -> CInt #

fromInteger :: Integer -> CInt #

Read CInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

quot :: CInt -> CInt -> CInt #

rem :: CInt -> CInt -> CInt #

div :: CInt -> CInt -> CInt #

mod :: CInt -> CInt -> CInt #

quotRem :: CInt -> CInt -> (CInt, CInt) #

divMod :: CInt -> CInt -> (CInt, CInt) #

toInteger :: CInt -> Integer #

Real CInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CInt -> Rational #

Show CInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

showsPrec :: Int -> CInt -> ShowS #

show :: CInt -> String #

showList :: [CInt] -> ShowS #

newtype CUInt #

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

Constructors

CUInt Word32 

Instances

Instances details
Bits CUInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CUInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CUInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CUInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

compare :: CUInt -> CUInt -> Ordering #

(<) :: CUInt -> CUInt -> Bool #

(<=) :: CUInt -> CUInt -> Bool #

(>) :: CUInt -> CUInt -> Bool #

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

max :: CUInt -> CUInt -> CUInt #

min :: CUInt -> CUInt -> CUInt #

Bounded CUInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CUInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CUInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

sizeOf :: CUInt -> Int #

alignment :: CUInt -> Int #

peekElemOff :: Ptr CUInt -> Int -> IO CUInt #

pokeElemOff :: Ptr CUInt -> Int -> CUInt -> IO () #

peekByteOff :: Ptr b -> Int -> IO CUInt #

pokeByteOff :: Ptr b -> Int -> CUInt -> IO () #

peek :: Ptr CUInt -> IO CUInt #

poke :: Ptr CUInt -> CUInt -> IO () #

Ix CUInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CUInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CUInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CUInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CUInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CUInt -> Rational #

Show CUInt # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

showsPrec :: Int -> CUInt -> ShowS #

show :: CUInt -> String #

showList :: [CUInt] -> ShowS #

newtype CLong #

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

Constructors

CLong Int64 

Instances

Instances details
Bits CLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

compare :: CLong -> CLong -> Ordering #

(<) :: CLong -> CLong -> Bool #

(<=) :: CLong -> CLong -> Bool #

(>) :: CLong -> CLong -> Bool #

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

max :: CLong -> CLong -> CLong #

min :: CLong -> CLong -> CLong #

Bounded CLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

sizeOf :: CLong -> Int #

alignment :: CLong -> Int #

peekElemOff :: Ptr CLong -> Int -> IO CLong #

pokeElemOff :: Ptr CLong -> Int -> CLong -> IO () #

peekByteOff :: Ptr b -> Int -> IO CLong #

pokeByteOff :: Ptr b -> Int -> CLong -> IO () #

peek :: Ptr CLong -> IO CLong #

poke :: Ptr CLong -> CLong -> IO () #

Ix CLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CLong -> Rational #

Show CLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

showsPrec :: Int -> CLong -> ShowS #

show :: CLong -> String #

showList :: [CLong] -> ShowS #

newtype CULong #

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

Constructors

CULong Word64 

Instances

Instances details
Bits CULong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CULong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CULong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CULong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CULong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CULong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CULong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ix CULong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CULong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CULong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CULong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CULong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CULong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CPtrdiff #

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

Constructors

CPtrdiff Int64 

Instances

Instances details
Bits CPtrdiff # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CPtrdiff # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CPtrdiff # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ord CPtrdiff # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CPtrdiff # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CPtrdiff # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CPtrdiff # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ix CPtrdiff # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CPtrdiff # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CPtrdiff # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CPtrdiff # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CPtrdiff # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CPtrdiff # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CSize #

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

Constructors

CSize Word64 

Instances

Instances details
Bits CSize # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CSize # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CSize # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CSize # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

compare :: CSize -> CSize -> Ordering #

(<) :: CSize -> CSize -> Bool #

(<=) :: CSize -> CSize -> Bool #

(>) :: CSize -> CSize -> Bool #

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

max :: CSize -> CSize -> CSize #

min :: CSize -> CSize -> CSize #

Bounded CSize # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CSize # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CSize # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

sizeOf :: CSize -> Int #

alignment :: CSize -> Int #

peekElemOff :: Ptr CSize -> Int -> IO CSize #

pokeElemOff :: Ptr CSize -> Int -> CSize -> IO () #

peekByteOff :: Ptr b -> Int -> IO CSize #

pokeByteOff :: Ptr b -> Int -> CSize -> IO () #

peek :: Ptr CSize -> IO CSize #

poke :: Ptr CSize -> CSize -> IO () #

Ix CSize # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CSize # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CSize # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CSize # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CSize # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CSize -> Rational #

Show CSize # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

showsPrec :: Int -> CSize -> ShowS #

show :: CSize -> String #

showList :: [CSize] -> ShowS #

newtype CWchar #

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

Constructors

CWchar Int32 

Instances

Instances details
Bits CWchar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CWchar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CWchar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CWchar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CWchar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CWchar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CWchar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ix CWchar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CWchar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CWchar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CWchar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CWchar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CWchar # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CSigAtomic #

Haskell type representing the C sig_atomic_t type. (The concrete types of Foreign.C.Types are platform-specific.) See Note [Lack of signals on wasm32-wasi].

Constructors

CSigAtomic Int32 

Instances

Instances details
Bits CSigAtomic # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CSigAtomic # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CSigAtomic # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ord CSigAtomic # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CSigAtomic # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CSigAtomic # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CSigAtomic # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ix CSigAtomic # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CSigAtomic # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CSigAtomic # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CSigAtomic # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CSigAtomic # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CSigAtomic # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CLLong #

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

Constructors

CLLong Int64 

Instances

Instances details
Bits CLLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CLLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CLLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CLLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CLLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CLLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CLLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ix CLLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CLLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CLLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CLLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CLLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CLLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CULLong #

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
Bits CULLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CULLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CULLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

(==) :: CULLong -> CULLong -> Bool #

(/=) :: CULLong -> CULLong -> Bool #

Ord CULLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CULLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CULLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CULLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ix CULLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CULLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CULLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CULLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CULLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CULLong # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CBool #

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
Bits CBool # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CBool # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CBool # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CBool # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

compare :: CBool -> CBool -> Ordering #

(<) :: CBool -> CBool -> Bool #

(<=) :: CBool -> CBool -> Bool #

(>) :: CBool -> CBool -> Bool #

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

max :: CBool -> CBool -> CBool #

min :: CBool -> CBool -> CBool #

Bounded CBool # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CBool # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CBool # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

sizeOf :: CBool -> Int #

alignment :: CBool -> Int #

peekElemOff :: Ptr CBool -> Int -> IO CBool #

pokeElemOff :: Ptr CBool -> Int -> CBool -> IO () #

peekByteOff :: Ptr b -> Int -> IO CBool #

pokeByteOff :: Ptr b -> Int -> CBool -> IO () #

peek :: Ptr CBool -> IO CBool #

poke :: Ptr CBool -> CBool -> IO () #

Ix CBool # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CBool # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CBool # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CBool # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CBool # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CBool -> Rational #

Show CBool # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

showsPrec :: Int -> CBool -> ShowS #

show :: CBool -> String #

showList :: [CBool] -> ShowS #

newtype CIntPtr #

Constructors

CIntPtr Int64 

Instances

Instances details
Bits CIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

(==) :: CIntPtr -> CIntPtr -> Bool #

(/=) :: CIntPtr -> CIntPtr -> Bool #

Ord CIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ix CIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CUIntPtr #

Constructors

CUIntPtr Word64 

Instances

Instances details
Bits CUIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CUIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CUIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ord CUIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CUIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CUIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CUIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ix CUIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CUIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CUIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CUIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CUIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CUIntPtr # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CIntMax #

Constructors

CIntMax Int64 

Instances

Instances details
Bits CIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

(==) :: CIntMax -> CIntMax -> Bool #

(/=) :: CIntMax -> CIntMax -> Bool #

Ord CIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ix CIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CUIntMax #

Constructors

CUIntMax Word64 

Instances

Instances details
Bits CUIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

FiniteBits CUIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Eq CUIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ord CUIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Bounded CUIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CUIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CUIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ix CUIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CUIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CUIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Integral CUIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CUIntMax # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CUIntMax # 
Instance details

Defined in GHC.Internal.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 #

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

Constructors

CClock Int64 

Instances

Instances details
Eq CClock # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CClock # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CClock # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CClock # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CClock # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CClock # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CClock # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CClock # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CTime #

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

Constructors

CTime Int64 

Instances

Instances details
Eq CTime # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CTime # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

compare :: CTime -> CTime -> Ordering #

(<) :: CTime -> CTime -> Bool #

(<=) :: CTime -> CTime -> Bool #

(>) :: CTime -> CTime -> Bool #

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

max :: CTime -> CTime -> CTime #

min :: CTime -> CTime -> CTime #

Enum CTime # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CTime # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

sizeOf :: CTime -> Int #

alignment :: CTime -> Int #

peekElemOff :: Ptr CTime -> Int -> IO CTime #

pokeElemOff :: Ptr CTime -> Int -> CTime -> IO () #

peekByteOff :: Ptr b -> Int -> IO CTime #

pokeByteOff :: Ptr b -> Int -> CTime -> IO () #

peek :: Ptr CTime -> IO CTime #

poke :: Ptr CTime -> CTime -> IO () #

Num CTime # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CTime # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CTime # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

toRational :: CTime -> Rational #

Show CTime # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

showsPrec :: Int -> CTime -> ShowS #

show :: CTime -> String #

showList :: [CTime] -> ShowS #

newtype CUSeconds #

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
Eq CUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ord CUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CSUSeconds #

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
Eq CSUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Ord CSUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CSUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CSUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CSUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CSUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CSUSeconds # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Show CSUSeconds # 
Instance details

Defined in GHC.Internal.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 #

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

Constructors

CFloat Float 

Instances

Instances details
Eq CFloat # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

Ord CFloat # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CFloat # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Floating CFloat # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

RealFloat CFloat # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CFloat # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CFloat # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CFloat # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Fractional CFloat # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CFloat # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

RealFrac CFloat # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

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

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

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

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

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

Show CFloat # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

newtype CDouble #

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

Constructors

CDouble Double 

Instances

Instances details
Eq CDouble # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

(==) :: CDouble -> CDouble -> Bool #

(/=) :: CDouble -> CDouble -> Bool #

Ord CDouble # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Enum CDouble # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Floating CDouble # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

RealFloat CDouble # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Storable CDouble # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Num CDouble # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Read CDouble # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Fractional CDouble # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Real CDouble # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

RealFrac CDouble # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Methods

properFraction :: Integral b => CDouble -> (b, CDouble) #

truncate :: Integral b => CDouble -> b #

round :: Integral b => CDouble -> b #

ceiling :: Integral b => CDouble -> b #

floor :: Integral b => CDouble -> b #

Show CDouble # 
Instance details

Defined in GHC.Internal.Foreign.C.Types

Other types

data CFile #

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

data CFpos #

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

data CJmpBuf #

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