size_t operator ()(const symbol& x) const { return x.get_id(); }
bool operator ()(const symbol& x, const symbol& y) const { return x.get_id() == y.get_id(); }
size_t operator ()(const symbol& x) const { return x.get_id(); }
bool operator ()(const symbol& x, const symbol& y) const { return x.get_id() == y.get_id(); }