- Multi-line string literals in Haskell require so-called "string gaps": one '\' character to terminate a line and another '\' to start the next line.
- With GHC, Haskell programs may be preprocessed with CPP, which coincidentally strips the "\ ... \" characters from the source, resulting in an illegal Haskell string literal.
- Mercifully, it also happens that CPP doesn't strip the characters if the first '\' character is followed by a space before the newline.
- But of course, a commonly used feature of emacs is to silently strip trailing whitespace at the end of lines on every save.
- Not that you can see the difference, given the well-known human limitations at visually distinguishing whitespace.
Sunday, March 23, 2008
Some tools just don't like each other