diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -2,6 +2,10 @@
 
 ## Unreleased changes
 
+## 0.1.2
+
+* Wrappers for lazy and strict versions of `Data.Map`.
+
 ## 0.1.1
 
 * Initial release on Hackage.
diff --git a/appendmap.cabal b/appendmap.cabal
--- a/appendmap.cabal
+++ b/appendmap.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: a323dd29d1810894fafc021571b49e8c3ca23a22516736fe70ec955cec2be6e4
+-- hash: 958b11931b57f7dbce792ef791245c3d6ae3eef40e24559c9e2520da0c867296
 
 name:           appendmap
-version:        0.1.1
+version:        0.1.2
 synopsis:       Map with a Semigroup and Monoid instances delegating to Semigroup of the elements
 description:    Please see the README on GitHub at <https://github.com/koterpillar/appendmap#readme>
 category:       Data Structures
@@ -29,6 +29,8 @@
 library
   exposed-modules:
       Data.Map.Append
+      Data.Map.Append.Lazy
+      Data.Map.Append.Strict
   other-modules:
       Paths_appendmap
   hs-source-dirs:
diff --git a/src/Data/Map/Append.hs b/src/Data/Map/Append.hs
--- a/src/Data/Map/Append.hs
+++ b/src/Data/Map/Append.hs
@@ -1,22 +1,5 @@
-module Data.Map.Append where
-
-import           Data.Map           (Map)
-import qualified Data.Map           as Map
-
-import           Data.Monoid        hiding ((<>))
-import           Data.Semigroup
-
-import qualified Data.List.NonEmpty as NE
-
-newtype AppendMap k v = AppendMap
-  { unAppendMap :: Map k v
-  }
-
-instance (Ord k, Semigroup v) => Semigroup (AppendMap k v) where
-  AppendMap a <> AppendMap b = AppendMap $ Map.unionWith (<>) a b
-  sconcat = AppendMap . Map.unionsWith (<>) . NE.toList . fmap unAppendMap
+module Data.Map.Append
+  ( module Data.Map.Append.Lazy
+  ) where
 
-instance (Ord k, Semigroup v) => Monoid (AppendMap k v) where
-  mempty = AppendMap Map.empty
-  mappend = (<>)
-  mconcat = AppendMap . Map.unionsWith (<>) . fmap unAppendMap
+import           Data.Map.Append.Lazy
diff --git a/src/Data/Map/Append/Lazy.hs b/src/Data/Map/Append/Lazy.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Map/Append/Lazy.hs
@@ -0,0 +1,22 @@
+module Data.Map.Append.Lazy where
+
+import           Data.Map           (Map)
+import qualified Data.Map           as Map
+
+import           Data.Monoid        hiding ((<>))
+import           Data.Semigroup
+
+import qualified Data.List.NonEmpty as NE
+
+newtype AppendMap k v = AppendMap
+  { unAppendMap :: Map k v
+  }
+
+instance (Ord k, Semigroup v) => Semigroup (AppendMap k v) where
+  AppendMap a <> AppendMap b = AppendMap $ Map.unionWith (<>) a b
+  sconcat = AppendMap . Map.unionsWith (<>) . NE.toList . fmap unAppendMap
+
+instance (Ord k, Semigroup v) => Monoid (AppendMap k v) where
+  mempty = AppendMap Map.empty
+  mappend = (<>)
+  mconcat = AppendMap . Map.unionsWith (<>) . fmap unAppendMap
diff --git a/src/Data/Map/Append/Strict.hs b/src/Data/Map/Append/Strict.hs
new file mode 100644
--- /dev/null
+++ b/src/Data/Map/Append/Strict.hs
@@ -0,0 +1,22 @@
+module Data.Map.Append.Strict where
+
+import           Data.Map.Strict    (Map)
+import qualified Data.Map.Strict    as Map
+
+import           Data.Monoid        hiding ((<>))
+import           Data.Semigroup
+
+import qualified Data.List.NonEmpty as NE
+
+newtype AppendMap k v = AppendMap
+  { unAppendMap :: Map k v
+  }
+
+instance (Ord k, Semigroup v) => Semigroup (AppendMap k v) where
+  AppendMap a <> AppendMap b = AppendMap $ Map.unionWith (<>) a b
+  sconcat = AppendMap . Map.unionsWith (<>) . NE.toList . fmap unAppendMap
+
+instance (Ord k, Semigroup v) => Monoid (AppendMap k v) where
+  mempty = AppendMap Map.empty
+  mappend = (<>)
+  mconcat = AppendMap . Map.unionsWith (<>) . fmap unAppendMap
diff --git a/test/Spec.hs b/test/Spec.hs
--- a/test/Spec.hs
+++ b/test/Spec.hs
@@ -1,18 +1,60 @@
-import qualified Data.Map        as Map
-import           Data.Map.Append
+{-# LANGUAGE AllowAmbiguousTypes    #-}
+{-# LANGUAGE RankNTypes             #-}
+{-# LANGUAGE RecordWildCards        #-}
 
+import qualified Data.Map.Append.Lazy   as Lazy
+import qualified Data.Map.Lazy          as Lazy
+
+import qualified Data.Map.Append.Strict as Strict
+import qualified Data.Map.Strict        as Strict
+
 import           Data.Semigroup
 
 import           Test.Hspec
 
+data AppendMap appendmap map = AppendMap
+  { mapFromList :: [(Int, String)] -> map Int String
+  , mapEmpty    :: map Int String
+  , appendMap   :: forall k v. map k v -> appendmap k v
+  , unAppendMap :: forall k v. appendmap k v -> map k v
+  }
+
+lazy :: AppendMap Lazy.AppendMap Lazy.Map
+lazy =
+  AppendMap
+    { mapFromList = Lazy.fromList
+    , mapEmpty = Lazy.empty
+    , appendMap = Lazy.AppendMap
+    , unAppendMap = Lazy.unAppendMap
+    }
+
+strict :: AppendMap Strict.AppendMap Strict.Map
+strict =
+  AppendMap
+    { mapFromList = Strict.fromList
+    , mapEmpty = Strict.empty
+    , appendMap = Strict.AppendMap
+    , unAppendMap = Strict.unAppendMap
+    }
+
+appendMapSpec ::
+     ( Show (map Int String)
+     , Eq (map Int String)
+     , Monoid (map Int String)
+     , Monoid (appendmap Int String)
+     )
+  => AppendMap appendmap map
+  -> Spec
+appendMapSpec AppendMap {..} = do
+  it "has empty element" $
+    unAppendMap mempty `shouldBe` mapEmpty
+  it "combines elements" $ do
+    let one = appendMap $ mapFromList [(1, "hello"), (2, "goodbye")]
+    let two = appendMap $ mapFromList [(1, "world"), (3, "again")]
+    unAppendMap (one <> two) `shouldBe`
+      mapFromList [(1, "helloworld"), (2, "goodbye"), (3, "again")]
+
 main :: IO ()
-main =
-  hspec $
-  describe "AppendMap" $ do
-    it "has empty element" $
-      unAppendMap (mempty :: AppendMap Int String) `shouldBe` Map.empty
-    it "combines elements" $ do
-      let one = AppendMap $ Map.fromList [(1, "hello"), (2, "goodbye")]
-      let two = AppendMap $ Map.fromList [(1, "world"), (3, "again")]
-      unAppendMap (one <> two) `shouldBe`
-        Map.fromList [(1, "helloworld"), (2, "goodbye"), (3, "again")]
+main = hspec $ do
+  describe "Data.Map.Append.Lazy" $ appendMapSpec lazy
+  describe "Data.Map.Append.Strict" $ appendMapSpec strict
