diff --git a/Data/Semigroup.hs b/Data/Semigroup.hs
--- a/Data/Semigroup.hs
+++ b/Data/Semigroup.hs
@@ -48,6 +48,15 @@
 instance (Semigroup a, Semigroup b, Semigroup c) => Semigroup (a, b, c) where
   (a1, b1, c1) .++. (a2, b2, c2) = (a1 .++. a2, b1 .++. b2, c1 .++. c2)
 
+instance (Semigroup a, Semigroup b, Semigroup c, Semigroup d) => Semigroup (a, b, c, d) where
+  (a1, b1, c1, d1) .++. (a2, b2, c2, d2) = (a1 .++. a2, b1 .++. b2, c1 .++. c2, d1 .++. d2)
+
+instance (Semigroup a, Semigroup b, Semigroup c, Semigroup d, Semigroup e) => Semigroup (a, b, c, d, e) where
+  (a1, b1, c1, d1, e1) .++. (a2, b2, c2, d2, e2) = (a1 .++. a2, b1 .++. b2, c1 .++. c2, d1 .++. d2, e1 .++. e2)
+
+instance Semigroup Ordering where
+  a .++. b = run (Identity a .++. Identity b)
+
 instance Semigroup All where
   a .++. b = run (Identity a .++. Identity b)
 
diff --git a/Semigroup.cabal b/Semigroup.cabal
--- a/Semigroup.cabal
+++ b/Semigroup.cabal
@@ -1,5 +1,5 @@
 Name:                Semigroup
-Version:             0.0.2
+Version:             0.0.3
 License:             BSD3
 License-File:        LICENSE
 Synopsis:            A semigroup
