Use explicit language extensions & remove extension fields from base.cabal
[ghc-base.git] / Foreign / C / Types.hs
index 798c899..22bae5c 100644 (file)
@@ -1,7 +1,12 @@
-{-# OPTIONS_GHC -XNoImplicitPrelude #-}
+{-# LANGUAGE CPP
+           , NoImplicitPrelude
+           , MagicHash
+           , GeneralizedNewtypeDeriving
+  #-}
 {-# OPTIONS_GHC -fno-warn-unused-binds #-}
 -- XXX -fno-warn-unused-binds stops us warning about unused constructors,
 -- but really we should just remove them if we don't want them
+
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Foreign.C.Types
@@ -43,6 +48,14 @@ module Foreign.C.Types
           -- 'Prelude.Show', 'Prelude.Enum', 'Typeable' and 'Storable'.
         , CClock,   CTime
 
+        -- extracted from CTime, because we don't want this comment in
+        -- the Haskell 2010 report:
+
+        -- | To convert 'CTime' to 'Data.Time.UTCTime', use the following formula:
+        --
+        -- >  posixSecondsToUTCTime (realToFrac :: POSIXTime)
+        --
+
           -- ** Floating types
           -- | These types are are represented as @newtype@s of
           -- 'Prelude.Float' and 'Prelude.Double', and are instances of
@@ -64,6 +77,7 @@ module Foreign.C.Types
         , CLLong(..),   CULLong(..)
         , CClock(..),   CTime(..)
         , CFloat(..),   CDouble(..), CLDouble(..)
+        , CIntPtr(..), CUIntPtr(..), CIntMax(..), CUIntMax(..)
 #endif
           -- ** Other types
 
@@ -199,10 +213,6 @@ INTEGRAL_TYPE(CSigAtomic,tyConCSigAtomic,"CSigAtomic",HTYPE_SIG_ATOMIC_T)
 ARITHMETIC_TYPE(CClock,tyConCClock,"CClock",HTYPE_CLOCK_T)
 -- | Haskell type representing the C @time_t@ type.
 --
--- To convert to a @Data.Time.UTCTime@, use the following formula:
---
--- >  posixSecondsToUTCTime (realToFrac :: POSIXTime)
---
 ARITHMETIC_TYPE(CTime,tyConCTime,"CTime",HTYPE_TIME_T)
 
 -- FIXME: Implement and provide instances for Eq and Storable
@@ -280,6 +290,7 @@ import NHC.FFI
   , CPtrdiff(..), CSize(..),   CWchar(..), CSigAtomic(..)
   , CClock(..),   CTime(..)
   , CFloat(..),   CDouble(..), CLDouble(..)
+  , CIntPtr(..),  CUIntPtr(..),CIntMax(..), CUIntMax(..)
   , CFile,        CFpos,       CJmpBuf
   , Storable(..)
   )
@@ -317,5 +328,9 @@ INSTANCE_BITS(CPtrdiff)
 INSTANCE_BITS(CWchar)
 INSTANCE_BITS(CSigAtomic)
 INSTANCE_BITS(CSize)
+INSTANCE_BITS(CIntPtr)
+INSTANCE_BITS(CUIntPtr)
+INSTANCE_BITS(CIntMax)
+INSTANCE_BITS(CUIntMax)
 
 #endif