a06d2cf9

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

ical-recurrence: keep the week day of a numeric BYDAY

GREEN for the test in the previous commit.  'FREQ=DAILY;BYDAY=2MO' now
matches Mondays instead of every day.

A numeric BYDAY at a frequency other than MONTHLY or YEARLY is forbidden,
so it was dropped whole.  Dropping it whole left the day filter empty, and
an empty day filter is no restriction, so the recurrence set came out
wider than the rule asked for rather than narrower.  Keeping the week day
and discarding only the number is what the unnumbered form already means,
and is how 'byEveryWeekDayWeek' repairs the same shape.

'RecurrenceByDayNumeric' is still emitted, so a conforming run still
refuses the rule and only a lenient run gets the repaired week day.

'Data.Maybe' goes with 'catMaybes': nothing in the module needs it now
that no rule part is dropped.

Suite timing

Time to Start Worker time Duration Time to finish Idle
Config 0s 1s 1s 1s 0s
Eval 1s 11s 11s 13s 0s
Build 12s 4m11s 1m46s 1m59s 0s
Suite 0s 4m24s 1m58s 1m59s 0s

Timeline

0s10s20s30s40s50s1m1m10s1m20s1m30s1m40s1m50s