public boolean contains(Temporal temporal) {
		if (null == temporal) return false;
		if (this == temporal) return true;
		if (isTimeInstance()) {
			return temporal.isTimeInstance() ? startTime == temporal.startTime : false;
		} else {
			if (temporal.isTimeInstance()) return !(startTime > temporal.startTime || temporal.endTime >= endTime);
			return !(startTime > temporal.startTime || temporal.endTime > endTime);
		}
	}