q"      !L"Moment data type HRefinements work on a Moment, which is a UTCTime broken out into fields #$YYYY-January-dd %&' HH:MM:SS ()*+Recurrence data type 7This encapulates a point-in-time of a recurring series  from here we can compute the , and prev Recurrence -.defines the base frequency /the current moment A , startOfWeek :: WeekDay -- ^ used in calculations on a week & TODO: compute accurately when this & is another value than Monday ! ^ (RFC 5545 defaults to Monday) 0defines the step size 1&for values that would exceed the base ' frequency, we clip them to the freq  unless this is True Symbolic months. *TODO: Move this to a more general library  Symbolic week days. +Note: The first Day of the Week is Monday + TODO: Move this to a more general library 2$The base frequency of a Recurrence. )The frequencies are chosen fromRFC 5545. 3 every year 4 every month 5 every week 6 every day 7 every hour 8 every minute 9 every second :moment conversions ;<=Base +4 constructors. One for each of the Frequency types. >?@ABCDEFGHIJKRecurrence addition ,Forward and backward drivers. (Generate a infinite list of recurrences DTakes a list of rule parts and apply them over a list of Recurrence ( to generate a new list of Recurrence  !"  !"   !"   !L      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNtime-recurrence-0.1.1Data.Time.RecurrenceMonthDecemberNovemberOctober SeptemberAugustJulyJuneMayAprilMarchFebruaryJanuaryWeekDaySundaySaturdayFridayThursday WednesdayTuesdayMonday toUTCTimesecondlyminutelyhourlydailyweeklymonthlyyearlyrecur withRulesbyMonth byWeekNumber byYearDayMomentMyearmonthdayhourminutesecondyearDay RecurrencenextR frequency pointInTimeintervalrollOver FrequencyYearlyMonthlyWeeklyDailyHourlyMinutelySecondlymomentmomentToUTCTimeutcEpochmkR oneSecond oneMinuteoneHouroneDayoneWeekaddTime addUTCDays addMonthsClipaddMonthsRollOver addMonths addYearsClipaddYearsRollOveraddYears scaleUTCTime