diff --git a/Data/Semigroup.hs b/Data/Semigroup.hs
--- a/Data/Semigroup.hs
+++ b/Data/Semigroup.hs
@@ -2,6 +2,8 @@
 module Data.Semigroup(
                      Semigroup((.++.)),
                      Identity,
+                     run,
+                     identity,
                      (<++>)
                      ) where
 
@@ -14,6 +16,10 @@
 
 -- | A wrapper used to construct a @Semigroup@ from a @Monoid@.
 newtype Identity a = Identity { run :: a }
+
+-- | Construct a wrapper for a monoid instance.
+identity :: a -> Identity a
+identity = Identity
 
 -- | A binary associative operation lifted into an applicative functor.
 (<++>) :: (Applicative f, Semigroup a) => f a -> f a -> f a
diff --git a/Semigroup.cabal b/Semigroup.cabal
--- a/Semigroup.cabal
+++ b/Semigroup.cabal
@@ -1,5 +1,5 @@
 Name:                Semigroup
-Version:             0.0.3
+Version:             0.0.4
 License:             BSD3
 License-File:        LICENSE
 Synopsis:            A semigroup
