diff --git a/simple-templates.cabal b/simple-templates.cabal
--- a/simple-templates.cabal
+++ b/simple-templates.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                simple-templates
-version:             0.8.0.1
+version:             0.9.0.0
 synopsis:            A basic template language for the Simple web framework
 description:
   A basic template language for the Simple web framework. The language supports
diff --git a/src/Web/Simple/Templates/Types.hs b/src/Web/Simple/Templates/Types.hs
--- a/src/Web/Simple/Templates/Types.hs
+++ b/src/Web/Simple/Templates/Types.hs
@@ -4,6 +4,7 @@
 
 import qualified Data.HashMap.Strict as H
 import Data.Monoid
+import Data.Semigroup
 import Data.Text (Text)
 import Data.Aeson
 import qualified Data.Vector as V
@@ -60,10 +61,12 @@
 newtype Template = Template
   { renderTemplate :: FunctionMap -> Value -> Text }
 
+instance Semigroup Template where
+  tm1 <> tm2 = Template $ \fm global ->
+    renderTemplate tm1 fm global <> renderTemplate tm2 fm global
+
 instance Monoid Template where
   mempty = Template $ const $ const mempty
-  tm1 `mappend` tm2 = Template $ \fm global ->
-    renderTemplate tm1 fm global <> renderTemplate tm2 fm global
 
 -- | A symbol identifier following the format [a-z][a-zA-Z0-9_-]*
 type Identifier = Text
