public boolean equals(Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof Value)) {
            return false;
        }
        Value v = (Value) o;
        if (!v.isIntegerValue()) {
            return false;
        }

        try {
            // TODO
            return value == v.asIntegerValue().getLong();
        } catch (MessageTypeException ex) {
            return false;
        }
    }