Maybe what's needed is a way to mutate the lexer by adding new kinds of literals; Unicode offers a number of paired brackets and quote-like characters.  Although that is likely to get into readability issues especially if you do have a mixture of [Char], ByteString, and Text for some reason.  (Map vs. [] is probably easy enough but add another one or two in and the sam problem rears its head quickly.)

--
brandon s allbery                                      allbery.b@gmail.com
wandering unix systems administrator (available)     (412) 475-9364 vm/sms