forest 0.1.1.1 → 0.2
raw patch · 2 files changed
+58/−2 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.Tree.Forest: instance Data.Foldable.Foldable f => Data.Semigroup.Foldable.Class.Bifoldable1 (Data.Tree.Forest.Tree f)
+ Data.Tree.Forest: instance Data.Semigroup.Foldable.Class.Foldable1 f => Data.Semigroup.Foldable.Class.Bifoldable1 (Data.Tree.Forest.Forest f)
+ Data.Tree.Forest: instance Data.Semigroup.Foldable.Class.Foldable1 f => Data.Semigroup.Foldable.Class.Foldable1 (Data.Tree.Forest.Forest f s)
+ Data.Tree.Forest: instance Data.Semigroup.Foldable.Class.Foldable1 f => Data.Semigroup.Foldable.Class.Foldable1 (Data.Tree.Forest.Tree f s)
+ Data.Tree.Forest: instance Data.Semigroup.Traversable.Class.Traversable1 f => Data.Semigroup.Traversable.Class.Bitraversable1 (Data.Tree.Forest.Forest f)
+ Data.Tree.Forest: instance Data.Semigroup.Traversable.Class.Traversable1 f => Data.Semigroup.Traversable.Class.Bitraversable1 (Data.Tree.Forest.Tree f)
+ Data.Tree.Forest: instance Data.Semigroup.Traversable.Class.Traversable1 f => Data.Semigroup.Traversable.Class.Traversable1 (Data.Tree.Forest.Forest f s)
+ Data.Tree.Forest: instance Data.Semigroup.Traversable.Class.Traversable1 f => Data.Semigroup.Traversable.Class.Traversable1 (Data.Tree.Forest.Tree f s)
Files
- forest.cabal +1/−1
- src/Data/Tree/Forest.hs +57/−1
forest.cabal view
@@ -1,5 +1,5 @@ name: forest-version: 0.1.1.1+version: 0.2 synopsis: Tree and Forest types license: MPL-2.0 license-file: LICENSE
src/Data/Tree/Forest.hs view
@@ -74,7 +74,7 @@ import Control.Monad.Fail (MonadFail) import qualified Control.Monad.Fail as F (fail) #endif-import Data.Bifoldable (Bifoldable, bifoldr)+import Data.Bifoldable (Bifoldable, bifoldl', bifoldr) import Data.Bifunctor (Bifunctor, bimap) import Data.Bitraversable (Bitraversable, bitraverse) #if __GLASGOW_HASKELL__ < 710@@ -130,6 +130,7 @@ #if __GLASGOW_HASKELL__ < 710 import Prelude hiding (foldr) #endif+import Prelude hiding (foldr1) -- deepseq -------------------------------------------------------------------@@ -149,6 +150,10 @@ import Data.Functor.Apply (Apply, (<.>)) import Data.Functor.Bind (Bind, (>>-), join) import Data.Functor.Plus (Plus, zero)+import Data.Semigroup.Bifoldable (Bifoldable1, bifoldMap1)+import Data.Semigroup.Bitraversable (Bitraversable1, bitraverse1)+import Data.Semigroup.Foldable (Foldable1, foldMap1)+import Data.Semigroup.Traversable (Traversable1, traverse1) ------------------------------------------------------------------------------@@ -229,6 +234,14 @@ ------------------------------------------------------------------------------+instance Foldable f => Bifoldable1 (Tree f) where+ bifoldMap1 _ g (Leaf a) = g a+ bifoldMap1 f g (Node s ts) =+ bifoldl' ((. f) . (<>)) ((. g) . (<>)) (f s) ts+ {-# INLINE bifoldMap1 #-}+++------------------------------------------------------------------------------ instance Traversable f => Bitraversable (Tree f) where bitraverse _ g (Leaf a) = Leaf <$> g a bitraverse f g (Node s ts) = Node <$> f s <*> bitraverse f g ts@@ -236,6 +249,13 @@ ------------------------------------------------------------------------------+instance Traversable1 f => Bitraversable1 (Tree f) where+ bitraverse1 _ g (Leaf a) = Leaf <$> g a+ bitraverse1 f g (Node s ts) = Node <$> f s <.> bitraverse1 f g ts+ {-# INLINE bitraverse1 #-}+++------------------------------------------------------------------------------ instance Functor f => Functor (Tree f s) where fmap f (Leaf a) = Leaf (f a) fmap f (Node s ts) = Node s (fmap f ts)@@ -250,6 +270,13 @@ ------------------------------------------------------------------------------+instance Foldable1 f => Foldable1 (Tree f s) where+ foldMap1 f (Leaf a) = f a+ foldMap1 f (Node _ ts) = foldMap1 f ts+ {-# INLINE foldMap1 #-}+++------------------------------------------------------------------------------ instance Traversable f => Traversable (Tree f s) where traverse f (Leaf a) = Leaf <$> f a traverse f (Node s ts) = Node s <$> traverse f ts@@ -257,6 +284,13 @@ ------------------------------------------------------------------------------+instance Traversable1 f => Traversable1 (Tree f s) where+ traverse1 f (Leaf a) = Leaf <$> f a+ traverse1 f (Node s ts) = Node s <$> traverse1 f ts+ {-# INLINE traverse1 #-}+++------------------------------------------------------------------------------ instance Functor f => Apply (Tree f s) where Leaf f <.> Leaf a = Leaf (f a) Leaf f <.> Node s ts = Node s (fmap f ts)@@ -470,12 +504,22 @@ ------------------------------------------------------------------------------+instance Foldable1 f => Bifoldable1 (Forest f) where+ bifoldMap1 f g (Forest ts) = foldMap1 (bifoldMap1 f g) ts+++------------------------------------------------------------------------------ instance Traversable f => Bitraversable (Forest f) where bitraverse f g (Forest ts) = Forest <$> traverse (bitraverse f g) ts {-# INLINE bitraverse #-} ------------------------------------------------------------------------------+instance Traversable1 f => Bitraversable1 (Forest f) where+ bitraverse1 f g (Forest ts) = Forest <$> traverse1 (bitraverse1 f g) ts+++------------------------------------------------------------------------------ instance Functor f => Functor (Forest f s) where fmap f (Forest ts) = Forest (fmap (fmap f) ts) {-# INLINE fmap #-}@@ -488,9 +532,21 @@ ------------------------------------------------------------------------------+instance Foldable1 f => Foldable1 (Forest f s) where+ foldMap1 f (Forest ts) = foldMap1 (foldMap1 f) ts+ {-# INLINE foldMap1 #-}+++------------------------------------------------------------------------------ instance Traversable f => Traversable (Forest f s) where traverse f (Forest ts) = Forest <$> traverse (traverse f) ts {-# INLINE traverse #-}+++------------------------------------------------------------------------------+instance Traversable1 f => Traversable1 (Forest f s) where+ traverse1 f (Forest ts) = Forest <$> traverse1 (traverse1 f) ts+ {-# INLINE traverse1 #-} ------------------------------------------------------------------------------