@hackage polysemy-chronos0.7.0.2
A Polysemy effect for Chronos
Installation
Dependencies (4)
- base >=4.17.2.1 && <4.22
- chronos >=1.1.5 && <1.2
- incipit-core >=0.4.1.0 && <0.8
- polysemy-time <0.8 Show all…
Dependents (9)
@hackage/ribosome-test, @hackage/ribosome-host, @hackage/proteome, @hackage/prelate, @hackage/helic, @hackage/chiasma-test, Show all…
About
This Haskell library provides interpreters for the Time effect from polysemy-time.
Example
import Polysemy (Members, runM)
import Polysemy.Chronos (ChronosTime, interpretTimeChronosConstantAt, interpretTimeChronos)
import qualified Polysemy.Time as Time
import Polysemy.Time (MilliSeconds(MilliSeconds), mkDatetime)
startTime :: Chronos.Time
startTime =
Chronos.datetimeToTime (Time.mkDatetime 2020 01 01 0 0 0)
prog ::
Ord t =>
Members [ChronosTime, Embed IO] r =>
Sem r Bool
prog = do
Time.sleep (MilliSeconds 1)
time <- Time.now
pure (time == startTime)
main :: IO ()
main =
runM do
print =<< interpretTimeChronos prog -- False
print =<< interpretTimeChronosConstantAt prog -- True