diff --git a/src/Network/WebSockets/Simple.hs b/src/Network/WebSockets/Simple.hs
--- a/src/Network/WebSockets/Simple.hs
+++ b/src/Network/WebSockets/Simple.hs
@@ -82,17 +82,20 @@
   }
 
 
+instance Applicative m => Semigroup (WebSocketsApp m receive send) where
+  x <> y = WebSocketsApp
+    { onOpen = \params -> onOpen x params *> onOpen y params
+    , onReceive = \params r -> onReceive x params r *> onReceive y params r
+    , onClose = \o mE -> onClose x o mE *> onClose y o mE
+    }
 
+
+
 instance Applicative m => Monoid (WebSocketsApp m receive send) where
   mempty = WebSocketsApp
     { onOpen = \_ -> pure ()
     , onReceive = \_ _ -> pure ()
     , onClose = \_ _ -> pure ()
-    }
-  mappend x y = WebSocketsApp
-    { onOpen = \params -> onOpen x params *> onOpen y params
-    , onReceive = \params r -> onReceive x params r *> onReceive y params r
-    , onClose = \o mE -> onClose x o mE *> onClose y o mE
     }
 
 
diff --git a/websockets-simple.cabal b/websockets-simple.cabal
--- a/websockets-simple.cabal
+++ b/websockets-simple.cabal
@@ -1,11 +1,13 @@
--- This file has been generated from package.yaml by hpack version 0.21.2.
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.31.0.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: a26994ed2679bb5a516cc782fa3f06b12b65f628ecbbbdb3c6ba27030427fdc1
+-- hash: c6c649d6e20c4061859caec35f547b3c3c7fe686cf1985bd22168192827c25b1
 
 name:           websockets-simple
-version:        0.1.2.1
+version:        0.1.3
 synopsis:       Composable websockets clients
 description:    See README at <https://github.com/athanclark/websockets-simple#readme>
 category:       Web
@@ -15,8 +17,6 @@
 license:        BSD3
 license-file:   LICENSE
 build-type:     Simple
-cabal-version:  >= 1.10
-
 extra-source-files:
     README.md
 
@@ -37,7 +37,7 @@
   build-depends:
       aeson
     , async
-    , base >=4.9 && <5
+    , base >=4.11 && <5
     , bytestring
     , exceptions
     , extractable-singleton >=0.0.1
@@ -65,7 +65,7 @@
   build-depends:
       aeson
     , async
-    , base >=4.9 && <5
+    , base >=4.11 && <5
     , bytestring
     , exceptions
     , extractable-singleton >=0.0.1
