anchor.diff:           | 'u'  ->
              (pipe4 hex hex hex hex <| fun d1 d2 d3 d4 ->
               let inline d d s =
  -              s * 16 + (if   '0' <= d && d <= '9' then int d - int '0'
  -                        elif 'a' <= d && d <= 'f' then int d - int 'a' + 10
  -                        else                           int d - int 'A' + 10)
  +              s * 16 + int d - (if   '0' <= d && d <= '9' then int '0'
  +                                elif 'a' <= d && d <= 'f' then int 'a' - 10
  +                                else                           int 'A' - 10)
               0 |> d d1 |> d d2 |> d d3 |> d d4 |> char) >>= app
            | c -> sprintf "Invalid escape: %A" c |> fail
         unescaped ()
  
positive.code:     let pString =
        skipChar '\"' >>= fun () ->
        let b = StringBuilder ()
        let inline app (c: char) = b.Append c |> ignore
        let rec unescaped () =
          anyChar >>= function
           | '\"' -> spaces >>% b.ToString ()
           | '\\' -> escaped ()
           | c -> app c ; unescaped ()
        and escaped () =
          let inline app (c: char) = app c ; unescaped ()
          anyChar >>= function
           | '\"' -> app '\"'
           | '\\' -> app '\\'
  
negative.code:            else
               let inline d x =
                 let c = (x >>> 12) &&& 0xF
                 (if c < 10 then int '0' else int 'a' - 10) + c |> char |> appc
                 x <<< 4
               apps "\\u"
               int c |> d |> d |> d |> d |> ignore
  