diff --git a/lib/Polysemy/Time/Prelude.hs b/lib/Polysemy/Time/Prelude.hs
--- a/lib/Polysemy/Time/Prelude.hs
+++ b/lib/Polysemy/Time/Prelude.hs
@@ -36,7 +36,6 @@
 import Data.Map.Strict (Map, lookup)
 import qualified Data.Text as Text
 import GHC.Err (undefined)
-import GHC.IO.Unsafe (unsafePerformIO)
 import GHC.TypeLits (Symbol)
 import qualified Language.Haskell.TH.Syntax as TH
 import Polysemy (
@@ -107,26 +106,6 @@
 tuple fa fb =
   (,) <$> fa <*> fb
 {-# inline tuple #-}
-
-unsafeLogSAnd :: Show a => a -> b -> b
-unsafeLogSAnd a b =
-  unsafePerformIO $ print a >> return b
-{-# inline unsafeLogSAnd #-}
-
-unsafeLogAnd :: Text -> b -> b
-unsafeLogAnd a b =
-  unsafePerformIO $ putStrLn (toString a) >> return b
-{-# inline unsafeLogAnd #-}
-
-unsafeLogS :: Show a => a -> a
-unsafeLogS a =
-  unsafePerformIO $ print a >> return a
-{-# inline unsafeLogS #-}
-
-unsafeLog :: Text -> Text
-unsafeLog a =
-  unsafePerformIO $ putStrLn (toString a) >> return a
-{-# inline unsafeLog #-}
 
 liftT ::
   forall m f r e a .
diff --git a/polysemy-time.cabal b/polysemy-time.cabal
--- a/polysemy-time.cabal
+++ b/polysemy-time.cabal
@@ -1,11 +1,11 @@
 cabal-version: 2.2
 
--- This file has been generated from package.yaml by hpack version 0.34.2.
+-- This file has been generated from package.yaml by hpack version 0.34.4.
 --
 -- see: https://github.com/sol/hpack
 
 name:           polysemy-time
-version:        0.1.1.0
+version:        0.1.2.0
 synopsis:       Polysemy effect for time
 description:    Please see the readme on Github at <https://github.com/tek/polysemy-time>
 category:       Time
@@ -40,22 +40,79 @@
       Paths_polysemy_time
   hs-source-dirs:
       lib
-  default-extensions: AllowAmbiguousTypes ApplicativeDo BangPatterns BinaryLiterals BlockArguments ConstraintKinds DataKinds DefaultSignatures DeriveAnyClass DeriveDataTypeable DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable DerivingStrategies DerivingVia DisambiguateRecordFields DoAndIfThenElse DuplicateRecordFields EmptyDataDecls ExistentialQuantification FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving InstanceSigs KindSignatures LambdaCase LiberalTypeSynonyms MultiParamTypeClasses MultiWayIf NamedFieldPuns OverloadedStrings OverloadedLists PackageImports PartialTypeSignatures PatternGuards PatternSynonyms PolyKinds QuantifiedConstraints QuasiQuotes RankNTypes RecordWildCards RecursiveDo ScopedTypeVariables StandaloneDeriving TemplateHaskell TupleSections TypeApplications TypeFamilies TypeFamilyDependencies TypeOperators TypeSynonymInstances UndecidableInstances UnicodeSyntax ViewPatterns
+  default-extensions:
+      AllowAmbiguousTypes
+      ApplicativeDo
+      BangPatterns
+      BinaryLiterals
+      BlockArguments
+      ConstraintKinds
+      DataKinds
+      DefaultSignatures
+      DeriveAnyClass
+      DeriveDataTypeable
+      DeriveFoldable
+      DeriveFunctor
+      DeriveGeneric
+      DeriveTraversable
+      DerivingStrategies
+      DerivingVia
+      DisambiguateRecordFields
+      DoAndIfThenElse
+      DuplicateRecordFields
+      EmptyDataDecls
+      ExistentialQuantification
+      FlexibleContexts
+      FlexibleInstances
+      FunctionalDependencies
+      GADTs
+      GeneralizedNewtypeDeriving
+      InstanceSigs
+      KindSignatures
+      LambdaCase
+      LiberalTypeSynonyms
+      MultiParamTypeClasses
+      MultiWayIf
+      NamedFieldPuns
+      OverloadedStrings
+      OverloadedLists
+      PackageImports
+      PartialTypeSignatures
+      PatternGuards
+      PatternSynonyms
+      PolyKinds
+      QuantifiedConstraints
+      QuasiQuotes
+      RankNTypes
+      RecordWildCards
+      RecursiveDo
+      ScopedTypeVariables
+      StandaloneDeriving
+      TemplateHaskell
+      TupleSections
+      TypeApplications
+      TypeFamilies
+      TypeFamilyDependencies
+      TypeOperators
+      TypeSynonymInstances
+      UndecidableInstances
+      UnicodeSyntax
+      ViewPatterns
   ghc-options: -flate-specialise -fspecialise-aggressively -Wall
   build-depends:
-      aeson >=1.4 && <1.5
-    , base >=4 && <5
-    , composition >=1.0 && <1.1
+      aeson ==1.4.*
+    , base ==4.*
+    , composition ==1.0.*
     , containers
-    , data-default >=0.7 && <0.8
+    , data-default ==0.7.*
     , either
-    , polysemy >=1.3 && <1.5
-    , relude >=0.7 && <0.8
+    , polysemy >=1.3 && <1.6
+    , relude ==0.7.*
     , string-interpolate >=0.1 && <0.4
     , template-haskell
     , text
     , time
-    , torsor >=0.1 && <0.2
+    , torsor ==0.1.*
   mixins:
       base hiding (Prelude)
   if impl(ghc < 8.10)
@@ -71,28 +128,85 @@
       Paths_polysemy_time
   hs-source-dirs:
       test
-  default-extensions: AllowAmbiguousTypes ApplicativeDo BangPatterns BinaryLiterals BlockArguments ConstraintKinds DataKinds DefaultSignatures DeriveAnyClass DeriveDataTypeable DeriveFoldable DeriveFunctor DeriveGeneric DeriveTraversable DerivingStrategies DerivingVia DisambiguateRecordFields DoAndIfThenElse DuplicateRecordFields EmptyDataDecls ExistentialQuantification FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving InstanceSigs KindSignatures LambdaCase LiberalTypeSynonyms MultiParamTypeClasses MultiWayIf NamedFieldPuns OverloadedStrings OverloadedLists PackageImports PartialTypeSignatures PatternGuards PatternSynonyms PolyKinds QuantifiedConstraints QuasiQuotes RankNTypes RecordWildCards RecursiveDo ScopedTypeVariables StandaloneDeriving TemplateHaskell TupleSections TypeApplications TypeFamilies TypeFamilyDependencies TypeOperators TypeSynonymInstances UndecidableInstances UnicodeSyntax ViewPatterns
+  default-extensions:
+      AllowAmbiguousTypes
+      ApplicativeDo
+      BangPatterns
+      BinaryLiterals
+      BlockArguments
+      ConstraintKinds
+      DataKinds
+      DefaultSignatures
+      DeriveAnyClass
+      DeriveDataTypeable
+      DeriveFoldable
+      DeriveFunctor
+      DeriveGeneric
+      DeriveTraversable
+      DerivingStrategies
+      DerivingVia
+      DisambiguateRecordFields
+      DoAndIfThenElse
+      DuplicateRecordFields
+      EmptyDataDecls
+      ExistentialQuantification
+      FlexibleContexts
+      FlexibleInstances
+      FunctionalDependencies
+      GADTs
+      GeneralizedNewtypeDeriving
+      InstanceSigs
+      KindSignatures
+      LambdaCase
+      LiberalTypeSynonyms
+      MultiParamTypeClasses
+      MultiWayIf
+      NamedFieldPuns
+      OverloadedStrings
+      OverloadedLists
+      PackageImports
+      PartialTypeSignatures
+      PatternGuards
+      PatternSynonyms
+      PolyKinds
+      QuantifiedConstraints
+      QuasiQuotes
+      RankNTypes
+      RecordWildCards
+      RecursiveDo
+      ScopedTypeVariables
+      StandaloneDeriving
+      TemplateHaskell
+      TupleSections
+      TypeApplications
+      TypeFamilies
+      TypeFamilyDependencies
+      TypeOperators
+      TypeSynonymInstances
+      UndecidableInstances
+      UnicodeSyntax
+      ViewPatterns
   ghc-options: -flate-specialise -fspecialise-aggressively -Wall -threaded -rtsopts -with-rtsopts=-N -fplugin=Polysemy.Plugin
   build-depends:
-      aeson >=1.4 && <1.5
-    , base >=4 && <5
-    , composition >=1.0 && <1.1
+      aeson ==1.4.*
+    , base ==4.*
+    , composition ==1.0.*
     , containers
-    , data-default >=0.7 && <0.8
+    , data-default ==0.7.*
     , either
     , hedgehog
-    , polysemy >=1.3 && <1.5
+    , polysemy >=1.3 && <1.6
     , polysemy-plugin
     , polysemy-test
     , polysemy-time
-    , relude >=0.7 && <0.8
+    , relude ==0.7.*
     , string-interpolate >=0.1 && <0.4
     , tasty
     , tasty-hedgehog
     , template-haskell
     , text
     , time
-    , torsor >=0.1 && <0.2
+    , torsor ==0.1.*
   mixins:
       base hiding (Prelude)
     , polysemy-time hiding (Prelude)
