diff --git a/fadno-braids.cabal b/fadno-braids.cabal
--- a/fadno-braids.cabal
+++ b/fadno-braids.cabal
@@ -1,6 +1,6 @@
 name:                fadno-braids
 category:            Data, Math, Algebra
-version:             0.1.2
+version:             0.1.3
 synopsis:            Braid representations in Haskell
 description:  Braids represented as Haskell types with support for generation and transformations.
 homepage:            http://github.com/slpopejoy/
diff --git a/src/Fadno/Braids/Internal.hs b/src/Fadno/Braids/Internal.hs
--- a/src/Fadno/Braids/Internal.hs
+++ b/src/Fadno/Braids/Internal.hs
@@ -30,6 +30,7 @@
 import Control.Lens hiding (Empty)
 import Numeric.Natural
 import Control.Arrow
+import Data.Semigroup
 
 -- | Braid generator "power", as (i + 1) "over/under" i.
 -- O[ver] == power 1 (i + 1 "over" i)
@@ -165,6 +166,7 @@
 
 instance Integral a => Monoid (Step a) where
     mempty = Empty
+    mappend = (<>)
 
 
 
@@ -183,8 +185,9 @@
 instance (Semigroup (b a), Integral a) => Semigroup (DimBraid b a) where
   (DimBraid b1 x1 y1) <> (DimBraid b2 x2 y2) =
         DimBraid (b1 <> b2) (max x1 x2) (y1 + y2)
-instance (Monoid (b a), Integral a) => Monoid (DimBraid b a) where
+instance (Monoid (b a), Semigroup (b a), Integral a) => Monoid (DimBraid b a) where
     mempty = DimBraid mempty 0 0
+    mappend = (<>)
 makeLenses ''DimBraid
 
 -- | Make 'DimBraid' using braid's dimensions.
@@ -195,7 +198,7 @@
 
 
 -- | Braid representations.
-class (Integral a, Monoid (br a)) => Braid br a where
+class (Integral a, Monoid (br a), Semigroup (br a)) => Braid br a where
 
     {-# MINIMAL toGens,minIndex,maxIndex,invert #-}
 
