module TimerWheel.Internal.Prelude ( Seconds, module X, ) where import Control.Monad as X (when) import Data.Coerce as X (coerce) import Data.Fixed (E9, Fixed) import Data.IORef as X (IORef, newIORef, readIORef, writeIORef) import Data.Word as X (Word64) import GHC.Generics as X (Generic) import Prelude as X hiding (lookup, null) -- | A number of seconds, with nanosecond precision. -- -- You can use numeric literals to construct a value of this type, e.g. @0.5@. -- -- Otherwise, to convert from a type like @Int@ or @Double@, you can use the generic numeric conversion function -- @realToFrac@. type Seconds = Fixed E9