packages feed

time-1.16: lib/Data/Time/Clock/Internal/UniversalTime.hs

{-# LANGUAGE CPP #-}
{-# LANGUAGE Safe #-}

module Data.Time.Clock.Internal.UniversalTime where

import Control.DeepSeq
import Data.Data
import GHC.Generics
#if __GLASGOW_HASKELL__ >= 914
import qualified Language.Haskell.TH.Lift as TH
#else
import qualified Language.Haskell.TH.Syntax as TH
#endif

-- | The Modified Julian Date is the day with the fraction of the day, measured from UT midnight.
-- It's used to represent UT1, which is time as measured by the earth's rotation, adjusted for various wobbles.
newtype UniversalTime = ModJulianDate
    { getModJulianDate :: Rational
    }
    deriving (Eq, Ord, Typeable, Data, Generic, TH.Lift)

instance NFData UniversalTime where
    rnf (ModJulianDate a) = rnf a