Modules
A three-layer library for time: calendar things, sets of them, and concrete intervals.
One calendar, checked at the door: Calendar.ISO.
The linear kernel: sets of concrete intervals on one axis, with union, intersection, complement, and difference.
A calendar point: a concrete or abstract "thing about time".
Raised (or returned) when two points do not compose.
Sets of instants built from calendar points: arcs, unions, intersections, complements, and ordinal selection.
A directed span between two bounds of the same form, with per-side closings, a step, and an overflow policy.