diff --git a/Data/Manifold/Web.hs b/Data/Manifold/Web.hs
--- a/Data/Manifold/Web.hs
+++ b/Data/Manifold/Web.hs
@@ -963,9 +963,11 @@
 data Average a = Average { weight :: Int
                          , averageAcc :: a
                          } deriving (Hask.Functor)
+instance Num a => Semigroup (Average a) where
+  Average w₀ a₀ <> Average w₁ a₁ = Average (w₀+w₁) (a₀+a₁)
 instance Num a => Monoid (Average a) where
   mempty = Average 0 0
-  mappend (Average w₀ a₀) (Average w₁ a₁) = Average (w₀+w₁) (a₀+a₁)
+  mappend = (<>)
 instance Hask.Applicative Average where
   pure = Average 1
   Average w₀ a₀ <*> Average w₁ a₁ = Average (w₀*w₁) (a₀ a₁)
diff --git a/Data/Manifold/Web/Internal.hs b/Data/Manifold/Web/Internal.hs
--- a/Data/Manifold/Web/Internal.hs
+++ b/Data/Manifold/Web/Internal.hs
@@ -65,6 +65,8 @@
 import Control.Monad.Trans.State
 import Control.Monad.Trans.Writer
 
+import Data.Semigroup
+
 import Control.DeepSeq
 
 import GHC.Generics (Generic)
@@ -117,9 +119,11 @@
  deriving (Show)
 makeLenses ''PropagationInconsistency
 
+instance Semigroup (PropagationInconsistency x υ) where
+  p<>q = mconcat [p,q]
 instance Monoid (PropagationInconsistency x υ) where
   mempty = PropagationInconsistencies []
-  mappend p q = mconcat [p,q]
+  mappend = (<>)
   mconcat = PropagationInconsistencies
 
 instance (NFData x, NFData (Metric x), NFData (Needle' x), NFData y)
diff --git a/manifolds.cabal b/manifolds.cabal
--- a/manifolds.cabal
+++ b/manifolds.cabal
@@ -1,5 +1,5 @@
 Name:                manifolds
-Version:             0.5.0.2
+Version:             0.5.0.3
 Category:            Math
 Synopsis:            Coordinate-free hypersurfaces
 Description:         Manifolds, a generalisation of the notion of &#x201c;smooth curves&#x201d; or surfaces,
@@ -40,7 +40,7 @@
 
 Library
   Build-Depends:     base>=4.5 && < 6
-                     , manifolds-core == 0.5.0.2
+                     , manifolds-core == 0.5.0.3
                      , transformers
                      , vector-space>=0.8
                      , free-vector-spaces>=0.1.5
