diff --git a/Changelog.md b/Changelog.md
--- a/Changelog.md
+++ b/Changelog.md
@@ -1,3 +1,7 @@
+### 0.6.2
+Additions
+ * Add `Semigroup` instance for `Canvas`
+
 ### 0.6.1
 * Fix building with `aeson-1.2.2.0`.
 
diff --git a/Graphics/Blank/Canvas.hs b/Graphics/Blank/Canvas.hs
--- a/Graphics/Blank/Canvas.hs
+++ b/Graphics/Blank/Canvas.hs
@@ -12,7 +12,7 @@
 
 import           Data.Aeson (FromJSON(..),Value(..),encode)
 import           Data.Aeson.Types (Parser, (.:))
-import           Data.Monoid
+import           Data.Semigroup (Semigroup(..))
 import           Data.Text (Text)
 import           Data.Text.Lazy.Builder
 import           Data.Text.Lazy.Encoding (decodeUtf8)
@@ -58,6 +58,9 @@
 instance Functor Canvas where
   fmap f c = c >>= return . f
 
+instance Semigroup a => Semigroup (Canvas a) where
+  (<>) = liftM2 (<>)
+
 instance Monoid a => Monoid (Canvas a) where
   mappend = liftM2 mappend
   mempty  = return mempty
@@ -351,7 +354,7 @@
 getImageData :: (Double, Double, Double, Double) -> Canvas ImageData
 getImageData = Query . GetImageData
 
--- | Change the canvas cursor to the specified URL or keyword. 
+-- | Change the canvas cursor to the specified URL or keyword.
 --
 -- ==== __Examples__
 --
diff --git a/blank-canvas.cabal b/blank-canvas.cabal
--- a/blank-canvas.cabal
+++ b/blank-canvas.cabal
@@ -1,5 +1,5 @@
 Name:                blank-canvas
-Version:             0.6.1
+Version:             0.6.2
 Synopsis:            HTML5 Canvas Graphics Library
 
 Description:      @blank-canvas@ is a Haskell binding to the complete
@@ -41,7 +41,7 @@
 Extra-source-files:  README.md
                      Changelog.md
 Cabal-version:       >= 1.10
-tested-with:         GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2
+tested-with:         GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.1
 data-files:
     static/index.html
     static/jquery.js
@@ -76,10 +76,11 @@
                        colour             >= 2.2     && < 3.0,
                        containers         == 0.5.*,
                        data-default-class >= 0.0.1   && < 0.2,
-                       http-types         >= 0.8     && < 0.10,
+                       http-types         >= 0.8     && < 0.12,
                        mime-types         >= 0.1.0.3 && < 0.2,
                        kansas-comet       >= 0.4     && < 0.5,
                        scotty             >= 0.10    && < 0.12,
+                       semigroups         >= 0.18    && < 1,
                        stm                >= 2.2     && < 2.5,
                        text               >= 1.1     && < 1.3,
                        text-show          >= 2       && < 4,
