When someone creates an interval  whose intersection is empty, i'm not sure we can change its type easily? Kind of like the pattern of the classes defining what it means locally