-----------------------------------------------------------------------------
module Foreign.C.Types
+#ifndef __NHC__
( -- Integral types, instances of: Eq, Ord, Num, Read, Show, Enum,
-- Typeable, Storable, Bounded, Real, Integral, Bits
CChar, CSChar, CUChar
-- Typeable, Storable, Real, Fractional, Floating, RealFrac,
-- RealFloat
, CFloat, CDouble, CLDouble
+#else
+ ( -- Exported non-abstractly in nhc98 to fix an interface file problem.
+ CChar(..), CSChar(..), CUChar(..)
+ , CShort(..), CUShort(..), CInt(..), CUInt(..)
+ , CLong(..), CULong(..)
+ , CPtrdiff(..), CSize(..), CWchar(..), CSigAtomic(..)
+ , CLLong(..), CULLong(..)
+ , CClock(..), CTime(..)
+ , CFloat(..), CDouble(..), CLDouble(..)
+#endif
-- Instances of: Eq and Storable
, CFile, CFpos, CJmpBuf
#ifdef __NHC__
import NHC.FFI
- ( CChar, CSChar, CUChar
- , CShort, CUShort, CInt, CUInt
- , CLong, CULong, CLLong, CULLong
- , CPtrdiff, CSize, CWchar, CSigAtomic
- , CClock, CTime
- , CFloat, CDouble, CLDouble
- , CFile, CFpos, CJmpBuf
+ ( CChar(..), CSChar(..), CUChar(..)
+ , CShort(..), CUShort(..), CInt(..), CUInt(..)
+ , CLong(..), CULong(..), CLLong(..), CULLong(..)
+ , CPtrdiff(..), CSize(..), CWchar(..), CSigAtomic(..)
+ , CClock(..), CTime(..)
+ , CFloat(..), CDouble(..), CLDouble(..)
+ , CFile, CFpos, CJmpBuf
, Storable(..)
)
#else
-- #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
-- 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
#ifdef __NHC__
import NHC.FFI
- ( CPtrdiff
- , CSize
- , CWchar
- , CSigAtomic
- , CClock
- , CTime
+ ( CPtrdiff(..)
+ , CSize(..)
+ , CWchar(..)
+ , CSigAtomic(..)
+ , CClock(..)
+ , CTime(..)
, CFile
, CFpos
, CJmpBuf