Use a combination of Haskell/C comments to ensure robustness.
authorMalcolm.Wallace@cs.york.ac.uk <unknown>
Tue, 26 Jun 2007 09:52:22 +0000 (09:52 +0000)
committerMalcolm.Wallace@cs.york.ac.uk <unknown>
Tue, 26 Jun 2007 09:52:22 +0000 (09:52 +0000)
e.g. -- // ensures that _no_ preprocessor will try to tokenise the
rest of the line.

include/CTypes.h
include/Typeable.h

index eb1a38b..5ee8f48 100644 (file)
@@ -1,19 +1,22 @@
-{- -----------------------------------------------------------------------------
- * Dirty CPP hackery for CTypes/CTypesISO
- *
- * (c) The FFI task force, 2000
- * -------------------------------------------------------------------------- -}
+{- --------------------------------------------------------------------------
+// Dirty CPP hackery for CTypes/CTypesISO
+//
+// (c) The FFI task force, 2000
+// --------------------------------------------------------------------------
+-}
 
 #ifndef CTYPES__H
 #define CTYPES__H
 
 #include "Typeable.h"
 
-{- As long as there is no automatic derivation of classes for newtypes we resort
-   to extremely dirty cpp-hackery.   :-P   Some care has to be taken when the
-   macros below are modified, otherwise the layout rule will bite you.-}
+{-
+// As long as there is no automatic derivation of classes for newtypes we resort
+// to extremely dirty cpp-hackery.   :-P   Some care has to be taken when the
+// macros below are modified, otherwise the layout rule will bite you.
+-}
 
-{- A hacked version for GHC follows the Haskell 98 version... -}
+-- // A hacked version for GHC follows the Haskell 98 version...
 #ifndef __GLASGOW_HASKELL__
 
 #define ARITHMETIC_TYPE(T,C,S,B) \
@@ -168,9 +171,7 @@ instance Storable T where { \
 
 #else /* __GLASGOW_HASKELL__ */
 
-{- GHC can derive any class for a newtype, so we make use of that
- * here...
- -}
+-- // GHC can derive any class for a newtype, so we make use of that here...
 
 #define ARITHMETIC_CLASSES  Eq,Ord,Num,Enum,Storable,Real
 #define INTEGRAL_CLASSES Bounded,Integral,Bits
index a9804d1..35de273 100644 (file)
@@ -1,14 +1,15 @@
-{- ----------------------------------------------------------------------------
- * Macros to help make Typeable instances.
- *
- * INSTANCE_TYPEABLEn(tc,tcname,"tc") defines
- *
- *     instance Typeable/n/ tc
- *     instance Typeable a => Typeable/n-1/ (tc a)
- *     instance (Typeable a, Typeable b) => Typeable/n-2/ (tc a b)
- *     ...
- *     instance (Typeable a1, ..., Typeable an) => Typeable (tc a1 ... an)
- * -------------------------------------------------------------------------- -}
+{- --------------------------------------------------------------------------
+// Macros to help make Typeable instances.
+//
+// INSTANCE_TYPEABLEn(tc,tcname,"tc") defines
+//
+//     instance Typeable/n/ tc
+//     instance Typeable a => Typeable/n-1/ (tc a)
+//     instance (Typeable a, Typeable b) => Typeable/n-2/ (tc a b)
+//     ...
+//     instance (Typeable a1, ..., Typeable an) => Typeable (tc a1 ... an)
+// --------------------------------------------------------------------------
+-}
 
 #ifndef TYPEABLE_H
 #define TYPEABLE_H
@@ -19,8 +20,8 @@ instance Typeable tycon where { typeOf _ = mkTyConApp tcname [] }
 
 #ifdef __GLASGOW_HASKELL__
 
--- For GHC, the extra instances follow from general instance declarations
--- defined in Data.Typeable.
+-- // For GHC, the extra instances follow from general instance declarations
+-- // defined in Data.Typeable.
 
 #define INSTANCE_TYPEABLE1(tycon,tcname,str) \
 tcname = mkTyCon str; \