diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,4 +1,7 @@
-0.0.1
+0.0.2
 
-Initial version
+* Semigroup instances on `NotZeroOr` and `AccNotZeroOr`.
 
+0.0.1
+
+* Initial version
diff --git a/notzero.cabal b/notzero.cabal
--- a/notzero.cabal
+++ b/notzero.cabal
@@ -1,5 +1,5 @@
 name:               notzero
-version:            0.0.1
+version:            0.0.2
 license:            BSD3
 license-file:       LICENSE
 author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ> <dibblego>
diff --git a/src/Data/AccNotZeroOr.hs b/src/Data/AccNotZeroOr.hs
--- a/src/Data/AccNotZeroOr.hs
+++ b/src/Data/AccNotZeroOr.hs
@@ -18,6 +18,7 @@
 import Data.Functor.Identity(Identity(Identity))
 import Data.NotZero(NotZero)
 import Data.NotZeroOr(NotZeroOr(IsNotZero, OrNotZero), NotZeroOrT, isoNumber, isoNotZeroOrT)
+import Data.Semigroup(Semigroup((<>)))
 import Prelude(Num)
 
 data AccNotZeroOr f a x =
@@ -89,6 +90,12 @@
   Iso (OneNotZeroOr a x) (OneNotZeroOr b y) (NotZeroOrT a Identity x) (NotZeroOrT b Identity y)
 isoOneNotZeroOrT =
   isoOneNotZeroOr . isoNotZeroOrT
+
+instance Semigroup (AccNotZeroOr f a x) where
+  OrAccNotZero x <> _ =
+    OrAccNotZero x
+  IsAccNotZero _ <> y =
+    y
 
 instance Functor f => Functor (AccNotZeroOr f a) where
   fmap _ (IsAccNotZero z) =
diff --git a/src/Data/NotZeroOr.hs b/src/Data/NotZeroOr.hs
--- a/src/Data/NotZeroOr.hs
+++ b/src/Data/NotZeroOr.hs
@@ -25,6 +25,7 @@
 import Data.Maybe(Maybe(Nothing, Just))
 import Data.NotZero(NotZero, notZero, getNotZero)
 import Data.Ord(Ord)
+import Data.Semigroup(Semigroup((<>)))
 import Prelude(Show, Num)
 
 data NotZeroOr a x =
@@ -91,6 +92,12 @@
              Nothing -> OrNotZero ()
              Just z -> IsNotZero z)
 
+instance Semigroup (NotZeroOr a x) where
+  OrNotZero x <> _ =
+    OrNotZero x
+  IsNotZero _ <> y =
+    y
+    
 instance Functor (NotZeroOr a) where
   fmap _ (IsNotZero z) =
     IsNotZero z
