Tips for restricted source in Haskell
Break tokens with comments
A neat fact I discovered a little while ago (and the impetus for this sort of tips question in the first place), is that a block comment allows you to split tokens apart without a space.
For example if you want to write
main=interact tail

Without using whitespace, parentheses or $ you can do the following:
main=interact{--}tail

Here {--} is a block comment, which normally would do nothing, however here placed between interact and tail it serves to prevent the two as being parsed as a single token, interacttail.
This could also be used to split other kinds of tokens for example:
main=print${--}-3

Here we split the $ and the - without using spaces or parentheses.
data{--}K=K

Here we split a keyword from a type declaration (which unlike the earlier example cannot be done with $).
Pretty much anywhere you would use a space outside a String or Char literal you can use a block comment instead.