anchor.diff:      | 61 -> parseObject (bufferToString()) (fun (stream:PeekingStream) -> stream.Peek() = 125)
       | _ -> // parse list
         skipWhitespace stream
  -      let vals = ResizeArray<_>()
  -      vals.Add(narrowBuffer())
  -      parseArray vals
  -      ParaValue.Array (vals.ToArray())
  +      Common.parseArrayFirst (narrowBuffer()) parseArray
   
     and parseContainer () =
       skipWhitespace stream
  
positive.code:   // There is only two possible values for booleans, so cache these bad boys
    let ptrue = ParaValue.Bool true
    let pfalse = ParaValue.Bool false
  
  type private ParaParser (stream:PeekingStream) =
    // Caches that allow us to take the 64bit hash of a byte array of some
  
negative.code:   and parseArray (vals:ResizeArray<_>) =
      while (stream.Peek() <> 125) do
        vals.Add(trim parseValue)
      vals.ToArray()
  
    and parseArrayElem firstElem =
      assert (stream.Peek() = 125)
      stream.Read() |> ignore
      Common.parseArrayFirst firstElem parseArray
  
    and parseContainerContents() =
      // The first key or element depending on object or list
  