Correctly highlight comma-separated type declarations

Type declarations in Haskell may apply to more than one identifier, if the identifiers are separated by commas.
Highlight infix & prefix operators with all allowable characters

Haskell allows almost any Unicode "punctuation" or "symbol" character to be used in an operator; they are now highlighted correctly (except that some language-reserved operators may be allowed). This also corrects a bug in the interaction between operator-highlighting and comment-highlighting.
Highlight identifiers with all allowable letters

Haskell allows any Unicode letters (and underscores) to be used in identifiers; they are now highlighted correctly (except that some language-reserved operators such as a single "_" may be allowed).