type dictionary { behave 4 dictionary@ f(int&in) { repeat { string, ? } }; dictionary& opAssign(const dictionary &in); void set(const string &in, const ?&in); bool get(const string &in, ? &out) const; void set(const string &in, const int64&in); bool get(const string &in, int64 &out) const; void set(const string &in, const double&in); bool get(const string &in, double &out) const; bool exists(const string &in) const; bool isEmpty() const; uint getSize() const; bool delete(const string &in); void deleteAll(); string[]@ getKeys() const; dictionaryValue& opIndex(const string &in); const dictionaryValue& opIndex(const string &in) const; }