/* 1. C comments should be deleted by the preprocessor */
/* 2. repeated expansion */
#define FOO 4
#define BAR FOO
f = BAR
/* 3. continuation lines in macros shouldn't give newlines */
#define LONG_MACRO \
{ putStr "Hello "; \
putStrLn "World" }
g = do LONG_MACRO
/* 4. projection macros */
#define MACRO(x) x
h = MACRO(FOO)
|