diff --git a/CorePrelude.hs b/CorePrelude.hs
--- a/CorePrelude.hs
+++ b/CorePrelude.hs
@@ -20,7 +20,7 @@
     , Prelude.flip
     , Prelude.const
     , Prelude.error
-    , Data.Text.IO.putStrLn
+    , putStrLn
     , getArgs
     , Prelude.odd
     , Prelude.even
@@ -131,6 +131,7 @@
     , Control.Exception.Lifted.throwIO
     , Control.Exception.Lifted.try
     , Control.Exception.Lifted.catch
+    , Control.Exception.Lifted.handle
     , Control.Exception.Lifted.bracket
     , Control.Exception.Lifted.onException
     , Control.Exception.Lifted.finally
@@ -142,6 +143,9 @@
     , F.basename
     , F.filename
     , F.directory
+      -- ** Hashing
+    , hash
+    , hashWithSalt
       -- ** Print
     , Prelude.print
       -- ** Command line args
@@ -151,7 +155,7 @@
 import qualified Prelude
 import Prelude (Char, (.), Eq, Bool)
 
-import Data.Hashable (Hashable)
+import Data.Hashable (Hashable, hash, hashWithSalt)
 import Data.Vector.Unboxed (Unbox)
 
 import Data.Monoid (Monoid (..))
@@ -179,6 +183,7 @@
 
 import qualified Control.Monad.Trans.Class
 import qualified Control.Monad.IO.Class
+import Control.Monad.IO.Class (MonadIO (liftIO))
 
 import Data.ByteString (ByteString)
 import qualified Data.ByteString.Lazy
@@ -190,7 +195,7 @@
 import Data.Set (Set)
 import Data.HashMap.Strict (HashMap)
 import Data.HashSet (HashSet)
-import ReadArgs (readArgs)
+import qualified ReadArgs
 
 import qualified System.Environment
 import qualified Data.Text
@@ -218,5 +223,11 @@
 equating = Data.Function.on (Prelude.==)
 
 
-getArgs :: Prelude.IO [Text]
-getArgs = Data.List.map Data.Text.pack <$> System.Environment.getArgs
+getArgs :: MonadIO m => m [Text]
+getArgs = liftIO (Data.List.map Data.Text.pack <$> System.Environment.getArgs)
+
+putStrLn :: MonadIO m => Text -> m ()
+putStrLn = liftIO . Data.Text.IO.putStrLn
+
+readArgs :: (MonadIO m, ReadArgs.ArgumentTuple a) => m a
+readArgs = liftIO ReadArgs.readArgs
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.2.0
+version:             0.3.3.0
 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.
