diff --git a/Data/Patch/Internal.hs b/Data/Patch/Internal.hs
--- a/Data/Patch/Internal.hs
+++ b/Data/Patch/Internal.hs
@@ -50,11 +50,16 @@
 --   of 'Edit', and can be converted to and from raw lists of edits using 'toList' and 'fromList'
 --   respectively.
 --
---   Patches form a group (a 'Monoid' with inverses), where the inverse element can be computed with
---   'inverse' and the group operation is /composition/ of patches. Applying @p1 <> p2@ is the
---   same as applying @p1@ /then/ @p2@ (see 'apply'). This composition operator may produce structurally
+--   Patches form a groupoid (a 'Monoid' with inverses, and a partial composition relation), 
+--   where the inverse element can be computed with 'inverse' and the groupoid operation
+--   is /composition/ of patches. Applying @p1 <> p2@ is the same as applying @p1@ /then/
+--   @p2@ (see 'apply'). This composition operator may produce structurally
 --   different patches depending on associativity, however the patches are guaranteed to be /equivalent/
 --   in the sense that the resultant document will be the same when they are applied.
+--
+--   For convenience, we make our composition operator here total, to fit the `Monoid` typeclass,
+--   but provide some predicates ('composable' and 'applicable') to determine if the operation
+--   can be validly used.
 --
 -- prop> forAll (patchesFrom d) $ \a -> a <> mempty == a
 --
diff --git a/patches-vector.cabal b/patches-vector.cabal
--- a/patches-vector.cabal
+++ b/patches-vector.cabal
@@ -2,10 +2,10 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                patches-vector
-version:             0.1.4.0
+version:             0.1.4.1
 synopsis:            Patches (diffs) on vectors: composable, mergeable, and invertible.
 description:         A patch is a collection of modifications (edits) to be made to a sequence of elements. Commonly
-                     found in version control systems, patches are also a simple example of a group, supporting composition
+                     found in version control systems, patches are also a simple example of a groupoid, supporting (partial) composition
                      and inversion.
                      .
                      This library provides a pleasant interface for working with patches to vectors with any type of element.
@@ -38,5 +38,5 @@
 test-suite             test-patches-vector
   type: exitcode-stdio-1.0
   main-is: tests.hs
-  build-depends: base >= 4.7 && < 4.9, QuickCheck >= 2.8 && < 2.9, patches-vector, doctest >= 0.10 && < 0.11
+  build-depends: base >= 4.7 && < 4.9, QuickCheck >= 2.7 && < 2.9, patches-vector, doctest >= 0.9 && < 0.11
   default-language:    Haskell2010
