diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
 # Changelog
 
+## 1.2.0.0
+
+## Non breaking changes
+
+- Added NFData & NoThunks instances for `Time`
+
 ## 1.1.0.0
 
 ### Non breaking changes
diff --git a/si-timers.cabal b/si-timers.cabal
--- a/si-timers.cabal
+++ b/si-timers.cabal
@@ -1,21 +1,19 @@
 cabal-version:       3.0
 name:                si-timers
-version:             1.1.0.0
+version:             1.2.0.0
 synopsis:            timers using SI units (seconds)
 description:
   Timers using SI units (seconds) which are safe on 32-bit platforms and
   compatible with [io-sim](https://hackage.haskell.org/package/io-sim).
 license:             Apache-2.0
-license-files:
-  LICENSE
-  NOTICE
+license-files:       LICENSE NOTICE
 copyright:           2022-2023 Input Output Global Inc (IOG)
 author:              Duncan Coutts, Neil Davis, Marcin Szamotulski
 maintainer:          Duncan Coutts duncan@well-typed.com, Marcin Szamotulski coot@coot.me
-category:            Control
+category:            Time
 build-type:          Simple
-extra-source-files:  CHANGELOG.md
-                     README.md
+extra-doc-files:     CHANGELOG.md README.md
+bug-reports:         https://github.com/input-output-hk/io-sim/issues
 tested-with:         GHC == { 8.10, 9.2, 9.4, 9.6 }
 
 flag asserts
@@ -55,11 +53,13 @@
                        ScopedTypeVariables,
                        TypeFamilies
   build-depends:       base              >=4.9 && <4.19,
+                       deepseq,
                        mtl,
+                       nothunks,
                        stm,
                        time              >=1.9.1 && <1.13,
 
-                       io-classes        >=1.0 && <1.2
+                       io-classes       ^>=1.2
   if flag(asserts)
      ghc-options:      -fno-ignore-asserts
 
diff --git a/src/Control/Monad/Class/MonadTime/SI.hs b/src/Control/Monad/Class/MonadTime/SI.hs
--- a/src/Control/Monad/Class/MonadTime/SI.hs
+++ b/src/Control/Monad/Class/MonadTime/SI.hs
@@ -1,5 +1,8 @@
 {-# LANGUAGE DefaultSignatures  #-}
+{-# LANGUAGE DeriveAnyClass     #-}
 {-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE NumericUnderscores #-}
 
 module Control.Monad.Class.MonadTime.SI
@@ -18,12 +21,15 @@
   ) where
 
 import           Control.Monad.Reader
+import           Control.DeepSeq (NFData (..))
 
 import           Control.Monad.Class.MonadTime ( MonadMonotonicTimeNSec,
                      MonadTime (..), NominalDiffTime, UTCTime, diffUTCTime,
                      addUTCTime)
 import qualified Control.Monad.Class.MonadTime as MonadTime
 
+import           NoThunks.Class (NoThunks (..))
+
 import           Data.Word (Word64)
 import           Data.Time.Clock (DiffTime)
 import qualified Data.Time.Clock as Time
@@ -37,7 +43,9 @@
 -- program runs. It is represented as the 'DiffTime' from this arbitrary epoch.
 --
 newtype Time = Time DiffTime
-  deriving (Eq, Ord, Show, Generic)
+  deriving stock    (Eq, Ord, Show, Generic)
+  deriving newtype  NFData
+  deriving anyclass NoThunks
 
 -- | The time duration between two points in time (positive or negative).
 diffTime :: Time -> Time -> DiffTime
