
On Thu, Feb 08, 2024 at 03:09:37PM +0000, Matthew Pickering wrote:
I would imagine you modify the lexer like you describe, but it's not clear to me you want to use the same constructor `HsString` to represent them all the way through the compiler.
If you reuse HsString then how to you distinguish between a string which contains a newline and a multi-line string for example? It just seems simpler to me to explicitly represent a multi-line string.. perhaps `HsMultiLineString [String]` rather than trying to shoehorn them together and run into subtle bugs like this.
Compiler-aside, how first-class are multi-line strings expected to be? Should `Read` instances also be able to handle multi-line strings? Arguably, valid source syntax should be valid syntax for `Read`? -- Viktor.