anchor.diff:        nextToken() |> ensureEquals
         let first = ParaValue.Record(parseObject firstKey)
         nextToken() |> ignore
  -      ParaValue.Array(parseArrayFirst first)
  +      Common.parseArrayFirst first parseArray
       | BinaryToken.Token ->
         nextToken() |> ensureEquals
         ParaValue.Record(parseObject tokenString)
  
positive.code:       skipEmptyObjects()
      pairs.ToArray()
  
    and parseArrayFirst first =
      let values = ResizeArray<_>()
      values.Add(first)
      parseArray(values)
  
    and parseArray (values:ResizeArray<_>) =
      while not (endGroup tok) do
        values.Add(parseValue())
  
negative.code:       else
          trim fillBuffer
          match (stream.Peek()) with
          | 125 -> parseArrayElem (ParaValue.Array ([| narrowBuffer() |]))
  
          // An equals sign means we are parsing an object
          | 61 ->
              parseObject (bufferToString()) (fun (stream:PeekingStream) -> stream.Peek() = 125)
              |> parseArrayElem
          | _ -> // parse list
            skipWhitespace stream
            parseArrayElem (Common.parseArrayFirst (narrowBuffer()) parseArray)
  
      // A quote means a quoted list
      | 34 -> ParaValue.Array(parseArray(ResizeArray<_>()))
  
      // Else we are not quite sure what we are parsing, so we need more info
      | _ -> parseContainerContents()
  