{-# OPTIONS -fplugin=WidgetRattus.Plugin #-} module WidgetRattus.Time ( Time(..), time, addTime, diffTime, module Data.Time.Clock ) where import WidgetRattus.Primitives import Data.Time.Clock import WidgetRattus.Plugin {-# ANN addTime AllowLazyData #-} addTime :: NominalDiffTime -> Time -> Time addTime :: NominalDiffTime -> Time -> Time addTime NominalDiffTime diff (Time Day d DiffTime t) = let UTCTime Day d' DiffTime t' = NominalDiffTime -> UTCTime -> UTCTime addUTCTime NominalDiffTime diff (Day -> DiffTime -> UTCTime UTCTime Day d DiffTime t) in Day -> DiffTime -> Time Time Day d' DiffTime t' {-# ANN diffTime AllowLazyData #-} diffTime :: Time -> Time -> NominalDiffTime diffTime :: Time -> Time -> NominalDiffTime diffTime (Time Day d1 DiffTime t1) (Time Day d2 DiffTime t2) = UTCTime -> UTCTime -> NominalDiffTime diffUTCTime (Day -> DiffTime -> UTCTime UTCTime Day d1 DiffTime t1) (Day -> DiffTime -> UTCTime UTCTime Day d2 DiffTime t2)