--
-----------------------------------------------------------------------------
+-- #hide
module Foreign.C.TypesISO
+#ifndef __NHC__
( -- Integral types, instances of: Eq, Ord, Num, Read, Show, Enum,
-- Typeable, Storable, Bounded, Real, Integral, Bits
- CPtrdiff(..), CSize(..), CWchar(..), CSigAtomic(..)
+ CPtrdiff, CSize, CWchar, CSigAtomic
-- Numeric types, instances of: Eq, Ord, Num, Read, Show, Enum,
-- Typeable, Storable
+ , CClock, CTime
+#else
+ ( -- For nhc98, these are exported non-abstractly to work around
+ -- an interface-file problem.
+ CPtrdiff(..), CSize(..), CWchar(..), CSigAtomic(..)
, CClock(..), CTime(..)
+#endif
-- Instances of: Eq and Storable
, CFile, CFpos, CJmpBuf
) where
+#ifdef __NHC__
+import NHC.FFI
+ ( CPtrdiff(..)
+ , CSize(..)
+ , CWchar(..)
+ , CSigAtomic(..)
+ , CClock(..)
+ , CTime(..)
+ , CFile
+ , CFpos
+ , CJmpBuf
+ )
+#else
+
import Data.Bits ( Bits(..) )
import Data.Int
import Data.Word
-import Data.Dynamic
+import Data.Typeable
+import Foreign.Storable
#ifdef __GLASGOW_HASKELL__
import GHC.Base
import GHC.Show
import GHC.Read
import GHC.Num
+#else
+import Control.Monad
+import Foreign.Ptr
#endif
-#include "Dynamic.h"
+#include "Typeable.h"
#include "CTypes.h"
INTEGRAL_TYPE(CPtrdiff,tyConCPtrdiff,"CPtrdiff",HTYPE_PTRDIFF_T)
-- C99 types which are still missing include:
-- intptr_t, uintptr_t, intmax_t, uintmax_t, wint_t, wctrans_t, wctype_t
+#endif