base-4.22.0.0: src/Foreign/C/Types.hs
-- |
--
-- Module : Foreign.C.Types
-- Copyright : (c) The FFI task force 2001
-- License : BSD-style (see the file libraries/base/LICENSE)
--
-- Maintainer : ffi@haskell.org
-- Stability : provisional
-- Portability : portable
--
-- Mapping of C types to corresponding Haskell types.
--
module Foreign.C.Types
(-- * Representations of C types
-- $ctypes
-- ** #platform# 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 @newtype@s of
-- types in "Data.Int" and "Data.Word", and are instances of
-- 'Prelude.Eq', 'Prelude.Ord', 'Prelude.Num', 'Prelude.Read',
-- 'Prelude.Show', 'Prelude.Enum', 'Data.Typeable.Typeable',
-- 'Storable', 'Prelude.Bounded', 'Prelude.Real', 'Prelude.Integral'
-- and 'Bits'.
CChar(..),
CSChar(..),
CUChar(..),
CShort(..),
CUShort(..),
CInt(..),
CUInt(..),
CLong(..),
CULong(..),
CPtrdiff(..),
CSize(..),
CWchar(..),
CSigAtomic(..),
CLLong(..),
CULLong(..),
CBool(..),
CIntPtr(..),
CUIntPtr(..),
CIntMax(..),
CUIntMax(..),
-- ** Numeric types
-- | These types are represented as @newtype@s of basic
-- foreign types, and are instances of
-- 'Prelude.Eq', 'Prelude.Ord', 'Prelude.Num', 'Prelude.Read',
-- 'Prelude.Show', 'Prelude.Enum', 'Data.Typeable.Typeable' and
-- 'Storable'.
CClock(..),
CTime(..),
CUSeconds(..),
CSUSeconds(..),
-- | To convert 'CTime' to 'Data.Time.UTCTime', use the following:
--
-- > \t -> posixSecondsToUTCTime (realToFrac t :: POSIXTime)
-- ** Floating types
-- | These types are represented as @newtype@s of
-- 'Prelude.Float' and 'Prelude.Double', and are instances of
-- 'Prelude.Eq', 'Prelude.Ord', 'Prelude.Num', 'Prelude.Read',
-- 'Prelude.Show', 'Prelude.Enum', 'Data.Typeable.Typeable', 'Storable',
-- 'Prelude.Real', 'Prelude.Fractional', 'Prelude.Floating',
-- 'Prelude.RealFrac' and 'Prelude.RealFloat'. That does mean
-- that `CFloat`'s (respectively `CDouble`'s) instances of
-- 'Prelude.Eq', 'Prelude.Ord', 'Prelude.Num' and
-- 'Prelude.Fractional' are as badly behaved as `Prelude.Float`'s
-- (respectively `Prelude.Double`'s).
CFloat(..),
CDouble(..),
-- XXX GHC doesn't support CLDouble yet
-- , CLDouble(..)
-- ** Other types
CFile,
CFpos,
CJmpBuf
) where
import GHC.Internal.Foreign.C.Types