úÎ'p$Ä      non-portable experimental!Mihaly Barasz <mihaly@barasz.com>None &Type class that defines access to the "time" part of a type. BYou only need to define one of the two methods, whichever is more  natural. &Type class that defines access to the "date" part of a type. -You can implement either of the two methods. GType class to provide correct roll-over behavior for date-time lenses. +See examples in the general overview part. View  as an $ day number in the Julian calendar. )See the description at the definition of . View 8 as a triple of (year,month,day) in Gregorian calendar. )See the description at the definition of  / . Lens into the year value of a . 'Warning: this is not a proper lens for  and  : A it only obeys the lens laws if used with valid values. When the A year value in a date is modified the month and day values might A also change. This happens when the original date was a February ( 29th and we change to a non-leap year. Lens into the month value of a . 'Warning: this is not a proper lens for  and  : D it only obeys the lens laws if used with valid values. The updated D month value will be clipped to a valid month value. Also note that A the day value might also be modified (clipped to a valid day in  that month). Lens into the day value of a . 'Warning: this is not a proper lens for  and  : D it only obeys the lens laws if used with valid values. The updated = day value will be clipped to a valid day value in the given  year-month. Lens into the hour value of a . 'Warning: this is not a proper lens for  : it only obeys the & lens laws if used with valid values.  Lens into the minute value of a . 'Warning: this is not a proper lens for  : it only obeys the & lens laws if used with valid values.  Lens into the second value of a . 'Warning: this is not a proper lens for  : it only obeys the & lens laws if used with valid values. Trivial isomorphism between   and . We view / values as being in the UTC time zone. This is   applied to !. Isomorphism between   and  for the given  ". , #$%&'()*+,-./0123      #$%&'()*+,-./01234        !"!#$%&'()(*+,-./0123456789:;<lens-datetime-0.1Data.Time.LensTimeabletime timeAsDiffDateabledatedateFlexFlexibleDateTimeflexDTFlexTimeflexDateflexTODFlexDateflexYear flexMonthflexDay julianDay gregorianDateyearmonthdayhourminutesecond utcAsLocalutcInTZ time-1.4.0.1Data.Time.Calendar.DaysDay integer-gmpGHC.Integer.TypeIntegerData.Time.Calendar.Gregorian fromGregorian toGregorianData.Time.LocalTime.LocalTime LocalTimeData.Time.Clock.UTCUTCTimeData.Time.LocalTime.TimeZoneutcTimeZoneflexDateTriplegregorianUnflexdiffTOD$fTimeableFlexTime$fTimeableTimeOfDay$fTimeableLocalTime$fTimeableUTCTime$fDateableFlexTime$fDateableFlexDate $fDateableDay$fDateableLocalTime$fDateableUTCTime$fFlexibleDateTimeUTCTime$fFlexibleDateTimeLocalTime$fField3FlexDateFlexDateIntInt$fField2FlexDateFlexDateIntInt&$fField1FlexDateFlexDateIntegerInteger