úÎ2-hK      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJNone 59;<=DRGeneral purpose newtype! wrappers for some commonly used  Data.Time» types. Helps to ensure you don't get your range ends mixed up, as well as providing some convenience when you only need to refer to particular levels of granularity in the time range.vInitial need of this library was only at the day and hour level, if there is a need more granular times can be added.%KLM NOPQRSTU"VW(XY./0123Z9:;<=>? "(./01239:;<=> "(./01239:;<=>KLM NOPQRSTU"VW(XY./0123Z9:;<=>?None 9:;<=DR B$Parse some common date formats to a Day Examples:dayParse "2017-01-09"Right 2017-01-09dayParse "09/01/2017"Right 2017-01-09dayParse "30/02/2017"\Left "Unable to parse Date Accepts [yyyy-mm-dd, yyyymmdd, mm/dd/yy, dd/mm/yyyy]: 30/02/2017"dayParse "20170109"Right 2017-01-09dayParse "010917"XLeft "Unable to parse Date Accepts [yyyy-mm-dd, yyyymmdd, mm/dd/yy, dd/mm/yyyy]: 010917"dayParse "02/13/17"Right 2017-02-13dayParse "2017-01-09"Right 2017-01-09CGiven a wrapped start and end Day, as well as a chosen Hour, create a pair of wrapped UTCTimeF values that represent their upper and lower values. Used internally.(boundFromWrapped startD endD startH endHG(LowerBound 2017-02-25 03:00:00 UTC,UpperBound 2017-02-27 05:00:00 UTC)D<Provide a range builder for any wrapped types that have an Ord instance.@wrappedRange (_Wrapped #) succ startH endH :: NonEmpty StartHour(StartHour 3 :| [StartHour 4,StartHour 5]@wrappedRange (_Wrapped #) succ endH startH :: NonEmpty StartHourStartHour 5 :| []ETry to read a String value into a NaturalB representing a whole hour, in 24 hour time. "1" .. "23" or "00"strToHourNatural "1"Right 1strToHourNatural "10"Right 10strToHourNatural "0"NLeft "Unable to parse 0 into acceptable hour value. Expected '1'-'23' or '00'"strToHourNatural "00"Right 0FConvenience function for  wrappedRange that provides a list of UTCTime< at hourly intervals between the given start and end times.GGiven two wrapped Day values, provide a NonEmpty" list of all the days in between.datesInRange startD endDFDayInRange 2017-02-25 :| [DayInRange 2017-02-26,DayInRange 2017-02-27]datesInRange endD startDDayInRange 2017-02-27 :| []H,From the given starting points, construct a Ranges> record with ranges and bounds constructed. Not providing an EndDate will use the  StartDate.Id ^. re _Day :: String "2017-02-25""2017-02-25" ^? _DayJust 2017-02-25J#d ^. re _Day :: (Integer, Int, Int) (2017,2,25).(2017 :: Integer, 2 :: Int, 25 :: Int) ^? _DayJust 2017-02-25.(2017 :: Integer, 2 :: Int, 35 :: Int) ^? _DayNothing @ABCDEFGHIJ @ABCDEFGH @AJIBCDEFGH @ABCDEFGHIJ[      !"#$%&'()*+,-./01123456789:;<=>?@ABCDEFGHIJKLM NOPQRSTUVW1haskell-time-range-0.2.0.1-LrprlwSncL9LkPDHdoaQBHData.Time.Range.TypesData.Time.Range StartDate $fEqStartDate$fShowStartDate$fGenericStartDateEndDate$fWrappedStartDate$fRewrappedStartDatet $fEqEndDate $fShowEndDate$fGenericEndDate DayInRange$fWrappedEndDate$fRewrappedEndDatet$fEqDayInRange$fShowDayInRange$fGenericDayInRange StartHour$fWrappedDayInRange$fRewrappedDayInRanget $fEqStartHour$fShowStartHour$fGenericStartHourEndHour$fWrappedStartHour$fRewrappedStartHourt $fEqEndHour $fShowEndHour$fGenericEndHourHour$fWrappedEndHour$fRewrappedEndHourt$fEqHour $fShowHour $fGenericHourLowerTimeBound $fWrappedHour$fRewrappedHourt$fShowLowerTimeBound$fEqLowerTimeBound$fGenericLowerTimeBoundUpperTimeBound$fWrappedLowerTimeBound$fRewrappedLowerTimeBoundt$fShowUpperTimeBound$fEqUpperTimeBound$fGenericUpperTimeBoundRanges_rangesLowerBound_rangesUpperBound_rangesDaysInRange_rangesUtcTimes$fWrappedUpperTimeBound$fRewrappedUpperTimeBoundt $fShowRanges $fEqRanges$fGenericRanges HasRangesrangesrangesDaysInRangerangesLowerBoundrangesUpperBoundrangesUtcTimes$fHasRangesRangesAsDay_DaydayParseboundFromWrapped wrappedRangestrToHourNatural utcRangeHours datesInRange buildRanges $fAsDaypf[] $fAsDaypf(,,)D:R:UnwrappedStartDateD:R:UnwrappedEndDateD:R:UnwrappedDayInRangeD:R:UnwrappedStartHourD:R:UnwrappedEndHour LowerBoundD:R:UnwrappedHour UpperBoundD:R:UnwrappedLowerTimeBoundD:R:UnwrappedUpperTimeBound