diff --git a/changelog.md b/changelog.md
new file mode 100644
--- /dev/null
+++ b/changelog.md
@@ -0,0 +1,12 @@
+# Unreleased
+
+# 0.3.0.0
+
+* Remove module exports for `Prelude` to avoid a Stack bug.
+* Rename `Incipit` modules to `IncipitBase` and `IncipitCore`.
+* Add more `try*` combinators and use consistent naming.
+
+# 0.2.0.0
+
+* Add `unitT`, returning `()` in a `Tactical` environment
+* Hide Polysemy's effect GADT constructors
diff --git a/incipit-core.cabal b/incipit-core.cabal
--- a/incipit-core.cabal
+++ b/incipit-core.cabal
@@ -1,11 +1,11 @@
 cabal-version: 2.2
 
--- This file has been generated from package.yaml by hpack version 0.34.6.
+-- This file has been generated from package.yaml by hpack version 0.35.0.
 --
 -- see: https://github.com/sol/hpack
 
 name:           incipit-core
-version:        0.3.0.0
+version:        0.4.0.0
 synopsis:       A Prelude for Polysemy
 description:    See https://hackage.haskell.org/package/incipit-core/docs/IncipitCore.html
 category:       Prelude
@@ -17,6 +17,9 @@
 license:        BSD-2-Clause-Patent
 license-file:   LICENSE
 build-type:     Simple
+extra-source-files:
+    changelog.md
+    readme.md
 
 source-repository head
   type: git
@@ -45,6 +48,8 @@
     , Data.IntSet
     , Data.Map.Lazy
     , Data.Map.Strict
+    , Data.Map.Merge.Lazy
+    , Data.Map.Merge.Strict
     , Data.Sequence
     , Data.Set
     , Data.Text
@@ -57,6 +62,7 @@
   hs-source-dirs:
       lib
   default-extensions:
+      NoImplicitPrelude
       AllowAmbiguousTypes
       ApplicativeDo
       BangPatterns
@@ -77,6 +83,7 @@
       DisambiguateRecordFields
       DoAndIfThenElse
       DuplicateRecordFields
+      EmptyCase
       EmptyDataDecls
       ExistentialQuantification
       FlexibleContexts
@@ -91,8 +98,9 @@
       MultiParamTypeClasses
       MultiWayIf
       NamedFieldPuns
-      OverloadedStrings
+      OverloadedLabels
       OverloadedLists
+      OverloadedStrings
       PackageImports
       PartialTypeSignatures
       PatternGuards
@@ -116,10 +124,9 @@
       UndecidableInstances
       UnicodeSyntax
       ViewPatterns
-      NoImplicitPrelude
   ghc-options: -Wall -Wredundant-constraints -Wincomplete-uni-patterns -Wmissing-deriving-strategies -Widentities -Wunused-packages
   build-depends:
-      base >=4.13 && <4.17
-    , incipit-base ==0.3.0.0
+      base >=4.13 && <4.18
+    , incipit-base ==0.4.0.0
     , polysemy >=1.6
   default-language: Haskell2010
diff --git a/lib/IncipitCore.hs b/lib/IncipitCore.hs
--- a/lib/IncipitCore.hs
+++ b/lib/IncipitCore.hs
@@ -1,3 +1,4 @@
+{-# language CPP #-}
 -- |This is the central module on which to build upon when constructing Preludes for Polysemy libraries.
 -- It reexports most core effects.
 module IncipitCore (
@@ -16,7 +17,9 @@
   module Polysemy.Tagged,
   module Polysemy.Writer,
   module IncipitCore,
+#if !MIN_VERSION_polysemy(1,8,0)
   send,
+#endif
 ) where
 
 import Incipit.Exception
@@ -31,7 +34,9 @@
 import Polysemy.Fail hiding (Fail)
 import Polysemy.Input (Input)
 import Polysemy.Input hiding (Input)
+#if !MIN_VERSION_polysemy(1,8,0)
 import Polysemy.Internal (send)
+#endif
 import Polysemy.Internal.Kind (Append)
 import Polysemy.Output (Output)
 import Polysemy.Output hiding (Output)
diff --git a/readme.md b/readme.md
new file mode 100644
--- /dev/null
+++ b/readme.md
@@ -0,0 +1,65 @@
+# About
+
+This library provides a `Prelude` for [Polysemy] libraries, building upon [incipit-base] and exporting most of
+Polysemy's core modules.
+For a more comprehensive variant that includes some basic libraries, consider [incipit].
+
+# Usage
+
+Using a custom `Prelude` requires the use of Cabal mixins to hide the module from `base` and replace it with
+`IncipitCore`:
+
+For `hpack`:
+```yaml
+dependencies:
+  - name: base
+    version: '>= 4 && < 5'
+    mixin:
+      - hiding (Prelude)
+  - name: incipit-core
+    version: '>= 0.3'
+    mixin:
+      - (IncipitCore as Prelude)
+      - hiding (IncipitCore)
+```
+
+For `cabal`:
+```cabal
+build-depends:
+    base >=4 && <5, incipit-core >= 0.3
+mixins:
+    base hiding (Prelude), incipit-core (IncipitCore as Prelude), incipit-core hiding (IncipitCore)
+```
+
+`incipit-core` used to export `Prelude`, but
+[stack can't deal with that](https://github.com/commercialhaskell/stack/issues/5414).
+
+# Custom Prelude
+
+In order to extend `incipit-core` with a local `Prelude`, the module `IncipitCore` has to be reexported:
+
+```yaml
+dependencies:
+  - name: base
+    version: '>= 4 && < 5'
+    mixin:
+      - hiding (Prelude)
+  - incipit-core >= 0.3
+```
+
+```haskell
+module Prelude (
+  module Prelude,
+  module IncipitCore,
+) where
+
+import IncipitCore
+
+projectName :: Text
+projectName =
+  "spaceship"
+```
+
+[incipit-base]: https://hackage.haskell.org/package/incipit-base
+[incipit]: https://hackage.haskell.org/package/incipit
+[Polysemy]: https://hackage.haskell.org/package/polysemy
