content: -- |
  --
  -- 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
  