class SpanImpl extends DataPointImpl implements Span {

	@SuppressWarnings("unchecked")
	@Override
	public <T extends Span> T union(T span) {

		DateTime start = null;
		DateTime end = null;
		start = this.date.getMillis() < span.getDate().getMillis() ? this.date : span.getDate();
		end = this.nextDate.getMillis() < span.getNextDate().getMillis() ? span.getNextDate() : this.nextDate;

		return (T) new SpanImpl(span.getPeriod(), start, end);

	}

	public  SpanImpl(Period period, DateTime d, DateTime next);
	public  SpanImpl(SpanImpl other);

}