code: func (d *Decoder) Decode() (interface{}, error) {
  	val, err := d.any()
  	if err != nil {
  		return nil, err
  	}
  	if c := d.skipSpaces(); d.pos < d.end {
  		return nil, d.error(c, "after top-level value")
  	}
  	return val, nil
  }
docs: // Decode parses the JSON-encoded data and returns an interface value.
  // The interface value could be one of these:
  //
  //	bool, for JSON booleans
  //	float64, for JSON numbers
  //	string, for JSON strings
  //	[]interface{}, for JSON arrays
  //	map[string]interface{}, for JSON objects
  //	nil for JSON null
  //
  // Note that the Decode is compatible with the the following
  // insructions:
  //
  //	var v interface{}
  //	err := json.Unmarshal(data, &v)
  //