Parsing strings with escaped characters using Parsec
Some suggestions:


Replace fst and snd with a pattern match or explicit function arguments.
Extract the common char '\\' parser. You can then avoid the try.
Strings with lots of escaped characters are hard to read and it's hard to visually
verify that the escape codes are correctly matched with their replacements. Consider
spelling them out and aligning them to make this easy to see. 


Here's what I came up with:

escaped = char '\\' &gt;&gt; choice (zipWith escapedChar codes replacements)
escapedChar code replacement = char code &gt;&gt; return replacement
codes        = ['b',  'n',  'f',  'r',  't',  '\\', '\"', '/']
replacements = ['\b', '\n', '\f', '\r', '\t', '\\', '\"', '/']