Ticket #4168 (closed feature request: fixed)
Add StringPrimL to template-haskell
In designing a template haskell lexer, you cannot get the same performance as alex, due to the fact that you cannot encode a "string"# literal to house the lookup tables for the encoded lexer.
Proposal: add "string"# literals to template-haskell as StringPrimL (or another suitable constructor) to Lit.
Then the quasiquoter can emit a data type that contains Addr# references to the link-time-locatable "string"#s permitting constant folding and inlining away the particular link time choice of Addr#.