diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 0.4.1
+
+* terror
+
 ## 0.4.0
 
 * Drop system-filepath
diff --git a/CorePrelude.hs b/CorePrelude.hs
--- a/CorePrelude.hs
+++ b/CorePrelude.hs
@@ -24,6 +24,7 @@
     , putStrLn
     , print
     , getArgs
+    , terror
     , Prelude.odd
     , Prelude.even
     , Prelude.uncurry
@@ -258,3 +259,9 @@
 
 readArgs :: (MonadIO m, ReadArgs.ArgumentTuple a) => m a
 readArgs = liftIO ReadArgs.readArgs
+
+-- | @error@ applied to @Text@
+--
+-- Since 0.4.1
+terror :: Text -> a
+terror = Prelude.error . Data.Text.unpack
diff --git a/basic-prelude.cabal b/basic-prelude.cabal
--- a/basic-prelude.cabal
+++ b/basic-prelude.cabal
@@ -1,5 +1,5 @@
 name:                basic-prelude
-version:             0.4.0
+version:             0.4.1
 synopsis:            An enhanced core prelude; a common foundation for alternate preludes.
 description:
     The premise of @basic-prelude@ is that there are a lot of very commonly desired features missing from the standard @Prelude@, such as commonly used operators (@\<$\>@ and @>=>@, for instance) and imports for common datatypes (e.g., @ByteString@ and @Vector@). At the same time, there are lots of other components which are more debatable, such as providing polymorphic versions of common functions.
