bool boolean::operator==(const data &other) const { if (type() == other.type()) return (value == other.as_boolean().value); return false; }
bool boolean::operator<(const data &other) const { if (type() == other.type()) return (value < other.as_boolean().value); return type() < other.type(); }