{-# LANGUAGE Safe #-}moduleData.Time.LocalTime.Internal.CalendarDiffTime(-- * Calendar DurationmoduleData.Time.LocalTime.Internal.CalendarDiffTime ,)whereimportControl.DeepSeqimportData.DataimportData.FixedimportData.Time.Calendar.CalendarDiffDays importData.Time.Clock.Internal.NominalDiffTime dataCalendarDiffTime =CalendarDiffTime {CalendarDiffTime -> Integer ctMonths ::Integer,CalendarDiffTime -> NominalDiffTime ctTime ::NominalDiffTime }deriving(CalendarDiffTime -> CalendarDiffTime -> Bool (CalendarDiffTime -> CalendarDiffTime -> Bool) -> (CalendarDiffTime -> CalendarDiffTime -> Bool) -> Eq CalendarDiffTime forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: CalendarDiffTime -> CalendarDiffTime -> Bool $c/= :: CalendarDiffTime -> CalendarDiffTime -> Bool == :: CalendarDiffTime -> CalendarDiffTime -> Bool $c== :: CalendarDiffTime -> CalendarDiffTime -> Bool Eq,-- | @since 1.9.2Data,-- | @since 1.9.2Typeable)instanceNFDataCalendarDiffTime wherernf :: CalendarDiffTime -> () rnf(CalendarDiffTime Integer m NominalDiffTime t )=Integer -> () forall a. NFData a => a -> () rnfInteger m () -> () -> () `seq`NominalDiffTime -> () forall a. NFData a => a -> () rnfNominalDiffTime t () -> () -> () `seq`()-- | AdditiveinstanceSemigroupCalendarDiffTime whereCalendarDiffTime Integer m1 NominalDiffTime d1 <> :: CalendarDiffTime -> CalendarDiffTime -> CalendarDiffTime <>CalendarDiffTime Integer m2 NominalDiffTime d2 =Integer -> NominalDiffTime -> CalendarDiffTime CalendarDiffTime (Integer m1 Integer -> Integer -> Integer forall a. Num a => a -> a -> a +Integer m2 )(NominalDiffTime d1 NominalDiffTime -> NominalDiffTime -> NominalDiffTime forall a. Num a => a -> a -> a +NominalDiffTime d2 )-- | AdditiveinstanceMonoidCalendarDiffTime wheremempty :: CalendarDiffTime mempty=Integer -> NominalDiffTime -> CalendarDiffTime CalendarDiffTime Integer 0NominalDiffTime 0mappend :: CalendarDiffTime -> CalendarDiffTime -> CalendarDiffTime mappend=CalendarDiffTime -> CalendarDiffTime -> CalendarDiffTime forall a. Semigroup a => a -> a -> a (<>)instanceShowCalendarDiffTime whereshow :: CalendarDiffTime -> String show(CalendarDiffTime Integer m NominalDiffTime t )=String "P"String -> ShowS forall a. [a] -> [a] -> [a] ++Integer -> String forall a. Show a => a -> String showInteger m String -> ShowS forall a. [a] -> [a] -> [a] ++String "MT"String -> ShowS forall a. [a] -> [a] -> [a] ++Bool -> Fixed E12 -> String forall k (a :: k). HasResolution a => Bool -> Fixed a -> String showFixedBool True(NominalDiffTime -> Fixed E12 forall a b. (Real a, Fractional b) => a -> b realToFracNominalDiffTime t ::Pico)String -> ShowS forall a. [a] -> [a] -> [a] ++String "S"calendarTimeDays ::CalendarDiffDays ->CalendarDiffTime calendarTimeDays :: CalendarDiffDays -> CalendarDiffTime calendarTimeDays (CalendarDiffDays Integer m Integer d )=Integer -> NominalDiffTime -> CalendarDiffTime CalendarDiffTime Integer m (NominalDiffTime -> CalendarDiffTime) -> NominalDiffTime -> CalendarDiffTime forall a b. (a -> b) -> a -> b $Integer -> NominalDiffTime forall a. Num a => Integer -> a fromIntegerInteger d NominalDiffTime -> NominalDiffTime -> NominalDiffTime forall a. Num a => a -> a -> a *NominalDiffTime nominalDay calendarTimeTime ::NominalDiffTime ->CalendarDiffTime calendarTimeTime :: NominalDiffTime -> CalendarDiffTime calendarTimeTime NominalDiffTime dt =Integer -> NominalDiffTime -> CalendarDiffTime CalendarDiffTime Integer 0NominalDiffTime dt -- | Scale by a factor. Note that @scaleCalendarDiffTime (-1)@ will not perfectly invert a duration, due to variable month lengths.scaleCalendarDiffTime ::Integer->CalendarDiffTime ->CalendarDiffTime scaleCalendarDiffTime :: Integer -> CalendarDiffTime -> CalendarDiffTime scaleCalendarDiffTime Integer k (CalendarDiffTime Integer m NominalDiffTime d )=Integer -> NominalDiffTime -> CalendarDiffTime CalendarDiffTime (Integer k Integer -> Integer -> Integer forall a. Num a => a -> a -> a *Integer m )(Integer -> NominalDiffTime forall a. Num a => Integer -> a fromIntegerInteger k NominalDiffTime -> NominalDiffTime -> NominalDiffTime forall a. Num a => a -> a -> a *NominalDiffTime d )