diff --git a/ClassyPrelude.hs b/ClassyPrelude.hs
--- a/ClassyPrelude.hs
+++ b/ClassyPrelude.hs
@@ -17,6 +17,7 @@
     , unlessM
       -- ** Mutable references
     , module Control.Concurrent.MVar.Lifted
+    , module Control.Concurrent.Chan.Lifted
     , module Control.Concurrent.STM
     , atomically
     , alwaysSTM
@@ -135,6 +136,8 @@
       -- ** Exceptions
     , module Control.Exception.Enclosed
     , MonadThrow (throwM)
+    , MonadCatch
+    , MonadMask
       -- ** Force types
       -- | Helper functions for situations where type inferer gets confused.
     , asByteString
@@ -152,6 +155,7 @@
     , asVector
     , asUVector
     , asSVector
+    , asString
     ) where
 
 import qualified Prelude
@@ -159,6 +163,7 @@
 import Control.Exception.Enclosed
 import Control.Monad (when, unless, void, liftM, ap, forever, join, sequence, sequence_, replicateM_, guard, MonadPlus (..), (=<<), (>=>), (<=<), liftM2, liftM3, liftM4, liftM5)
 import Control.Concurrent.MVar.Lifted
+import Control.Concurrent.Chan.Lifted
 import Control.Concurrent.STM hiding (atomically, always, alwaysSucceeds, retry, orElse, check)
 import qualified Control.Concurrent.STM as STM
 import Data.IORef.Lifted
@@ -167,7 +172,7 @@
 import Data.Traversable (Traversable)
 import Data.Foldable (Foldable)
 import Data.IOData (IOData (..))
-import Control.Monad.Catch (MonadThrow (throwM))
+import Control.Monad.Catch (MonadThrow (throwM), MonadCatch, MonadMask)
 
 import Data.Vector.Instances ()
 import CorePrelude hiding (print, undefined, (<>), catMaybes, first, second)
@@ -380,6 +385,9 @@
 
 asSVector :: SVector a -> SVector a
 asSVector = id
+
+asString :: [Char] -> [Char]
+asString = id
 
 print :: (Show a, MonadIO m) => a -> m ()
 print = liftIO . Prelude.print
diff --git a/classy-prelude.cabal b/classy-prelude.cabal
--- a/classy-prelude.cabal
+++ b/classy-prelude.cabal
@@ -1,5 +1,5 @@
 name:                classy-prelude
-version:             0.10.0
+version:             0.10.1
 synopsis:            A typeclass-based Prelude.
 description:         Focuses on using common typeclasses when possible, and creating new ones to avoid name clashing. Exposes many recommended datastructures (Map, ByteString, etc) directly without requiring long import lists and qualified modules.
 homepage:            https://github.com/snoyberg/classy-prelude
@@ -14,7 +14,7 @@
 library
   exposed-modules:     ClassyPrelude
   build-depends:       base                          >= 4          && < 5
-                     , basic-prelude                 >= 0.3.8      && < 0.4
+                     , basic-prelude                 >= 0.3.10     && < 0.4
                      , system-filepath               >= 0.4        && < 0.5
                      , transformers
                      , containers                    >= 0.4.2
diff --git a/test/main.hs b/test/main.hs
--- a/test/main.hs
+++ b/test/main.hs
@@ -10,10 +10,8 @@
 import Test.Hspec.QuickCheck
 import ClassyPrelude hiding (undefined)
 import Test.QuickCheck.Arbitrary
-import Prelude (asTypeOf, fromIntegral, undefined)
-import qualified Prelude
+import Prelude (undefined)
 import Control.Monad.Trans.Writer (tell, Writer, runWriter)
-import Data.Functor.Identity (runIdentity)
 import Control.Concurrent (throwTo, threadDelay, forkIO)
 import Control.Exception (throw)
 import qualified Data.Set as Set
