This Haskell library exports types which can be used to describe simple type periods at the type-level. The type-level descriptions can then be reifed to corresponding values of the time-units
library.
{-# LANGUAGE TypeApplications #-}
import Data.Time.TypeLevel
type TenSeconds = 'Second 10
main :: IO ()
main = do
-- `durationVal` converts the type-level specification to a corresponding
-- value from "Data.Time.Units"
print $ durationVal @TenSeconds
-- `durationMicroseconds` converts the type-level specification to a
-- corresponding integer value, representing microseconds
print $ durationMicroseconds @TenSeconds
See the Haddock documentation for a reference of all supported units.
Related/similar projects: