Haskell: renamed class names to prevent possible conflicts with the user code.
Haskell: removed `not` function from the keywords.
Haskell: more keywords and highlighting (need tests).
Haskell: bug fixes.

  1. `moduleA`, `importA`, etc. highlighted as `module`, `import`, etc.
  2. Characters don't working (deleted).
Haskell: bug fix: preprocessor and MagicHash conflict solved.
Haskell: style fix: no need to escape spaces.
Haskell: bug fix: PRAGMA/RECORD priority.
Refactored selectStream to get less indented code.
Renamed stream1, stream2 to original, highlighted.
Working implementation of original-preserving stream merge.
Still need to fix useless closing/reopening of highlighted stack
on glued together original tags.
More succinct logic in mergeStreams.
Delayed stack restore.

Restoring of highlighted nodes stack is delayed until
interesting events:

- new highlighted node is opening
- new text content is rendered
Lowercasing opening node in mergeStream.
Haskell: back to original class names.
Updated Haskell section in classref.txt.
Embedded node stack backup/restore into a single place of the
merging loop.
Slight refactoring for readability.
Embedding `result +=` into "open" and "close" for consistency.
Some more readability improvements with the magic of forEach.
Haskell: fixed problem with VARIABLE.