anchor.diff:        ParaValue.Record(parseObject x)
       | x -> failwithf "Unexpected token %s" (x.ToString())    
   
  +  /// If the first token at the start of an object is a string then we are
  +  /// looking at an object or an array. This function will which of these
  +  /// options it is and return it
     and stringSubgroup first =
       match (nextToken()) with
       | BinaryToken.Equals -> ParaValue.Record(parseObject first)
  
positive.code:       nextToken() |> ignore
      values.ToArray()
  
    and parseValue () =
      match tok with
      | BinaryToken.Uint(x) ->
  
negative.code:     | BinaryToken.OpenGroup -> parseSubgroup()
      | x -> failwithf "Unexpected token %s" (x.ToString())
  
    /// Determines what type of object follows an OpenGroup token -- an array or
    /// object.
    and parseSubgroup () =
      match (nextToken()) with
      | BinaryToken.Int(x) ->
  