packages feed

mono-traversable 1.0.12.0 → 1.0.13.0

raw patch · 3 files changed

+33/−3 lines, 3 filesdep ~basePVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base

API changes (from Hackage documentation)

+ Data.MonoTraversable: WrappedPoly :: f a -> WrappedPoly f a
+ Data.MonoTraversable: [unwrapPoly] :: WrappedPoly f a -> f a
+ Data.MonoTraversable: instance Data.Foldable.Foldable f => Data.Foldable.Foldable (Data.MonoTraversable.WrappedPoly f)
+ Data.MonoTraversable: instance Data.Foldable.Foldable f => Data.MonoTraversable.MonoFoldable (Data.MonoTraversable.WrappedPoly f a)
+ Data.MonoTraversable: instance GHC.Base.Applicative f => Data.MonoTraversable.MonoPointed (Data.MonoTraversable.WrappedPoly f a)
+ Data.MonoTraversable: instance GHC.Base.Applicative f => GHC.Base.Applicative (Data.MonoTraversable.WrappedPoly f)
+ Data.MonoTraversable: instance GHC.Base.Functor f => Data.MonoTraversable.MonoFunctor (Data.MonoTraversable.WrappedPoly f a)
+ Data.MonoTraversable: instance GHC.Base.Functor f => GHC.Base.Functor (Data.MonoTraversable.WrappedPoly f)
+ Data.MonoTraversable: instance GHC.Base.Monad f => GHC.Base.Monad (Data.MonoTraversable.WrappedPoly f)
+ Data.MonoTraversable: newtype WrappedPoly f a

Files

ChangeLog.md view
@@ -1,3 +1,7 @@+## 1.0.13.0+* Added `WrappedPoly` to `Data.MonoTraversable`+  [#180](https://github.com/snoyberg/mono-traversable/pull/180)+ ## 1.0.12.0 * Added `filterSet` to `Data.Containers` * Use container specific implementations for `filterSet` and `filterMap`
mono-traversable.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: bb2c95aee7a253f7f93bf9fb96eeb108b577eb9e3bf4015d290187a0f4dafc28+-- hash: f15c018a84778989ad8a6b3271167acba04984c689d9620523b6855ce2ec78f1  name:           mono-traversable-version:        1.0.12.0+version:        1.0.13.0 synopsis:       Type classes for mapping, folding, and traversing monomorphic containers description:    Please see the README at <https://www.stackage.org/package/mono-traversable> category:       Data@@ -39,7 +39,7 @@       src   ghc-options: -Wall   build-depends:-      base >=4.9 && <5+      base >=4.10 && <5     , bytestring >=0.9     , containers >=0.5.8     , hashable
src/Data/MonoTraversable.hs view
@@ -1,11 +1,13 @@ {-# LANGUAGE ConstrainedClassMethods #-} {-# LANGUAGE CPP                     #-} {-# LANGUAGE DefaultSignatures       #-}+{-# LANGUAGE DerivingStrategies      #-} {-# LANGUAGE FlexibleContexts        #-} {-# LANGUAGE FlexibleInstances       #-} {-# LANGUAGE TypeFamilies            #-} {-# LANGUAGE TypeOperators           #-} {-# LANGUAGE UndecidableInstances    #-}+{-# LANGUAGE GeneralizedNewtypeDeriving #-} -- | Type classes mirroring standard typeclasses, but working with monomorphic containers. -- -- The motivation is that some commonly used data types (i.e., 'ByteString' and@@ -1382,3 +1384,27 @@         ointercalate x = T.intercalate x . otoList #-} {-# RULES "intercalate LText" forall x.         ointercalate x = TL.intercalate x . otoList #-}++-- | Provides a `MonoFoldable`, `MonoFunctor` or `MonoPointed` for an arbitrary+-- `F.Foldable`, `Functor` or `Applicative`.+--+-- Useful for, e.g., passing a `F.Foldable` type you don't own into a+-- function that expects a `MonoFoldable`.+--+-- > // package A+-- > data MyList a = MyList [a] deriving Foldable+-- >+-- > // package B+-- > process :: MonoFoldable mono => mono -> IO ()+-- >+-- > // package C+-- > process (WrappedPoly (MyList []))+--+-- @since 1.0.13.0+newtype WrappedPoly f a = WrappedPoly { unwrapPoly :: f a }+    deriving newtype (F.Foldable, Functor, Applicative, Monad)++type instance Element (WrappedPoly f a) = a+instance F.Foldable f  => MonoFoldable (WrappedPoly f a)+instance Functor f     => MonoFunctor (WrappedPoly f a)+instance Applicative f => MonoPointed (WrappedPoly f a)