bool value::operator<(value const & other) const { if (get_name() == other.get_name()) return lt(other); else return get_name() < other.get_name(); }