diff --git a/battleship-combinatorics.cabal b/battleship-combinatorics.cabal
--- a/battleship-combinatorics.cabal
+++ b/battleship-combinatorics.cabal
@@ -1,5 +1,5 @@
 Name:             battleship-combinatorics
-Version:          0.0.0.1
+Version:          0.0.0.2
 License:          BSD3
 License-File:     LICENSE
 Author:           Henning Thielemann <haskell@henning-thielemann.de>
@@ -17,7 +17,7 @@
 Build-Type:       Simple
 
 Source-Repository this
-  Tag:         0.0.0.1
+  Tag:         0.0.0.2
   Type:        darcs
   Location:    http://hub.darcs.net/thielema/battleship-combinatorics/
 
@@ -37,7 +37,7 @@
     random >=1.0 && <1.2,
     storable-record >=0.0.3 && <0.1,
     storablevector >=0.2.11 && <0.3,
-    containers >=0.4.2 && <0.6,
+    containers >=0.4.2 && <0.7,
     deepseq >=1.3 && <1.5,
     non-empty >=0.2.1 && <0.4,
     semigroups >=0.1 && <1.0,
diff --git a/src/Combinatorics/Battleship/Count/CountMap.hs b/src/Combinatorics/Battleship/Count/CountMap.hs
--- a/src/Combinatorics/Battleship/Count/CountMap.hs
+++ b/src/Combinatorics/Battleship/Count/CountMap.hs
@@ -46,6 +46,7 @@
 import qualified Data.NonEmpty as NonEmpty
 import qualified Data.List.Match as Match
 import Data.Monoid (Monoid, mempty, mappend, mconcat, )
+import Data.Semigroup (Semigroup, (<>))
 import Data.List.HT (sliceVertical, )
 import Text.Printf (printf, )
 
@@ -263,6 +264,9 @@
 {-# INLINEABLE mergeMany #-}
 mergeMany :: (Counter.C a, Storable a) => [T w a] -> T w a
 mergeMany = maybe empty (NonEmpty.foldBalanced merge) . NonEmpty.fetch
+
+instance (Counter.C a, Storable a) => Semigroup (T w a) where
+   (<>) = merge
 
 instance (Counter.C a, Storable a) => Monoid (T w a) where
    mempty = empty
