packages feed

cursor 0.3.1.0 → 0.3.2.0

raw patch · 3 files changed

+31/−5 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Cursor.Tree.Types: instance Data.Foldable.Foldable Cursor.Tree.Types.CForest
+ Cursor.Tree.Types: instance Data.Foldable.Foldable Cursor.Tree.Types.CTree
+ Cursor.Tree.Types: instance Data.Traversable.Traversable Cursor.Tree.Types.CForest
+ Cursor.Tree.Types: instance Data.Traversable.Traversable Cursor.Tree.Types.CTree

Files

CHANGELOG.md view
@@ -1,5 +1,12 @@ # Changelog +## [0.3.2.0] - 2021-12-03++### Added++* `Foldable` and `Traversable` instance for `CTree`+* `Foldable` and `Traversable` instance for `CForest`+ ## [0.3.1.0] - 2021-11-23  ### Added@@ -11,9 +18,9 @@  ## [0.3.0.0] - 2020-02-14 -### Changed+### Added -- NFData instances for benchmarks+- `NFData` instances for benchmarks  ## [0.2.0.0] - 2019-09-23 
cursor.cabal view
@@ -1,13 +1,13 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.34.4.+-- This file has been generated from package.yaml by hpack version 0.34.5. -- -- see: https://github.com/sol/hpack ----- hash: 295467a341ff6e00d4d214636b3656ec0c9a1e9edbd8a56c8801ff54b64d7445+-- hash: 6fe2aa234542609cd72561ea24a95b4c776348d851658752b61fdff8c0c80542  name:           cursor-version:        0.3.1.0+version:        0.3.2.0 synopsis:       Purely Functional Cursors description:    Purely Functional Cursors for common data structures                 .
src/Cursor/Tree/Types.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE DeriveFunctor #-} {-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE LambdaCase #-} {-# LANGUAGE TypeFamilies #-}  module Cursor.Tree.Types@@ -106,6 +107,12 @@  instance NFData a => NFData (CTree a) +instance Foldable CTree where+  foldMap f (CNode a cf) = f a `mappend` foldMap f cf++instance Traversable CTree where+  traverse f (CNode a cf) = CNode <$> f a <*> traverse f cf+ makeCTree :: Tree a -> CTree a makeCTree = cTree False @@ -124,6 +131,18 @@ instance Validity a => Validity (CForest a)  instance NFData a => NFData (CForest a)++instance Foldable CForest where+  foldMap f = \case+    EmptyCForest -> mempty+    ClosedForest ne -> foldMap (foldMap f) ne+    OpenForest ne -> foldMap (foldMap f) ne++instance Traversable CForest where+  traverse f = \case+    EmptyCForest -> pure EmptyCForest+    ClosedForest ne -> ClosedForest <$> traverse (traverse f) ne+    OpenForest ne -> OpenForest <$> traverse (traverse f) ne  makeCForest :: Forest a -> CForest a makeCForest = cForest True