packages feed

geojson 4.1.1 → 4.1.2

raw patch · 4 files changed

+21/−13 lines, 4 filesdep ~bytestringdep ~containersdep ~deepseqPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependency ranges changed: bytestring, containers, deepseq, hspec, tasty, tasty-quickcheck, text

API changes (from Hackage documentation)

- Data.Geospatial.Internal.BasicTypes: instance GHC.Generics.Generic Data.Geospatial.Internal.BasicTypes.BoundingBoxWithoutCRS
- Data.Geospatial.Internal.BasicTypes: instance GHC.Generics.Generic Data.Geospatial.Internal.BasicTypes.DoubleArray
- Data.Geospatial.Internal.BasicTypes: instance GHC.Generics.Generic Data.Geospatial.Internal.BasicTypes.FeatureID
- Data.Geospatial.Internal.BasicTypes: instance GHC.Generics.Generic Data.Geospatial.Internal.BasicTypes.GeoPositionWithoutCRS
- Data.Geospatial.Internal.BasicTypes: instance GHC.Generics.Generic Data.Geospatial.Internal.BasicTypes.PointXY
- Data.Geospatial.Internal.BasicTypes: instance GHC.Generics.Generic Data.Geospatial.Internal.BasicTypes.PointXYZ
- Data.Geospatial.Internal.BasicTypes: instance GHC.Generics.Generic Data.Geospatial.Internal.BasicTypes.PointXYZM
- Data.Geospatial.Internal.BasicTypes: instance GHC.Show.Show Data.Geospatial.Internal.BasicTypes.BoundingBoxWithoutCRS
- Data.Geospatial.Internal.BasicTypes: instance GHC.Show.Show Data.Geospatial.Internal.BasicTypes.DoubleArray
- Data.Geospatial.Internal.BasicTypes: instance GHC.Show.Show Data.Geospatial.Internal.BasicTypes.FeatureID
- Data.Geospatial.Internal.BasicTypes: instance GHC.Show.Show Data.Geospatial.Internal.BasicTypes.GeoPositionWithoutCRS
- Data.Geospatial.Internal.BasicTypes: instance GHC.Show.Show Data.Geospatial.Internal.BasicTypes.PointXY
- Data.Geospatial.Internal.BasicTypes: instance GHC.Show.Show Data.Geospatial.Internal.BasicTypes.PointXYZ
- Data.Geospatial.Internal.BasicTypes: instance GHC.Show.Show Data.Geospatial.Internal.BasicTypes.PointXYZM
- Data.Geospatial.Internal.CRS: instance GHC.Show.Show Data.Geospatial.Internal.CRS.CRSObject
- Data.Geospatial.Internal.GeoFeature: instance GHC.Generics.Generic (Data.Geospatial.Internal.GeoFeature.GeoFeature a)
- Data.Geospatial.Internal.GeoFeature: instance GHC.Show.Show a => GHC.Show.Show (Data.Geospatial.Internal.GeoFeature.GeoFeature a)
- Data.Geospatial.Internal.GeoFeatureCollection: instance GHC.Show.Show a => GHC.Show.Show (Data.Geospatial.Internal.GeoFeatureCollection.GeoFeatureCollection a)
- Data.Geospatial.Internal.Geometry: instance GHC.Generics.Generic Data.Geospatial.Internal.Geometry.GeospatialGeometry
- Data.Geospatial.Internal.Geometry: instance GHC.Show.Show Data.Geospatial.Internal.Geometry.GeospatialGeometry
- Data.Geospatial.Internal.Geometry.GeoLine: instance GHC.Generics.Generic Data.Geospatial.Internal.Geometry.GeoLine.GeoLine
- Data.Geospatial.Internal.Geometry.GeoLine: instance GHC.Show.Show Data.Geospatial.Internal.Geometry.GeoLine.GeoLine
- Data.Geospatial.Internal.Geometry.GeoMultiLine: instance GHC.Generics.Generic Data.Geospatial.Internal.Geometry.GeoMultiLine.GeoMultiLine
- Data.Geospatial.Internal.Geometry.GeoMultiLine: instance GHC.Show.Show Data.Geospatial.Internal.Geometry.GeoMultiLine.GeoMultiLine
- Data.Geospatial.Internal.Geometry.GeoMultiPoint: instance GHC.Generics.Generic Data.Geospatial.Internal.Geometry.GeoMultiPoint.GeoMultiPoint
- Data.Geospatial.Internal.Geometry.GeoMultiPoint: instance GHC.Show.Show Data.Geospatial.Internal.Geometry.GeoMultiPoint.GeoMultiPoint
- Data.Geospatial.Internal.Geometry.GeoMultiPolygon: instance GHC.Generics.Generic Data.Geospatial.Internal.Geometry.GeoMultiPolygon.GeoMultiPolygon
- Data.Geospatial.Internal.Geometry.GeoMultiPolygon: instance GHC.Show.Show Data.Geospatial.Internal.Geometry.GeoMultiPolygon.GeoMultiPolygon
- Data.Geospatial.Internal.Geometry.GeoPoint: instance GHC.Generics.Generic Data.Geospatial.Internal.Geometry.GeoPoint.GeoPoint
- Data.Geospatial.Internal.Geometry.GeoPoint: instance GHC.Show.Show Data.Geospatial.Internal.Geometry.GeoPoint.GeoPoint
- Data.Geospatial.Internal.Geometry.GeoPolygon: instance GHC.Generics.Generic Data.Geospatial.Internal.Geometry.GeoPolygon.GeoPolygon
- Data.Geospatial.Internal.Geometry.GeoPolygon: instance GHC.Show.Show Data.Geospatial.Internal.Geometry.GeoPolygon.GeoPolygon
- Data.LineString: instance (Data.Aeson.Types.FromJSON.FromJSON a, GHC.Show.Show a) => Data.Aeson.Types.FromJSON.FromJSON (Data.LineString.LineString a)
- Data.LineString: instance Data.Foldable.Foldable Data.LineString.LineString
- Data.LineString: instance Data.Traversable.Traversable Data.LineString.LineString
- Data.LineString: instance GHC.Base.Functor Data.LineString.LineString
- Data.LineString: instance GHC.Generics.Generic (Data.LineString.LineString a)
- Data.LineString: instance GHC.Show.Show Data.LineString.ListToLineStringError
- Data.LineString: instance GHC.Show.Show Data.LineString.SequenceToLineStringError
- Data.LineString: instance GHC.Show.Show a => GHC.Show.Show (Data.LineString.LineString a)
- Data.LinearRing: instance (GHC.Classes.Eq a, Data.Aeson.Types.FromJSON.FromJSON a, GHC.Show.Show a) => Data.Aeson.Types.FromJSON.FromJSON (Data.LinearRing.LinearRing a)
- Data.LinearRing: instance Data.Foldable.Foldable Data.LinearRing.LinearRing
- Data.LinearRing: instance Data.Traversable.Traversable Data.LinearRing.LinearRing
- Data.LinearRing: instance GHC.Base.Functor Data.LinearRing.LinearRing
- Data.LinearRing: instance GHC.Generics.Generic (Data.LinearRing.LinearRing a)
- Data.LinearRing: instance GHC.Show.Show a => GHC.Show.Show (Data.LinearRing.LinearRing a)
- Data.LinearRing: instance GHC.Show.Show a => GHC.Show.Show (Data.LinearRing.ListToLinearRingError a)
- Data.LinearRing: instance GHC.Show.Show a => GHC.Show.Show (Data.LinearRing.SequenceToLinearRingError a)
+ Data.Geospatial.Internal.BasicTypes: instance GHC.Internal.Generics.Generic Data.Geospatial.Internal.BasicTypes.BoundingBoxWithoutCRS
+ Data.Geospatial.Internal.BasicTypes: instance GHC.Internal.Generics.Generic Data.Geospatial.Internal.BasicTypes.DoubleArray
+ Data.Geospatial.Internal.BasicTypes: instance GHC.Internal.Generics.Generic Data.Geospatial.Internal.BasicTypes.FeatureID
+ Data.Geospatial.Internal.BasicTypes: instance GHC.Internal.Generics.Generic Data.Geospatial.Internal.BasicTypes.GeoPositionWithoutCRS
+ Data.Geospatial.Internal.BasicTypes: instance GHC.Internal.Generics.Generic Data.Geospatial.Internal.BasicTypes.PointXY
+ Data.Geospatial.Internal.BasicTypes: instance GHC.Internal.Generics.Generic Data.Geospatial.Internal.BasicTypes.PointXYZ
+ Data.Geospatial.Internal.BasicTypes: instance GHC.Internal.Generics.Generic Data.Geospatial.Internal.BasicTypes.PointXYZM
+ Data.Geospatial.Internal.BasicTypes: instance GHC.Internal.Show.Show Data.Geospatial.Internal.BasicTypes.BoundingBoxWithoutCRS
+ Data.Geospatial.Internal.BasicTypes: instance GHC.Internal.Show.Show Data.Geospatial.Internal.BasicTypes.DoubleArray
+ Data.Geospatial.Internal.BasicTypes: instance GHC.Internal.Show.Show Data.Geospatial.Internal.BasicTypes.FeatureID
+ Data.Geospatial.Internal.BasicTypes: instance GHC.Internal.Show.Show Data.Geospatial.Internal.BasicTypes.GeoPositionWithoutCRS
+ Data.Geospatial.Internal.BasicTypes: instance GHC.Internal.Show.Show Data.Geospatial.Internal.BasicTypes.PointXY
+ Data.Geospatial.Internal.BasicTypes: instance GHC.Internal.Show.Show Data.Geospatial.Internal.BasicTypes.PointXYZ
+ Data.Geospatial.Internal.BasicTypes: instance GHC.Internal.Show.Show Data.Geospatial.Internal.BasicTypes.PointXYZM
+ Data.Geospatial.Internal.CRS: instance GHC.Internal.Show.Show Data.Geospatial.Internal.CRS.CRSObject
+ Data.Geospatial.Internal.GeoFeature: instance GHC.Internal.Generics.Generic (Data.Geospatial.Internal.GeoFeature.GeoFeature a)
+ Data.Geospatial.Internal.GeoFeature: instance GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Data.Geospatial.Internal.GeoFeature.GeoFeature a)
+ Data.Geospatial.Internal.GeoFeatureCollection: instance GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Data.Geospatial.Internal.GeoFeatureCollection.GeoFeatureCollection a)
+ Data.Geospatial.Internal.Geometry: instance GHC.Internal.Generics.Generic Data.Geospatial.Internal.Geometry.GeospatialGeometry
+ Data.Geospatial.Internal.Geometry: instance GHC.Internal.Show.Show Data.Geospatial.Internal.Geometry.GeospatialGeometry
+ Data.Geospatial.Internal.Geometry.GeoLine: instance GHC.Internal.Generics.Generic Data.Geospatial.Internal.Geometry.GeoLine.GeoLine
+ Data.Geospatial.Internal.Geometry.GeoLine: instance GHC.Internal.Show.Show Data.Geospatial.Internal.Geometry.GeoLine.GeoLine
+ Data.Geospatial.Internal.Geometry.GeoMultiLine: instance GHC.Internal.Generics.Generic Data.Geospatial.Internal.Geometry.GeoMultiLine.GeoMultiLine
+ Data.Geospatial.Internal.Geometry.GeoMultiLine: instance GHC.Internal.Show.Show Data.Geospatial.Internal.Geometry.GeoMultiLine.GeoMultiLine
+ Data.Geospatial.Internal.Geometry.GeoMultiPoint: instance GHC.Internal.Generics.Generic Data.Geospatial.Internal.Geometry.GeoMultiPoint.GeoMultiPoint
+ Data.Geospatial.Internal.Geometry.GeoMultiPoint: instance GHC.Internal.Show.Show Data.Geospatial.Internal.Geometry.GeoMultiPoint.GeoMultiPoint
+ Data.Geospatial.Internal.Geometry.GeoMultiPolygon: instance GHC.Internal.Generics.Generic Data.Geospatial.Internal.Geometry.GeoMultiPolygon.GeoMultiPolygon
+ Data.Geospatial.Internal.Geometry.GeoMultiPolygon: instance GHC.Internal.Show.Show Data.Geospatial.Internal.Geometry.GeoMultiPolygon.GeoMultiPolygon
+ Data.Geospatial.Internal.Geometry.GeoPoint: instance GHC.Internal.Generics.Generic Data.Geospatial.Internal.Geometry.GeoPoint.GeoPoint
+ Data.Geospatial.Internal.Geometry.GeoPoint: instance GHC.Internal.Show.Show Data.Geospatial.Internal.Geometry.GeoPoint.GeoPoint
+ Data.Geospatial.Internal.Geometry.GeoPolygon: instance GHC.Internal.Generics.Generic Data.Geospatial.Internal.Geometry.GeoPolygon.GeoPolygon
+ Data.Geospatial.Internal.Geometry.GeoPolygon: instance GHC.Internal.Show.Show Data.Geospatial.Internal.Geometry.GeoPolygon.GeoPolygon
+ Data.LineString: instance (Data.Aeson.Types.FromJSON.FromJSON a, GHC.Internal.Show.Show a) => Data.Aeson.Types.FromJSON.FromJSON (Data.LineString.LineString a)
+ Data.LineString: instance GHC.Internal.Base.Functor Data.LineString.LineString
+ Data.LineString: instance GHC.Internal.Data.Foldable.Foldable Data.LineString.LineString
+ Data.LineString: instance GHC.Internal.Data.Traversable.Traversable Data.LineString.LineString
+ Data.LineString: instance GHC.Internal.Generics.Generic (Data.LineString.LineString a)
+ Data.LineString: instance GHC.Internal.Show.Show Data.LineString.ListToLineStringError
+ Data.LineString: instance GHC.Internal.Show.Show Data.LineString.SequenceToLineStringError
+ Data.LineString: instance GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Data.LineString.LineString a)
+ Data.LinearRing: instance (GHC.Classes.Eq a, Data.Aeson.Types.FromJSON.FromJSON a, GHC.Internal.Show.Show a) => Data.Aeson.Types.FromJSON.FromJSON (Data.LinearRing.LinearRing a)
+ Data.LinearRing: instance GHC.Internal.Base.Functor Data.LinearRing.LinearRing
+ Data.LinearRing: instance GHC.Internal.Data.Foldable.Foldable Data.LinearRing.LinearRing
+ Data.LinearRing: instance GHC.Internal.Data.Traversable.Traversable Data.LinearRing.LinearRing
+ Data.LinearRing: instance GHC.Internal.Generics.Generic (Data.LinearRing.LinearRing a)
+ Data.LinearRing: instance GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Data.LinearRing.LinearRing a)
+ Data.LinearRing: instance GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Data.LinearRing.ListToLinearRingError a)
+ Data.LinearRing: instance GHC.Internal.Show.Show a => GHC.Internal.Show.Show (Data.LinearRing.SequenceToLinearRingError a)
- Data.Geospatial: bbox :: forall a_a1ct9. Lens' (GeoFeature a_a1ct9) (Maybe BoundingBoxWithoutCRS)
+ Data.Geospatial: bbox :: forall a f. Functor f => (Maybe BoundingBoxWithoutCRS -> f (Maybe BoundingBoxWithoutCRS)) -> GeoFeature a -> f (GeoFeature a)
- Data.Geospatial: boundingbox :: forall a_a1i9W. Lens' (GeoFeatureCollection a_a1i9W) (Maybe BoundingBoxWithoutCRS)
+ Data.Geospatial: boundingbox :: forall a f. Functor f => (Maybe BoundingBoxWithoutCRS -> f (Maybe BoundingBoxWithoutCRS)) -> GeoFeatureCollection a -> f (GeoFeatureCollection a)
- Data.Geospatial: class HasGeoPositionWithoutCRS c_agsT
+ Data.Geospatial: class HasGeoPositionWithoutCRS c
- Data.Geospatial: featureId :: forall a_a1ct9. Lens' (GeoFeature a_a1ct9) (Maybe FeatureID)
+ Data.Geospatial: featureId :: forall a f. Functor f => (Maybe FeatureID -> f (Maybe FeatureID)) -> GeoFeature a -> f (GeoFeature a)
- Data.Geospatial: geoPositionWithoutCRS :: HasGeoPositionWithoutCRS c_agsT => Lens' c_agsT GeoPositionWithoutCRS
+ Data.Geospatial: geoPositionWithoutCRS :: HasGeoPositionWithoutCRS c => Lens' c GeoPositionWithoutCRS
- Data.Geospatial: geofeatures :: forall a_a1i9W a_a1icv. Lens (GeoFeatureCollection a_a1i9W) (GeoFeatureCollection a_a1icv) (Seq (GeoFeature a_a1i9W)) (Seq (GeoFeature a_a1icv))
+ Data.Geospatial: geofeatures :: forall a1 a2 f. Functor f => (Seq (GeoFeature a1) -> f (Seq (GeoFeature a2))) -> GeoFeatureCollection a1 -> f (GeoFeatureCollection a2)
- Data.Geospatial: geometry :: forall a_a1ct9. Lens' (GeoFeature a_a1ct9) GeospatialGeometry
+ Data.Geospatial: geometry :: forall a f. Functor f => (GeospatialGeometry -> f GeospatialGeometry) -> GeoFeature a -> f (GeoFeature a)
- Data.Geospatial: properties :: forall a_a1ct9 a_a1cAB. Lens (GeoFeature a_a1ct9) (GeoFeature a_a1cAB) a_a1ct9 a_a1cAB
+ Data.Geospatial: properties :: forall a1 a2 f. Functor f => (a1 -> f a2) -> GeoFeature a1 -> f (GeoFeature a2)
- Data.Geospatial.Internal.BasicTypes: class HasGeoPositionWithoutCRS c_agsT
+ Data.Geospatial.Internal.BasicTypes: class HasGeoPositionWithoutCRS c
- Data.Geospatial.Internal.BasicTypes: geoPositionWithoutCRS :: HasGeoPositionWithoutCRS c_agsT => Lens' c_agsT GeoPositionWithoutCRS
+ Data.Geospatial.Internal.BasicTypes: geoPositionWithoutCRS :: HasGeoPositionWithoutCRS c => Lens' c GeoPositionWithoutCRS
- Data.Geospatial.Internal.GeoFeature: bbox :: forall a_a1ct9. Lens' (GeoFeature a_a1ct9) (Maybe BoundingBoxWithoutCRS)
+ Data.Geospatial.Internal.GeoFeature: bbox :: forall a f. Functor f => (Maybe BoundingBoxWithoutCRS -> f (Maybe BoundingBoxWithoutCRS)) -> GeoFeature a -> f (GeoFeature a)
- Data.Geospatial.Internal.GeoFeature: featureId :: forall a_a1ct9. Lens' (GeoFeature a_a1ct9) (Maybe FeatureID)
+ Data.Geospatial.Internal.GeoFeature: featureId :: forall a f. Functor f => (Maybe FeatureID -> f (Maybe FeatureID)) -> GeoFeature a -> f (GeoFeature a)
- Data.Geospatial.Internal.GeoFeature: geometry :: forall a_a1ct9. Lens' (GeoFeature a_a1ct9) GeospatialGeometry
+ Data.Geospatial.Internal.GeoFeature: geometry :: forall a f. Functor f => (GeospatialGeometry -> f GeospatialGeometry) -> GeoFeature a -> f (GeoFeature a)
- Data.Geospatial.Internal.GeoFeature: properties :: forall a_a1ct9 a_a1cAB. Lens (GeoFeature a_a1ct9) (GeoFeature a_a1cAB) a_a1ct9 a_a1cAB
+ Data.Geospatial.Internal.GeoFeature: properties :: forall a1 a2 f. Functor f => (a1 -> f a2) -> GeoFeature a1 -> f (GeoFeature a2)
- Data.Geospatial.Internal.GeoFeatureCollection: boundingbox :: forall a_a1i9W. Lens' (GeoFeatureCollection a_a1i9W) (Maybe BoundingBoxWithoutCRS)
+ Data.Geospatial.Internal.GeoFeatureCollection: boundingbox :: forall a f. Functor f => (Maybe BoundingBoxWithoutCRS -> f (Maybe BoundingBoxWithoutCRS)) -> GeoFeatureCollection a -> f (GeoFeatureCollection a)
- Data.Geospatial.Internal.GeoFeatureCollection: geofeatures :: forall a_a1i9W a_a1icv. Lens (GeoFeatureCollection a_a1i9W) (GeoFeatureCollection a_a1icv) (Seq (GeoFeature a_a1i9W)) (Seq (GeoFeature a_a1icv))
+ Data.Geospatial.Internal.GeoFeatureCollection: geofeatures :: forall a1 a2 f. Functor f => (Seq (GeoFeature a1) -> f (Seq (GeoFeature a2))) -> GeoFeatureCollection a1 -> f (GeoFeatureCollection a2)

Files

geojson.cabal view
@@ -1,10 +1,10 @@ name:                   geojson-version:                4.1.1+version:                4.1.2 license:                BSD3 license-file:           LICENCE author:                 Dom De Re maintainer:             Andrew Newman-copyright:              Copyright (C) 2013-2023+copyright:              Copyright (C) 2013-2025 synopsis:               A thin GeoJSON Layer above the aeson library category:               Data description:            A thin GeoJSON Layer above the aeson library.@@ -27,17 +27,17 @@ source-repository       this     type:               git     location:           https://github.com/zellige/hs-geojson.git-    tag:                4.1.1+    tag:                4.1.2  library     hs-source-dirs:     src     build-depends:      base            >= 4.9 && < 5                     ,   aeson           >= 2.0.1.0 && < 3-                    ,   containers      >= 0.5.7.1 && < 0.7-                    ,   deepseq         >= 1.4.2.0 && < 1.5+                    ,   containers      >= 0.5.7.1 && < 0.9+                    ,   deepseq         >= 1.4.2.0 && < 1.6                     ,   lens            >= 4.11                     ,   semigroups      >= 0.16-                    ,   text            >= 1.2.3.0 && < 2.1+                    ,   text            >= 1.2.3.0 && < 2.2                     ,   scientific      >= 0.2.0 && < 0.4                     ,   transformers    >= 0.3 && < 0.7                     ,   validation      >= 1 && < 2.0@@ -68,14 +68,14 @@     type:               exitcode-stdio-1.0     build-depends:      base              >= 4.9 && < 5                     ,   aeson             >= 2.0.1.0 && < 3-                    ,   bytestring        >= 0.10.8.1 && < 0.12-                    ,   containers        >= 0.5.7.1  && < 0.7+                    ,   bytestring        >= 0.10.8.1 && < 0.13+                    ,   containers        >= 0.5.7.1  && < 0.8                     ,   geojson-                    ,   hspec             >= 2.5 && < 2.10-                    ,   tasty             >= 0.8 && <0.13 || >=1.0 && <1.5+                    ,   hspec             >= 2.5 && < 2.12+                    ,   tasty             >= 0.8 && <0.13 || >=1.0 && <1.6                     ,   tasty-hspec       >= 1.2 && < 1.3-                    ,   tasty-quickcheck  >= 0.3 && <0.9 || >=0.9.1 && <0.11-                    ,   text              >= 1.2.3.0  && < 2.1+                    ,   tasty-quickcheck  >= 0.3 && <0.9 || >=0.9.1 && <0.12+                    ,   text              >= 1.2.3.0  && < 2.2                     ,   validation        >= 1 && < 2.0     other-modules:      Arbitrary                     ,   Fixture
src/Data/LineString.hs view
@@ -172,6 +172,10 @@   --  foldr :: (a -> b -> b) -> b -> LineString a -> b   foldr f u (LineString x y zs) = f x (f y (Foldable.foldr f u zs)) +  -- we implement these methods for improved performance+  null _ = False+  length (LineString _ _ zs) = 2 + Sequence.length zs+ instance Traversable LineString where   --  sequenceA :: (Traversable t, Applicative f) => t (f a) -> f (t a)   sequenceA (LineString fx fy fzs) = LineString <$> fx <*> fy <*> sequenceA fzs
src/Data/LinearRing.hs view
@@ -200,6 +200,10 @@   --  foldr :: (a -> b -> b) -> b -> LinearRing a -> b   foldr f u (LinearRing x y z ws) = f x (f y (f z (Foldable.foldr f (f x u) ws))) +  -- we implement these methods for improved performance+  null _ = False+  length (LinearRing _ _ _ ws) = 4 + Sequence.length ws+ -- | -- When traversing this Structure, the Applicative context -- of the last element will be appended to the end to close the loop
src/Data/SeqHelper.hs view
@@ -26,7 +26,7 @@ sequenceTail _ = Sequence.empty {-# INLINE sequenceTail #-} -removeNextDuplicate :: Eq a => Sequence.Seq a -> Sequence.Seq a+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.:<| _))