diff --git a/geojson.cabal b/geojson.cabal
--- a/geojson.cabal
+++ b/geojson.cabal
@@ -1,5 +1,5 @@
 name:                   geojson
-version:                3.0.3
+version:                3.0.4
 license:                BSD3
 license-file:           LICENCE
 author:                 Dom De Re
@@ -27,7 +27,7 @@
 source-repository       this
     type:               git
     location:           https://github.com/indicatrix/hs-geojson.git
-    tag:                3.0.3
+    tag:                3.0.4
 
 library
     hs-source-dirs:     src
@@ -79,6 +79,7 @@
                     ,   Fixture
                     ,   Data.LinearRingTests
                     ,   Data.LineStringTests
+                    ,   Data.SeqHelperTests
                     ,   Data.Geospatial.Internal.CRSTests
                     ,   Data.Geospatial.Internal.GeoFeatureCollectionTests
                     ,   Data.Geospatial.Internal.GeoFeatureTests
diff --git a/src/Data/SeqHelper.hs b/src/Data/SeqHelper.hs
--- a/src/Data/SeqHelper.hs
+++ b/src/Data/SeqHelper.hs
@@ -8,7 +8,7 @@
 module Data.SeqHelper (
   sequenceHead
   , sequenceTail
-  , unique
+  , removeNextDuplicate
   ) where
 
 import qualified Data.Sequence as Sequence
@@ -25,6 +25,9 @@
 sequenceTail _                      = Sequence.empty
 {-# INLINE sequenceTail #-}
 
-unique :: Eq a => Sequence.Seq a -> Sequence.Seq a
-unique Sequence.Empty      = Sequence.empty
-unique (x Sequence.:<| xs) = (Sequence.<|) x (unique (Sequence.filter (x /=) xs))
+removeNextDuplicate :: Eq a => Sequence.Seq a -> Sequence.Seq a
+removeNextDuplicate Sequence.Empty                     = Sequence.empty
+removeNextDuplicate xs@(_ Sequence.:<| Sequence.Empty) = xs
+removeNextDuplicate (x Sequence.:<| tailXs@(y Sequence.:<| _))
+  | x /= y    = x Sequence.<| removeNextDuplicate tailXs
+  | otherwise = removeNextDuplicate tailXs
diff --git a/test/Data/LinearRingTests.hs b/test/Data/LinearRingTests.hs
--- a/test/Data/LinearRingTests.hs
+++ b/test/Data/LinearRingTests.hs
@@ -33,7 +33,8 @@
     [ testSpec "Data.LinearRing.fromList" testFromList
     , testSpec "Data.LinearRing.fromSeq" testFromSequence
     , testSpec "Data.LinearRing.combineToSequence" testCombineToSequence
-    , testSpec "Data.LinearRing.testToSequence" testToSequence
+    , testSpec "Data.LinearRing.toSequence" testToSequence
+    , testSpec "Data.LinearRing.foldMap" testFoldMap
     ]
   pure $ testGroup "Data.LinearRingTests.Spec" specs
 
@@ -127,6 +128,12 @@
       LinearRing.toSeq (LinearRing.makeLinearRing 0 1 0 Sequence.empty)             `shouldBe` Sequence.fromList ([0, 1, 0] :: [Int])
       LinearRing.toSeq (LinearRing.makeLinearRing 0 1 2 (Sequence.fromList [0]))    `shouldBe` Sequence.fromList ([0, 1, 2, 0] :: [Int])
       LinearRing.toSeq (LinearRing.makeLinearRing 0 1 2 (Sequence.fromList [4,0]))  `shouldBe` Sequence.fromList ([0, 1, 2, 4, 0] :: [Int])
+
+testFoldMap :: Spec
+testFoldMap =
+  describe "foldMap" $
+    it "foldMap of a LinearRing" $
+      foldMap (\x -> Sequence.singleton (x + 1)) (LinearRing.makeLinearRing 0 1 2 Sequence.empty) `shouldBe` Sequence.fromList ([1, 2, 3, 1] :: [Int])
 
 
 -- TODO
diff --git a/test/Data/SeqHelperTests.hs b/test/Data/SeqHelperTests.hs
new file mode 100644
--- /dev/null
+++ b/test/Data/SeqHelperTests.hs
@@ -0,0 +1,26 @@
+module Data.SeqHelperTests where
+
+import qualified Data.List.NonEmpty                  as ListNonEmpty
+import qualified Data.Sequence                       as Sequence
+import qualified Data.Validation                     as Validation
+import           Test.Tasty
+import           Test.Tasty.Hspec                    (Spec, context, describe,
+                                                      it, shouldBe, testSpec)
+import           Test.Tasty.QuickCheck               (Property, property,
+                                                      testProperty)
+-- Local
+import           Arbitrary                           ()
+import qualified Data.Geospatial.Internal.BasicTypes as BasicTypes
+import qualified Data.SeqHelper                      as SeqHelper
+
+-- Tests
+
+tests :: IO TestTree
+tests =
+  testSpec "Data.SeqHelper.removeNextDuplicate" testRemoveNextDuplicate
+
+testRemoveNextDuplicate :: Spec
+testRemoveNextDuplicate =
+  describe "removeNextDuplicate" $
+    it "Make it clear" $
+      SeqHelper.removeNextDuplicate (Sequence.fromList ([1, 1, 2, 3, 3, 3, 1] :: [Int])) `shouldBe` Sequence.fromList ([1, 2, 3, 1] :: [Int])
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -8,6 +8,7 @@
 import qualified Data.Geospatial.Internal.GeometryTests             as G
 import qualified Data.LinearRingTests                               as LR
 import qualified Data.LineStringTests                               as LS
+import qualified Data.SeqHelperTests                                as SH
 
 
 main :: IO ()
@@ -15,6 +16,7 @@
   tests <- sequence
     [ LR.tests
     , LS.tests
+    , SH.tests
     , CRS.tests
     , FC.tests
     , F.tests
