{-# LANGUAGE Trustworthy #-}moduleData.Time.Clock.Internal.DiffTime(-- * Absolute intervalsDiffTime ,secondsToDiffTime ,picosecondsToDiffTime ,diffTimeToPicoseconds ,)whereimportControl.DeepSeqimportData.DataimportData.FixedimportGHC.ReadimportText.ParserCombinators.ReadPimportText.ParserCombinators.ReadPrec-- | This is a length of time, as measured by a clock.-- Conversion functions such as 'fromInteger' and 'realToFrac' will treat it as seconds.-- For example, @(0.010 :: DiffTime)@ corresponds to 10 milliseconds.---- It has a precision of one picosecond (= 10^-12 s). Enumeration functions will treat it as picoseconds.newtypeDiffTime =MkDiffTime Picoderiving(DiffTime -> DiffTime -> Bool
(DiffTime -> DiffTime -> Bool)
-> (DiffTime -> DiffTime -> Bool) -> Eq DiffTime
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: DiffTime -> DiffTime -> Bool
$c/= :: DiffTime -> DiffTime -> Bool
== :: DiffTime -> DiffTime -> Bool
$c== :: DiffTime -> DiffTime -> Bool
Eq,Eq DiffTime
Eq DiffTime
-> (DiffTime -> DiffTime -> Ordering)
-> (DiffTime -> DiffTime -> Bool)
-> (DiffTime -> DiffTime -> Bool)
-> (DiffTime -> DiffTime -> Bool)
-> (DiffTime -> DiffTime -> Bool)
-> (DiffTime -> DiffTime -> DiffTime)
-> (DiffTime -> DiffTime -> DiffTime)
-> Ord DiffTime
DiffTime -> DiffTime -> Bool
DiffTime -> DiffTime -> Ordering
DiffTime -> DiffTime -> DiffTime
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: DiffTime -> DiffTime -> DiffTime
$cmin :: DiffTime -> DiffTime -> DiffTime
max :: DiffTime -> DiffTime -> DiffTime
$cmax :: DiffTime -> DiffTime -> DiffTime
>= :: DiffTime -> DiffTime -> Bool
$c>= :: DiffTime -> DiffTime -> Bool
> :: DiffTime -> DiffTime -> Bool
$c> :: DiffTime -> DiffTime -> Bool
<= :: DiffTime -> DiffTime -> Bool
$c<= :: DiffTime -> DiffTime -> Bool
< :: DiffTime -> DiffTime -> Bool
$c< :: DiffTime -> DiffTime -> Bool
compare :: DiffTime -> DiffTime -> Ordering
$ccompare :: DiffTime -> DiffTime -> Ordering
$cp1Ord :: Eq DiffTime
Ord,Typeable DiffTime
DataType
Constr
Typeable DiffTime
-> (forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> DiffTime -> c DiffTime)
-> (forall (c :: * -> *).
 (forall b r. Data b => c (b -> r) -> c r)
 -> (forall r. r -> c r) -> Constr -> c DiffTime)
-> (DiffTime -> Constr)
-> (DiffTime -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
 Typeable t =>
 (forall d. Data d => c (t d)) -> Maybe (c DiffTime))
-> (forall (t :: * -> * -> *) (c :: * -> *).
 Typeable t =>
 (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DiffTime))
-> ((forall b. Data b => b -> b) -> DiffTime -> DiffTime)
-> (forall r r'.
 (r -> r' -> r)
 -> r -> (forall d. Data d => d -> r') -> DiffTime -> r)
-> (forall r r'.
 (r' -> r -> r)
 -> r -> (forall d. Data d => d -> r') -> DiffTime -> r)
-> (forall u. (forall d. Data d => d -> u) -> DiffTime -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> DiffTime -> u)
-> (forall (m :: * -> *).
 Monad m =>
 (forall d. Data d => d -> m d) -> DiffTime -> m DiffTime)
-> (forall (m :: * -> *).
 MonadPlus m =>
 (forall d. Data d => d -> m d) -> DiffTime -> m DiffTime)
-> (forall (m :: * -> *).
 MonadPlus m =>
 (forall d. Data d => d -> m d) -> DiffTime -> m DiffTime)
-> Data DiffTime
DiffTime -> DataType
DiffTime -> Constr
(forall b. Data b => b -> b) -> DiffTime -> DiffTime
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DiffTime -> c DiffTime
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DiffTime
forall a.
Typeable a
-> (forall (c :: * -> *).
 (forall d b. Data d => c (d -> b) -> d -> c b)
 -> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
 (forall b r. Data b => c (b -> r) -> c r)
 -> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
 Typeable t =>
 (forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
 Typeable t =>
 (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
 (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
 (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
 Monad m =>
 (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
 MonadPlus m =>
 (forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
 MonadPlus m =>
 (forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u. Int -> (forall d. Data d => d -> u) -> DiffTime -> u
forall u. (forall d. Data d => d -> u) -> DiffTime -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DiffTime -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DiffTime -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> DiffTime -> m DiffTime
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> DiffTime -> m DiffTime
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DiffTime
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DiffTime -> c DiffTime
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c DiffTime)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DiffTime)
$cMkDiffTime :: Constr
$tDiffTime :: DataType
gmapMo :: (forall d. Data d => d -> m d) -> DiffTime -> m DiffTime
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> DiffTime -> m DiffTime
gmapMp :: (forall d. Data d => d -> m d) -> DiffTime -> m DiffTime
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> DiffTime -> m DiffTime
gmapM :: (forall d. Data d => d -> m d) -> DiffTime -> m DiffTime
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> DiffTime -> m DiffTime
gmapQi :: Int -> (forall d. Data d => d -> u) -> DiffTime -> u
$cgmapQi :: forall u. Int -> (forall d. Data d => d -> u) -> DiffTime -> u
gmapQ :: (forall d. Data d => d -> u) -> DiffTime -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> DiffTime -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DiffTime -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> DiffTime -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DiffTime -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> DiffTime -> r
gmapT :: (forall b. Data b => b -> b) -> DiffTime -> DiffTime
$cgmapT :: (forall b. Data b => b -> b) -> DiffTime -> DiffTime
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DiffTime)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DiffTime)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c DiffTime)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c DiffTime)
dataTypeOf :: DiffTime -> DataType
$cdataTypeOf :: DiffTime -> DataType
toConstr :: DiffTime -> Constr
$ctoConstr :: DiffTime -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DiffTime
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c DiffTime
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DiffTime -> c DiffTime
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> DiffTime -> c DiffTime
$cp1Data :: Typeable DiffTime
Data,Typeable)instanceNFDataDiffTime wherernf :: DiffTime -> ()
rnf(MkDiffTime Pico
t )=Pico -> ()
forall a. NFData a => a -> ()
rnfPico
t instanceEnumDiffTime wheresucc :: DiffTime -> DiffTime
succ(MkDiffTime Pico
a )=Pico -> DiffTime
MkDiffTime (Pico -> Pico
forall a. Enum a => a -> a
succPico
a )pred :: DiffTime -> DiffTime
pred(MkDiffTime Pico
a )=Pico -> DiffTime
MkDiffTime (Pico -> Pico
forall a. Enum a => a -> a
predPico
a )toEnum :: Int -> DiffTime
toEnum=Pico -> DiffTime
MkDiffTime (Pico -> DiffTime) -> (Int -> Pico) -> Int -> DiffTime
forall b c a. (b -> c) -> (a -> b) -> a -> c
.Int -> Pico
forall a. Enum a => Int -> a
toEnumfromEnum :: DiffTime -> Int
fromEnum(MkDiffTime Pico
a )=Pico -> Int
forall a. Enum a => a -> Int
fromEnumPico
a enumFrom :: DiffTime -> [DiffTime]
enumFrom(MkDiffTime Pico
a )=(Pico -> DiffTime) -> [Pico] -> [DiffTime]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmapPico -> DiffTime
MkDiffTime (Pico -> [Pico]
forall a. Enum a => a -> [a]
enumFromPico
a )enumFromThen :: DiffTime -> DiffTime -> [DiffTime]
enumFromThen(MkDiffTime Pico
a )(MkDiffTime Pico
b )=(Pico -> DiffTime) -> [Pico] -> [DiffTime]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmapPico -> DiffTime
MkDiffTime (Pico -> Pico -> [Pico]
forall a. Enum a => a -> a -> [a]
enumFromThenPico
a Pico
b )enumFromTo :: DiffTime -> DiffTime -> [DiffTime]
enumFromTo(MkDiffTime Pico
a )(MkDiffTime Pico
b )=(Pico -> DiffTime) -> [Pico] -> [DiffTime]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmapPico -> DiffTime
MkDiffTime (Pico -> Pico -> [Pico]
forall a. Enum a => a -> a -> [a]
enumFromToPico
a Pico
b )enumFromThenTo :: DiffTime -> DiffTime -> DiffTime -> [DiffTime]
enumFromThenTo(MkDiffTime Pico
a )(MkDiffTime Pico
b )(MkDiffTime Pico
c )=(Pico -> DiffTime) -> [Pico] -> [DiffTime]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmapPico -> DiffTime
MkDiffTime (Pico -> Pico -> Pico -> [Pico]
forall a. Enum a => a -> a -> a -> [a]
enumFromThenToPico
a Pico
b Pico
c )instanceShowDiffTime whereshow :: DiffTime -> String
show(MkDiffTime Pico
t )=(Bool -> Pico -> String
forall k (a :: k). HasResolution a => Bool -> Fixed a -> String
showFixedBool
TruePico
t )String -> ShowS
forall a. [a] -> [a] -> [a]
++String
"s"instanceReadDiffTime wherereadPrec :: ReadPrec DiffTime
readPrec=doPico
t <-ReadPrec Pico
forall a. Read a => ReadPrec a
readPrecChar
_<-ReadP Char -> ReadPrec Char
forall a. ReadP a -> ReadPrec a
lift(ReadP Char -> ReadPrec Char) -> ReadP Char -> ReadPrec Char
forall a b. (a -> b) -> a -> b
$Char -> ReadP Char
charChar
's'DiffTime -> ReadPrec DiffTime
forall (m :: * -> *) a. Monad m => a -> m a
return(DiffTime -> ReadPrec DiffTime) -> DiffTime -> ReadPrec DiffTime
forall a b. (a -> b) -> a -> b
$Pico -> DiffTime
MkDiffTime Pico
t instanceNumDiffTime where(MkDiffTime Pico
a )+ :: DiffTime -> DiffTime -> DiffTime
+(MkDiffTime Pico
b )=Pico -> DiffTime
MkDiffTime (Pico
a Pico -> Pico -> Pico
forall a. Num a => a -> a -> a
+Pico
b )(MkDiffTime Pico
a )- :: DiffTime -> DiffTime -> DiffTime
-(MkDiffTime Pico
b )=Pico -> DiffTime
MkDiffTime (Pico
a Pico -> Pico -> Pico
forall a. Num a => a -> a -> a
-Pico
b )(MkDiffTime Pico
a )* :: DiffTime -> DiffTime -> DiffTime
*(MkDiffTime Pico
b )=Pico -> DiffTime
MkDiffTime (Pico
a Pico -> Pico -> Pico
forall a. Num a => a -> a -> a
*Pico
b )negate :: DiffTime -> DiffTime
negate(MkDiffTime Pico
a )=Pico -> DiffTime
MkDiffTime (Pico -> Pico
forall a. Num a => a -> a
negatePico
a )abs :: DiffTime -> DiffTime
abs(MkDiffTime Pico
a )=Pico -> DiffTime
MkDiffTime (Pico -> Pico
forall a. Num a => a -> a
absPico
a )signum :: DiffTime -> DiffTime
signum(MkDiffTime Pico
a )=Pico -> DiffTime
MkDiffTime (Pico -> Pico
forall a. Num a => a -> a
signumPico
a )fromInteger :: Integer -> DiffTime
fromIntegerInteger
i =Pico -> DiffTime
MkDiffTime (Integer -> Pico
forall a. Num a => Integer -> a
fromIntegerInteger
i )instanceRealDiffTime wheretoRational :: DiffTime -> Rational
toRational(MkDiffTime Pico
a )=Pico -> Rational
forall a. Real a => a -> Rational
toRationalPico
a instanceFractionalDiffTime where(MkDiffTime Pico
a )/ :: DiffTime -> DiffTime -> DiffTime
/(MkDiffTime Pico
b )=Pico -> DiffTime
MkDiffTime (Pico
a Pico -> Pico -> Pico
forall a. Fractional a => a -> a -> a
/Pico
b )recip :: DiffTime -> DiffTime
recip(MkDiffTime Pico
a )=Pico -> DiffTime
MkDiffTime (Pico -> Pico
forall a. Fractional a => a -> a
recipPico
a )fromRational :: Rational -> DiffTime
fromRationalRational
r =Pico -> DiffTime
MkDiffTime (Rational -> Pico
forall a. Fractional a => Rational -> a
fromRationalRational
r )instanceRealFracDiffTime whereproperFraction :: DiffTime -> (b, DiffTime)
properFraction(MkDiffTime Pico
a )=let(b
b' ,Pico
a' )=Pico -> (b, Pico)
forall a b. (RealFrac a, Integral b) => a -> (b, a)
properFractionPico
a in(b
b' ,Pico -> DiffTime
MkDiffTime Pico
a' )truncate :: DiffTime -> b
truncate(MkDiffTime Pico
a )=Pico -> b
forall a b. (RealFrac a, Integral b) => a -> b
truncatePico
a round :: DiffTime -> b
round(MkDiffTime Pico
a )=Pico -> b
forall a b. (RealFrac a, Integral b) => a -> b
roundPico
a ceiling :: DiffTime -> b
ceiling(MkDiffTime Pico
a )=Pico -> b
forall a b. (RealFrac a, Integral b) => a -> b
ceilingPico
a floor :: DiffTime -> b
floor(MkDiffTime Pico
a )=Pico -> b
forall a b. (RealFrac a, Integral b) => a -> b
floorPico
a -- | Create a 'DiffTime' which represents an integral number of seconds.secondsToDiffTime ::Integer->DiffTime secondsToDiffTime :: Integer -> DiffTime
secondsToDiffTime =Integer -> DiffTime
forall a. Num a => Integer -> a
fromInteger-- | Create a 'DiffTime' from a number of picoseconds.picosecondsToDiffTime ::Integer->DiffTime picosecondsToDiffTime :: Integer -> DiffTime
picosecondsToDiffTime Integer
x =Pico -> DiffTime
MkDiffTime (Integer -> Pico
forall k (a :: k). Integer -> Fixed a
MkFixedInteger
x )-- | Get the number of picoseconds in a 'DiffTime'.diffTimeToPicoseconds ::DiffTime ->IntegerdiffTimeToPicoseconds :: DiffTime -> Integer
diffTimeToPicoseconds (MkDiffTime (MkFixedInteger
x ))=Integer
x {-# RULES"realToFrac/DiffTime->Pico"realToFrac=\(MkDiffTime ps )->ps "realToFrac/Pico->DiffTime"realToFrac=MkDiffTime #-}

AltStyle によって変換されたページ (->オリジナル) /