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
28 #define CHK_Ubiq() import Ubiq
30 #if defined(__GLASGOW_HASKELL__) && __GLASGOW_HASKELL__ >= 26
34 #if defined(__GLASGOW_HASKELL__)
37 #define IBOX(x) (I# (x))
38 #define _ADD_ `plusInt#`
39 #define _SUB_ `minusInt#`
40 #define _MUL_ `timesInt#`
41 #define _DIV_ `divInt#`
42 #define _QUOT_ `quotInt#`
43 #define _NEG_ negateInt#
50 #define FAST_BOOL Int#
53 #define _IS_TRUE_(x) ((x) `eqInt#` 1#)
55 #else {- ! __GLASGOW_HASKELL__ -}
72 #define FAST_BOOL Bool
75 #define _IS_TRUE_(x) (x)
77 #endif {- ! __GLASGOW_HASKELL__ -}
79 #if __GLASGOW_HASKELL__ >= 23
80 #define USE_FAST_STRINGS 1
81 #define FAST_STRING _PackedString
82 #define SLIT(x) (_packCString (A# x#))
83 #define _CMP_STRING_ cmpPString
84 #define _NULL_ _nullPS
86 #define _CONS_ _consPS
87 #define _HEAD_ _headPS
88 #define _TAIL_ _tailPS
89 #define _LENGTH_ _lengthPS
90 #define _PK_ _packString
91 #define _UNPK_ _unpackPS
92 #define _SUBSTR_ _substrPS
93 #define _APPEND_ `_appendPS`
94 #define _CONCAT_ _concatPS
96 #define FAST_STRING String
98 #define _CMP_STRING_ cmpString
104 #define _LENGTH_ length
106 #define _UNPK_ (\x->x)
107 #define _SUBSTR_ substr{-from Utils-}
109 #define _CONCAT_ concat