diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/polysemy-chronos.cabal b/polysemy-chronos.cabal
--- a/polysemy-chronos.cabal
+++ b/polysemy-chronos.cabal
@@ -1,11 +1,11 @@
 cabal-version: 2.2
 
--- This file has been generated from package.yaml by hpack version 0.34.4.
+-- This file has been generated from package.yaml by hpack version 0.34.6.
 --
 -- see: https://github.com/sol/hpack
 
 name:           polysemy-chronos
-version:        0.2.0.3
+version:        0.3.0.0
 synopsis:       Polysemy-time Interpreters for Chronos
 description:    Please see the readme on Github at <https://github.com/tek/polysemy-time>
 category:       Time
@@ -24,10 +24,6 @@
       Polysemy.Chronos
       Polysemy.Chronos.Orphans
       Polysemy.Chronos.Time
-  other-modules:
-      Paths_polysemy_chronos
-  autogen-modules:
-      Paths_polysemy_chronos
   hs-source-dirs:
       lib
   default-extensions:
@@ -92,12 +88,10 @@
   build-depends:
       base ==4.*
     , chronos >=1.1.1 && <1.2
-    , polysemy >=1.4
+    , incipit-core >=0.1
     , polysemy-time
   mixins:
       base hiding (Prelude)
-    , polysemy-time hiding (Polysemy.Time.Prelude)
-    , polysemy-time (Polysemy.Time.Prelude as Prelude)
   default-language: Haskell2010
 
 test-suite polysemy-chronos-unit
@@ -105,7 +99,6 @@
   main-is: Main.hs
   other-modules:
       Polysemy.Chronos.ChronosTimeTest
-      Paths_polysemy_chronos
   hs-source-dirs:
       test
   default-extensions:
@@ -170,12 +163,11 @@
   build-depends:
       base ==4.*
     , chronos
+    , incipit-core
     , polysemy-chronos
     , polysemy-test
     , polysemy-time
     , tasty
   mixins:
       base hiding (Prelude)
-    , polysemy-time hiding (Polysemy.Time.Prelude)
-    , polysemy-time (Polysemy.Time.Prelude as Prelude)
   default-language: Haskell2010
diff --git a/readme.md b/readme.md
--- a/readme.md
+++ b/readme.md
@@ -1,89 +1,35 @@
 # About
 
-This Haskell library provides a [Polysemy] effect for accessing the current
-time and date and an implementation for [time] and [chronos].
+This Haskell library provides interpreters for the `Time` effect from [polysemy-time].
 
 # Example
 
 ```haskell
-import Data.Time (UTCTime)
 import Polysemy (Members, runM)
-import Polysemy.Chronos (interpretTimeChronos)
+import Polysemy.Chronos (ChronosTime, interpretTimeChronosConstantAt, interpretTimeChronos)
 import qualified Polysemy.Time as Time
-import Polysemy.Time (MilliSeconds(MilliSeconds), Seconds(Seconds), Time, interpretTimeGhcAt, mkDatetime, year)
+import Polysemy.Time (MilliSeconds(MilliSeconds), mkDatetime)
 
+startTime :: Chronos.Time
+startTime =
+  Chronos.datetimeToTime (Time.mkDatetime 2020 01 01 0 0 0)
+
 prog ::
   Ord t =>
-  Member (Time t d) r =>
-  Sem r ()
+  Members [ChronosTime, Embed IO] r =>
+  Sem r Bool
 prog = do
-  time1 <- Time.now
-  Time.sleep (MilliSeconds 10)
-  time2 <- Time.now
-  print (time1 < time2)
-  -- True
-
-testTime :: UTCTime
-testTime =
-  mkDatetime 1845 12 31 23 59 59
+  Time.sleep (MilliSeconds 1)
+  time <- Time.now
+  pure (time == startTime)
 
 main :: IO ()
 main =
   runM do
-    interpretTimeChronos prog
-    interpretTimeGhcAt testTime do
-      Time.sleep (Seconds 1)
-      time <- Time.now
-      print (year time)
-      -- Years { unYear = 1846 }
-```
-
-# Effect
-
-The only effect contained in **polysemy-time** is:
-
-```haskell
-data Time (time :: Type) (date :: Type) :: Effect where
-  Now :: Time t d m t
-  Today :: Time t d m d
-  Sleep :: TimeUnit u => u -> Time t d m ()
-  SetTime :: t -> Time t d m ()
-  SetDate :: d -> Time t d m ()
-```
-
-Interpreters are provided for the [time library](time) bundled with GHC and [chronos].
-
-The type parameters correspond to the representations in the implementation,
-like `Data.Time.UTCTime`/`Chronos.Time` and `Data.Time.Day`/`Chronos.Date`.
-
-`SetTime` and `SetDate` only have meaning when you're running in a testing context.
-
-A special interpreter variant suffixed with `At` exists for both
-implementations, with which the current time is overridden to be relative to
-the supplied override fixed at the start of interpretation.
-This is useful for testing.
-
-# Utilities
-
-A set of newtypes representing timespans are provided for convenience.
-Internally, the interpreters operate on `NanoSecond`s.
-
-The class `TimeUnit` ties those types, and the types `Chronos.Timespan` and
-`Data.Time.DiffTime`, together to allow you to convert between them with the
-function `convert`:
-
-```haskell
->>> convert (picosecondsToDiffTime 50000000) :: MicroSeconds
-MicroSeconds {unMicroSeconds = 50}
-
->>> convert (Days 5) :: Timespan
-Timespan {getTimespan = 432000000000000}
+    print =<< interpretTimeChronos prog -- False
+    print =<< interpretTimeChronosConstantAt prog -- True
 ```
 
-The class `Calendar` allows you to construct `UTCTime` and `Chronos.Datetime`
-from integers with the function `mkDatetime`, as demonstrated in the first
-example.
-
 [Polysemy]: https://hackage.haskell.org/package/polysemy
-[time]: https://hackage.haskell.org/package/time
+[polysemy-time]: https://hackage.haskell.org/package/polysemy-time
 [chronos]: https://hackage.haskell.org/package/chronos
