This was one of the trickier bits. The solution I ended up with is converting new lines into breaks in the ast, by replacing them in the lexing stage with a close paren followed by an open one. This will probably prove to be annoying as I introduce functions that expect certain numbers/types of arguments. I shall have to think about how to avoid that!
This turned out to be quite frustrating and so I removed it. I figure its more of a concern for printing than for parsing and so I left the newlines in (when there are two of them) for the astToHTml printer to deal with.