6 IMPORTANT! If you put extra tabs/spaces in these macro definitions,
7 you will screw up the layout where they are used in case expressions!
9 (This is cpp-dependent, of course)
13 #ifdef __GLASGOW_HASKELL__
24 #define ASSERT(e) if (not (e)) then (assertPanic __FILE__ __LINE__) else
32 #define CAT2(a,b)a/**/b
35 #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 200
36 # define REALLY_HASKELL_1_3
38 # define IMPORT_DELOOPER(mod) import CAT2(mod,_1_3)
39 # define IMPORT_1_3(mod) import mod
40 # define _tagCmp compare
46 # define SYN_IE(a) a(..)
47 # define IMPORT_DELOOPER(mod) import mod
48 # define IMPORT_1_3(mod) {--}
50 #define IMP_Ubiq() IMPORT_DELOOPER(Ubiq)
51 #define CHK_Ubiq() IMPORT_DELOOPER(Ubiq)
53 #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 26
57 #if defined(__GLASGOW_HASKELL__)
60 #define IBOX(x) (I# (x))
61 #define _ADD_ `plusInt#`
62 #define _SUB_ `minusInt#`
63 #define _MUL_ `timesInt#`
64 #define _DIV_ `divInt#`
65 #define _QUOT_ `quotInt#`
66 #define _NEG_ negateInt#
73 #define FAST_BOOL Int#
76 #define _IS_TRUE_(x) ((x) `eqInt#` 1#)
78 #else {- ! __GLASGOW_HASKELL__ -}
95 #define FAST_BOOL Bool
98 #define _IS_TRUE_(x) (x)
100 #endif {- ! __GLASGOW_HASKELL__ -}
102 #if __GLASGOW_HASKELL__ >= 23
103 #define USE_FAST_STRINGS 1
104 #define FAST_STRING _PackedString
105 #define SLIT(x) (_packCString (A# x#))
106 #define _CMP_STRING_ cmpPString
107 #define _NULL_ _nullPS
109 #define _CONS_ _consPS
110 #define _HEAD_ _headPS
111 #define _TAIL_ _tailPS
112 #define _LENGTH_ _lengthPS
113 #define _PK_ _packString
114 #define _UNPK_ _unpackPS
115 #define _SUBSTR_ _substrPS
116 #define _APPEND_ `_appendPS`
117 #define _CONCAT_ _concatPS
119 #define FAST_STRING String
121 #define _CMP_STRING_ cmpString
127 #define _LENGTH_ length
129 #define _UNPK_ (\x->x)
130 #define _SUBSTR_ substr{-from Utils-}
132 #define _CONCAT_ concat