stringLit :: Parser BB.Builder
stringLit =
  do
    quote <- 
      char '"' <|> char '\''
    contentBuilders <- 
      many $ 
        (BB.byteString <$> string "\\\\") <|> 
        (BB.byteString <$> string (fromString ['\\', quote])) <|> 
        (BB.char8 <$> notChar quote)
    char quote
    return $
      BB.char7 quote <> mconcat contentBuilders <> BB.char7 quote
stringLit :: Parser BB.Builder
stringLit =
  do
    quote <- 
      char '"' <|> char '\''
    contentBuilders <- 
      many $ 
        (BB.byteString <$> string "\\\\") <|> 
        (BB.byteString <$> string (fromString ['\\', quote])) <|> 
        (BB.char8 <$> notChar quote)
    char quote
    return $
      BB.char7 quote <> mconcat contentBuilders <> BB.char7 quote
stringLit =
  do
    quote <- 
      char '"' <|> char '\''
    contentBuilders <- 
      many $ 
        (BB.byteString <$> string "\\\\") <|> 
        (BB.byteString <$> string (fromString ['\\', quote])) <|> 
        (BB.char8 <$> notChar quote)
    char quote
    return $
      BB.char7 quote <> mconcat contentBuilders <> BB.char7 quote