class GeoId implements Serializable, Comparable<GeoId> {

	@Pure
	@Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (obj instanceof GeoId) {
			return this.id.equals(((GeoId) obj).id);
		}
		if (obj instanceof UUID) {
			return toUUID().equals(obj);
		}
		if (obj instanceof GeoLocation) {
			return this.id.equals(((GeoLocation) obj).toGeoId().id);
		}
		return this.id.equals(obj.toString());
	}

	  GeoId(String id);
	  GeoId(double lowerx, double lowery, double upperx, double uppery, String id);

}