euler-tour-tree 0.1.0.1 → 0.1.1.0
raw patch · 2 files changed
+9/−7 lines, 2 filesdep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: base
API changes (from Hackage documentation)
- Data.EulerTourTree: instance GHC.Classes.Ord node => Data.FingerTree.Measured (Data.Set.Internal.Set (node, node), Data.Set.Internal.Set node, Data.Monoid.Sum GHC.Types.Int) (Data.EulerTourTree.EulerTourTree node)
+ Data.EulerTourTree: instance GHC.Classes.Ord node => Data.FingerTree.Measured (Data.Set.Internal.Set (node, node), Data.Set.Internal.Set node, Data.Semigroup.Internal.Sum GHC.Types.Int) (Data.EulerTourTree.EulerTourTree node)
+ Data.EulerTourTree: instance GHC.Classes.Ord node => GHC.Base.Semigroup (Data.EulerTourTree.EulerTourMonoid node)
Files
- euler-tour-tree.cabal +4/−4
- src/Data/EulerTourTree.hs +5/−3
euler-tour-tree.cabal view
@@ -1,11 +1,11 @@ name: euler-tour-tree-version: 0.1.0.1+version: 0.1.1.0 synopsis: Euler tour trees -- description: Cf README file homepage: https://github.com/k0ral/euler-tour-tree license: PublicDomain-author: koral-maintainer: koral@mailoo.org+author: chahine.moreau@gmail.com+maintainer: chahine.moreau@gmail.com category: Data build-type: Simple -- extra-source-files: ChangeLog.md@@ -27,7 +27,7 @@ exposed-modules: Data.EulerTourTree -- Data.EulerTourTree.Sized- build-depends: base >=4.9 && <4.11, containers, fingertree, mtl, parser-combinators, transformers, Unique+ build-depends: base >=4.11 && <4.12, containers, fingertree, mtl, parser-combinators, transformers, Unique hs-source-dirs: src default-language: Haskell2010
src/Data/EulerTourTree.hs view
@@ -75,14 +75,16 @@ deriving instance Show node => Show (EulerTourMonoid node) -instance Ord node => Monoid (EulerTourMonoid node) where- mempty = EulerTourMonoid mempty mempty mempty mempty mempty- EulerTourMonoid a b c d e `mappend` EulerTourMonoid a' b' c' d' e' = result where+instance Ord node => Semigroup (EulerTourMonoid node) where+ EulerTourMonoid a b c d e <> EulerTourMonoid a' b' c' d' e' = result where result = EulerTourMonoid (a <> a') (b <> bMiddle <> b') (c <> c') (d <> d') (e <> e') bMiddle = fromMaybe mempty $ do l <- getLast c f <- getFirst a' return $ Set.singleton (min l f, max l f)++instance Ord node => Monoid (EulerTourMonoid node) where+ mempty = EulerTourMonoid mempty mempty mempty mempty mempty instance Ord node => Measured (EulerTourMonoid node) (EulerTourNode node) where measure (EulerTourNode node) = EulerTourMonoid (pure node) mempty (pure node) (Set.singleton node) (pure 1)