
Hi list, My program needs to escape and unescape "special characters" in text (Data.Text.Text), using my own definition of "special character" (isSpecial :: Char -> Bool). I am looking for a library that provides functions that implement or help me implement this functionality. I don't really care exactly how the special characters are escaped, but my preference is to prefix them with backslashes. While "attoparsec" does technically answer my question, it is as unimpressive an answer as "Prelude" unless the answer comes with a particularly clever and concise parser that blows my mind (and then kudos to the author). I am looking for a higher level library where I don't need to re-invent this wheel. That is, I don't want to write an unescaping parser if somebody has already published one on Hackage in a clean, well-tested library. My searches on Hoogle have turned up only network-uri, which offers percent-encoding with the definition of "special character" accepted as an argument [1]. This is the sort of thing I am after, although to use network-uri I would have to round-trip via String, something that I feel I should avoid. Functions of text types that return lazy text builders would be ideal. Also, percent-encoding is not my favourite encoding scheme. Thanks in advance. [1] https://hackage.haskell.org/package/network-uri/docs/Network-URI.html#v:esca... -- Thomas Koster