Currently the client code can create nonsensical intervals such as (10, -1) that will break other library code.
I think we can prevent that and have more consistent behavior. We can have
interval.New(start, end), where end<start is normalized to the canonical empty interval (0, -1)
private Interval.start/Interval.end, public Interval.Start() and Interval.End()
interval.ToSet() instead of interval.FromInterval(start end)
interval.intersection() returns empty interval when approriate instead of a slice of 0 or 1 items
interval.CanonicalSet should handle empty intervals gracefully
Currently the client code can create nonsensical intervals such as (10, -1) that will break other library code. I think we can prevent that and have more consistent behavior. We can have