diff --git a/sql-words.cabal b/sql-words.cabal
--- a/sql-words.cabal
+++ b/sql-words.cabal
@@ -1,5 +1,5 @@
 name:                sql-words
-version:             0.1.6.0
+version:             0.1.6.1
 synopsis:            SQL keywords data constructors into OverloadedString
 description:         This package contiains SQL keywords constructors defined as
                      OverloadedString literals and helper functions to concate these.
diff --git a/src/Language/SQL/Keyword/Concat.hs b/src/Language/SQL/Keyword/Concat.hs
--- a/src/Language/SQL/Keyword/Concat.hs
+++ b/src/Language/SQL/Keyword/Concat.hs
@@ -158,6 +158,7 @@
 in' :: Keyword -> Keyword -> Keyword
 in'    =  defineBinOp IN
 
+infixr 6 <++>
 infixr 5 .||.
 infixr 4 .=., .<., .<=., .>., .>=., .<>.
 infix  4 `in'`
diff --git a/test/monoidLaw.hs b/test/monoidLaw.hs
--- a/test/monoidLaw.hs
+++ b/test/monoidLaw.hs
@@ -1,6 +1,7 @@
 {-# OPTIONS -fno-warn-orphans #-}
 
-import Language.SQL.Keyword (Keyword, DString)
+import Language.SQL.Keyword
+  (Keyword (Sequence), DString, (<++>))
 
 import Data.Monoid (Monoid, mempty, (<>))
 import Data.String (fromString)
@@ -44,6 +45,12 @@
 instance Arbitrary Keyword where
   arbitrary = fmap fromString arbitrary
 
+concatCommutative :: DString -> DString -> Bool
+concatCommutative x y =
+  Sequence x <++> Sequence y
+  ==
+  Sequence (x <> y)
+
 tests :: [Test]
 tests =  [ prop "DString left Id"  dsLeftId
          , prop "DString right Id" dsRightId
@@ -51,6 +58,7 @@
          , prop "Keyword left Id"  kwLeftId
          , prop "Keyword right Id" kwRightId
          , prop "Keyword associativity" kwAssoc
+         , prop "concat commutative" concatCommutative
          ]
 
 main :: IO ()
