Skip to content

Commit 18aa515

Browse files
committed
si-timers: NFData & NoThunks instances for Time
1 parent 8293db5 commit 18aa515

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

si-timers/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## next
4+
5+
## Non breaking changes
6+
7+
- Added NFData & NoThunks instances for `Time`
8+
39
## 1.1.0.0
410

511
### Non breaking changes

si-timers/si-timers.cabal

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ library
5353
ScopedTypeVariables,
5454
TypeFamilies
5555
build-depends: base >=4.9 && <4.19,
56+
deepseq,
5657
mtl,
58+
nothunks,
5759
stm,
5860
time >=1.9.1 && <1.13,
5961

si-timers/src/Control/Monad/Class/MonadTime/SI.hs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
{-# LANGUAGE DefaultSignatures #-}
2+
{-# LANGUAGE DeriveAnyClass #-}
23
{-# LANGUAGE DeriveGeneric #-}
4+
{-# LANGUAGE DerivingStrategies #-}
5+
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
36
{-# LANGUAGE NumericUnderscores #-}
47

58
module Control.Monad.Class.MonadTime.SI
@@ -18,12 +21,15 @@ module Control.Monad.Class.MonadTime.SI
1821
) where
1922

2023
import Control.Monad.Reader
24+
import Control.DeepSeq (NFData (..))
2125

2226
import Control.Monad.Class.MonadTime ( MonadMonotonicTimeNSec,
2327
MonadTime (..), NominalDiffTime, UTCTime, diffUTCTime,
2428
addUTCTime)
2529
import qualified Control.Monad.Class.MonadTime as MonadTime
2630

31+
import NoThunks.Class (NoThunks (..))
32+
2733
import Data.Word (Word64)
2834
import Data.Time.Clock (DiffTime)
2935
import qualified Data.Time.Clock as Time
@@ -37,7 +43,9 @@ import GHC.Generics (Generic (..))
3743
-- program runs. It is represented as the 'DiffTime' from this arbitrary epoch.
3844
--
3945
newtype Time = Time DiffTime
40-
deriving (Eq, Ord, Show, Generic)
46+
deriving stock (Eq, Ord, Show, Generic)
47+
deriving newtype NFData
48+
deriving anyclass NoThunks
4149

4250
-- | The time duration between two points in time (positive or negative).
4351
diffTime :: Time -> Time -> DiffTime

0 commit comments

Comments
 (0)