diff --git a/mono-traversable/ChangeLog.md b/mono-traversable/ChangeLog.md index 1924960..2a4db77 100644 --- a/mono-traversable/ChangeLog.md +++ b/mono-traversable/ChangeLog.md @@ -1,5 +1,9 @@ # ChangeLog for mono-traversable +## 1.0.20.0 + +* Added instances for [`Reverse`](https://hackage.haskell.org/package/transformers-0.6.1.1/docs/Data-Functor-Reverse.html#t:Reverse) data structure. + ## 1.0.19.1 * Removed 'highly experimental' warning haddock comment from Data.Containers. diff --git a/mono-traversable/package.yaml b/mono-traversable/package.yaml index 0bae5d6..e2af2ae 100644 --- a/mono-traversable/package.yaml +++ b/mono-traversable/package.yaml @@ -1,5 +1,5 @@ name: mono-traversable -version: 1.0.19.0 +version: 1.0.20.0 synopsis: Type classes for mapping, folding, and traversing monomorphic containers description: Please see the README at category: Data diff --git a/mono-traversable/src/Data/MonoTraversable.hs b/mono-traversable/src/Data/MonoTraversable.hs index 6fb921e..2093406 100644 --- a/mono-traversable/src/Data/MonoTraversable.hs +++ b/mono-traversable/src/Data/MonoTraversable.hs @@ -258,6 +258,7 @@ instance U.Unbox a => MonoFunctor (U.Vector a) where instance VS.Storable a => MonoFunctor (VS.Vector a) where omap = VS.map {-# INLINE omap #-} +-- | @since 1.0.20.0 instance MonoFunctor (f a) => MonoFunctor (Reverse f a) where omap f (Reverse t) = Reverse (omap f t) @@ -828,6 +829,7 @@ instance MonoFoldable (U1 a) instance MonoFoldable (V1 a) -- | @since 1.0.11.0 instance MonoFoldable (Proxy a) +-- | @since 1.0.20.0 instance MonoFoldable (f a) => MonoFoldable (Reverse f a) where ofoldMap f (Reverse t) = getDual (ofoldMap (Dual . f) t) ofoldr f z (Reverse t) = ofoldl' (flip f) z t @@ -1097,6 +1099,7 @@ instance MonoTraversable (U1 a) instance MonoTraversable (V1 a) -- | @since 1.0.11.0 instance MonoTraversable (Proxy a) +-- | @since 1.0.20.0 instance (MonoTraversable (f a)) => MonoTraversable (Reverse f a) where otraverse f (Reverse t) = (fmap Reverse . forwards) (otraverse (Backwards . f) t)