A type alias for seconds, which are stored as Double.
Moduleextra-1.8Haskell2010
System.Time.Extra
Extra functions for working with times. Unlike the other modules in this package, there is no
corresponding System.Time module. This module enhances the functionality
from Data.Time.Clock, but in quite different ways.
Throughout, time is measured in Seconds, which is a type alias for Double.
- 1 type
- 6 values
- Packageextra-1.8
- Exports7
- LanguageHaskell2010
- LicenceBSD-3-Clause
- SourceExtra.hs
Sleep for a number of seconds.
fmap (round . fst) (duration $ sleep 1) == pure 1A version of timeout that takes Seconds and never overflows the bounds of an Int. In addition, the bug that negative timeouts run for ever has been fixed.
timeout (-3) (print 1) == pure Nothing
timeout 0.1 (print 1) == fmap Just (print 1)
do (t, _) <- duration $ timeout 0.1 $ sleep 1000; print t; pure $ t < 1
timeout 0.1 (sleep 2 >> print 1) == pure NothingShow a number of seconds, typically a duration, in a suitable manner with reasonable precision for a human.
showDuration 3.435 == "3.44s"
showDuration 623.8 == "10m24s"
showDuration 62003.8 == "17h13m"
showDuration 1e8 == "27777h47m"Call once to start, then call repeatedly to get the elapsed time since the first call. The time is guaranteed to be monotonic. This function is robust to system time changes.
do f <- offsetTime; xs <- replicateM 10 f; pure $ xs == sort xsDeprecated. Use offsetTime instead, which is guaranteed to always increase.
A synonym for offsetTime.
Record how long a computation takes in Seconds.
do (a,_) <- duration $ sleep 1; pure $ a >= 1 && a <= 1.5