diff --git a/BasicPrelude.hs b/BasicPrelude.hs
--- a/BasicPrelude.hs
+++ b/BasicPrelude.hs
@@ -43,7 +43,6 @@
   , encodeUtf8
   , decodeUtf8
     -- ** Text operations (IO)
-  , Text.putStr
   , Text.getLine
   , LText.getContents
   , LText.interact
diff --git a/CorePrelude.hs b/CorePrelude.hs
--- a/CorePrelude.hs
+++ b/CorePrelude.hs
@@ -20,6 +20,7 @@
     , Prelude.flip
     , Prelude.const
     , Prelude.error
+    , putStr
     , putStrLn
     , getArgs
     , Prelude.odd
@@ -242,6 +243,9 @@
 
 getArgs :: MonadIO m => m [Text]
 getArgs = liftIO (Data.List.map Data.Text.pack <$> System.Environment.getArgs)
+
+putStr :: MonadIO m => Text -> m ()
+putStr = liftIO . Data.Text.IO.putStr
 
 putStrLn :: MonadIO m => Text -> m ()
 putStrLn = liftIO . Data.Text.IO.putStrLn
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.3.8
+version:             0.3.9
 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.
