anchor.diff:  
       // Advance reader to the next token
       nextToken() |> ignore
  -
       pairs.Add((firstKey, parseValue()))
       nextToken() |> ignore
       
  
positive.code:     | BinaryToken.OpenGroup -> parseSubgroup()
      | x -> failwithf "Unexpected token %s" (x.ToString())
  
    and parseSubgroup () =
      match (nextToken()) with
      | BinaryToken.Int(x) ->
  
negative.code:       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)
  