{-# LANGUAGE BangPatterns #-} module Test.Util.Time (dawnOfTime) where import Data.Time (UTCTime (..), fromGregorian) -- | Dawn of time -- -- Everybody knows nothing happened before 2000-01-01 00:00:00 dawnOfTime :: UTCTime dawnOfTime :: UTCTime dawnOfTime = Day -> DiffTime -> UTCTime UTCTime Day day DiffTime 0 where -- Force it to avoid a thunk in 'UTCTime', which doesn't have bangs on its -- arguments. The thunk itself would be harmless, as it would be forced the -- first time it's accessed, but it causes the 'NoThunks' check to fail. !day :: Day day = Year -> MonthOfYear -> MonthOfYear -> Day fromGregorian Year 2000 MonthOfYear 01 MonthOfYear 01