86a43985

By: Greg Pfeil <greg@technomadic.org>

Extend `CyclicCalendar`

This adds two more primitive operations to `CyciicCalendar`: `cycleLength` and
`ordinal`, which then allows a default implementation of `onOrBefore`.

It also generalizes a number of previously `DayOfWeek`-specific operations to
work for any `CyclicCalendar`.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 2s 2s 2s 4s 2s
Eval 4s 4m05s 4m05s 4m09s 0s
Build 1m35s 20m50s 4m59s 6m35s 0s
Suite 2s 24m58s 6m33s 6m35s 2s

Timeline

0s1m2m3m4m5m6m