diff --git a/Data/Semigroup.hs b/Data/Semigroup.hs
--- a/Data/Semigroup.hs
+++ b/Data/Semigroup.hs
@@ -68,15 +68,21 @@
   -- > (a <> b) <> c = a <> (b <> c)
   (<>) :: a -> a -> a
 
-  -- | Reduce a non-empty list with (<>)
+  -- | Reduce a non-empty list with @\<\>@
+  --
+  -- The default definition should be sufficient, but this can be overridden for efficiency.
+  -- 
   sconcat :: NonEmpty a -> a
   sconcat (a :| as) = go a as where
     go b (c:cs) = b <> go c cs
     go b []     = b
 
-  -- | /O(log n)/ Repeat a value (n + 1) times.
+  -- | Repeat a value (n + 1) times.
   --
   -- > replicate1p n a = a <> a <> ... n + 1 times <> a
+  --
+  -- The default definition uses peasant multiplication, exploiting associativity to only
+  -- require /O(log n)/ uses of @\<\>@.
   
   replicate1p :: Whole n => n -> a -> a
   replicate1p y0 x0 = f x0 (1 Prelude.+ y0)
diff --git a/semigroups.cabal b/semigroups.cabal
--- a/semigroups.cabal
+++ b/semigroups.cabal
@@ -1,6 +1,6 @@
 name:          semigroups
 category:      Algebra, Data, Data Structures, Math
-version:       0.7.1.1
+version:       0.7.1.2
 license:       BSD3
 cabal-version: >= 1.6
 license-file:  LICENSE
