This is an interesting case. So far, we have this mapNonDecreasing on intervals, but your point is nice: often a value in one case is a interval in the other. Such as: `Injection[BatchID, Interval[Timestamp]]`.

If [B1, B2), that means that you have `[least(time(B1)), least(time(B2)))`

Similarly:
```
[B1, B2] => [least(time(B1)), greatest(time(B2))]
(B1, B2) => [greatest(time(B1)), least(time(B2)))
etc…
```
I think this is a useful pattern. Consider The truncation of `Injection[Int, Interval[Double]]` 1 => [1.0, 2.0) for instance. Though, really we might want to loosen it to `Injection[Interval[Int], Interval[Double]]`, this is what it sounds like you were saying with supersets: If and interval is a super-interval of another, it means there is an `Injection[Interval[T], Interval[U]]` right?

I'd rather follow this up with more code moved from summingbird into this interval, successible, set of stuff. Can we do this in a next PR?