úÎM¥IÁ?      !"#$%&'()*+,-./0123456789:;<=>(C) 2013 Jann Mueller BSD3 (see the file LICENSE) j.mueller.11@ucl.ac.uk  experimental  Safe-Inferred24HM4IntervalSequences that can be evaluated repeatedly. EA sequence of intervals, starting from a point. If the argument to  nextIntervalR is part of an interval, then the result should be the interval containing it. A sequence with no occurrences =Occurrences from both intervals. The difference between union and diag is that union( preserves the order of the results 7Merge two sequences into one by switching between them #End a sequence after n occurrences Repeat a point infinitely FTake occurrences until an interval containing the argument is reached ]Take occurrences until an interval whose supremum is greater than the argument is reached. PStop as soon as a result greater than or equal to the parameter is produced ,Prepend an interval to an interval sequence Take every nth occurrence )Accept results which satisfy a condition 4Check if a point is covered by an interval sequence 3The sequence of occurrences from an initial point. @Elements covered by an interval sequence from an initial point. +Skip the first n occurrences of a sequence =Skip intervals until the infimum of the argument is reached. \If the intervals in the sequence are not ordered, then this function might not terminate. RSkip over a point in the sequence. All occurrences of this datum are removed. 4Skip over all intervals which contain the parameter USearch for the first result within the specified interval, starting from a point. \If the intervals in the sequence are not ordered, then this function might not terminate. +Return intervals that are exactly the same  ?   ?(C) 2013 Jann Mueller BSD3 (see the file LICENSE) j.mueller.11@ucl.ac.uk  experimental None+HA DatePattern describes a sequence of intervals of type Data.Thyme.Day. "An event that occurs every month. Every January. Every February.  Every March.  Every April.  Every May. ! Every June. " Every July. #Every August. $Every September. %Every October. &Every November. 'Every December. ( An event that occurs every day. )Every Monday. *Every Tuesday. +Every Wednesday. ,Every Thursday. -Every Friday. .Every Saturday. /Every Sunday. 0Weeks, starting on Monday 1Weeks, starting on Sunday. 2Years, starting from Jan. 1 3NThe first pattern repeated for each interval of the second pattern. E.g.:  ((take 3 $ every 4 monday) `inEach` year >will give the fourth, eighth and twelveth Monday in each year @like inEach, except that the ``inner``’ DatePattern is replaced by a sequence of DatePatterns so that for every new outer interval, the next element from the sequence will be used. 4)Shift all the results by a number of day AAdd a number of day to a day 5Take every nth occurrence 6Stop after n occurrences 7Skip the first n occurrences 8‰Skip over all occurrences of a day. If the pattern describes a period longer than a day, the entire period will be skipped. 9,Check if a date is covered by a DatePattern :6Get occurrences of an event starting with a given day ;An event that never occurs <:Return only occurrences that are present in both patterns  Slet myBirthday = (take 1 day) `inEach` august let s = intersect myBirthday sunday 8Will return August 1 in years when it falls on a Sunday =Occurrences of both patterns.  union april june 3Will return the months April and June in each year  let fifteenth = (take 1 $ skip 14 day) `inEach` month let third = (take 1 $ skip 2 day) `inEach` month union fifteenth third /Will return the 3rd and the 15th of each month >XGet the date intervals described by the pattern, starting from the specified date. rThe intervals range from the first day included by the pattern to the first day after it, so a single day d would be described as (d ... succ d)f and the interval for a month will go from the 1st of the month to the 1st of the next month. B^Check if a day interval covers exactly a given weekday with Monday = 1, Tuesday = 2, etc. C*Get the last Monday before or on the date D*Get the last Monday before or on the date EGet the beginning of a year 1 !"#$%&'()*+,-./0123@4A56789:;<=>BCDEFGHIJK% !"#$%&'()*+,-./0123456789:;<=>%(012 !"#$%&')*+,-./;543678<=9:>1 !"#$%&'()*+,-./0123@4A56789:;<=>BCDEFGHIJKL      !"#$%&'()*+,-./0123456 789:;<=>?@ABCDEFtime-patterns-0.1.3.1Data.Time.Patterns.InternalData.Time.PatternsIntervalSequence'IntervalSequence nextInterval mapSequenceneveruniondiagtakecyclestopAtstopAt'beforeandTheneveryfilter elementOfoccurrencesFrom elementsFromskip skipUntilexceptexcept'firstOccurrenceIn intersectelements DatePatternmonthjanuaryfebruarymarchaprilmayjunejulyaugust septemberoctobernovemberdecemberdaymondaytuesday wednesdaythursdayfridaysaturdaysunday mondayWeek sundayWeekyearinEachshiftBy instancesFrom intervalsFrom$fMonoidIntervalSequenceinEach'addDays isDayOfWeek lastMonday lastSundayjan1addYears addMonths firstOfMonth get1stOfMonthgetMonth monthOfYear