| 175 | } |
| 176 | |
| 177 | bool operator<(const value& x, const value& y) { |
| 178 | if (x.empty() && y.empty()) return false; |
| 179 | if (x.empty()) return true; // empty is < !empty |
| 180 | return compare(x, y) < 0; |
| 181 | } |
| 182 | |
| 183 | std::ostream& operator<<(std::ostream& o, const value& x) { |
| 184 | if (type_id_is_scalar(x.type())) |