anchor.diff:      assert (stream.Peek() = 61)
       stream.Read() |> ignore
       skipWhitespace stream
  -    let value =
  -      match stream.Peek() with
  -      | 34 ->
  -        // Read through the quote
  -        stream.Read() |> ignore
  +    obj.Add(key, value)
   
  -        let q = self.quotedStringRead()
  -        match tryDate q with
  -        | Some(date) -> Pfdate date
  -        | None -> Pfstring q
  -      | 123 ->
  -        skipWhitespace stream
  -
  -        match stream.Peek() with
  -        | 125 -> // Empty object
  -          stream.Read() |> ignore
  -          PfObj (new Dictionary<string, PfData>(0))
  -        | 34 -> // Quoted date/string list
  -          Pfstring ""
  -        | _ -> self.ParseContainer()
  -      | _ ->
  -        Pfstring (self.readString())
  -    obj.Add(key, value)
  +  member self.Parse = self.ParseObject 
   
     member self.Obj () = PfObj obj
   
  
positive.code:   let MaxTokenSize = 256
    let (stringBuffer:char[]) = Array.zeroCreate MaxTokenSize
    let mutable stringBufferCount = 0
    let mutable obj = new Dictionary<string, PfData>()
  
    member self.readString () =
      let mutable isDone = false
  
negative.code: open System.Text
  open System.Collections.Generic
  
  [<RequireQualifiedAccess>]
  type ParaValue =
    | Bool of bool
    | Number of float
    | Date of DateTime
    | String of string
    | Array of elements:ParaValue[]
    | Record of properties:(string * ParaValue)[]
  
  
  let isspace (c:int) = c = 10 || c = 13 || c = 9 || c = 32
  