diff --git a/ClassyPrelude.hs b/ClassyPrelude.hs
--- a/ClassyPrelude.hs
+++ b/ClassyPrelude.hs
@@ -6,6 +6,12 @@
 module ClassyPrelude
     ( -- * CorePrelude
       module CorePrelude
+      -- * Standard
+      -- ** Monoid
+    , concat
+    , empty
+    , append
+    , (++)
       -- * Non-standard
       -- ** List-like classes
     , map
@@ -99,3 +105,20 @@
 -- @repack = pack . unpack@.
 repack :: (CanPack a i, CanPack b i) => a -> b
 repack = pack . unpack
+
+concat :: Monoid m => [m] -> m
+concat = mconcat
+{-# INLINE concat #-}
+
+append :: Monoid m => m -> m -> m
+append = mappend
+{-# INLINE append #-}
+
+empty :: Monoid m => m
+empty = mempty
+{-# INLINE empty #-}
+
+infixr 5  ++
+(++) :: Monoid m => m -> m -> m
+(++) = mappend
+{-# INLINE (++) #-}
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.2.0.1
+version:             0.3.0
 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
@@ -26,7 +26,7 @@
                        ClassyPrelude.HashMap
                        ClassyPrelude.HashSet
   build-depends:       base                          >= 4          && < 5
-                     , basic-prelude                 >= 0.2        && < 0.3
+                     , basic-prelude                 >= 0.3        && < 0.4
                      , system-filepath               >= 0.4        && < 0.5
                      , transformers
                      , containers                    >= 0.4.2
