meep 0.1.0.0 → 0.1.1.0
raw patch · 3 files changed
+31/−4 lines, 3 filesdep +bifunctorsPVP ok
version bump matches the API change (PVP)
Dependencies added: bifunctors
API changes (from Hackage documentation)
+ Data.Meep: instance Biapply Meep
+ Data.Meep: instance Bifoldable Meep
+ Data.Meep: instance Bifunctor Meep
+ Data.Meep: instance Bitraversable Meep
Files
- CHANGELOG.md +5/−0
- meep.cabal +4/−2
- src/Data/Meep.hs +22/−2
CHANGELOG.md view
@@ -1,3 +1,8 @@+0.1.1.0+=======++ * `Bifunctor`, `Biapply`, `Bifoldable`, `Bitraversable`+ 0.1.0.0 =======
meep.cabal view
@@ -1,5 +1,5 @@ name: meep-version: 0.1.0.0+version: 0.1.1.0 synopsis: A silly container description:@@ -22,13 +22,14 @@ source-repository this type: git location: https://github.com/supki/meep- tag: 0.1.0.0+ tag: 0.1.1.0 library default-language: Haskell2010 build-depends: base >= 4.6 && < 5+ , bifunctors >= 4 && < 5 , lens >= 4 && < 5 , semigroups >= 0.9 && < 1 hs-source-dirs:@@ -43,6 +44,7 @@ exitcode-stdio-1.0 build-depends: base >= 4.6+ , bifunctors , hspec , hspec-expectations-lens >= 0.3 , lens
src/Data/Meep.hs view
@@ -29,12 +29,15 @@ , elems ) where -import Control.Applicative (pure)+import Control.Applicative (pure, liftA2) import Control.Lens+import Data.Bifoldable (Bifoldable(..))+import Data.Bifunctor.Apply (Biapply(..))+import Data.Bitraversable (Bitraversable(..)) import Data.Monoid (mempty) import Data.Data (Data, Typeable) import Data.Foldable (Foldable)-import Data.Semigroup (Semigroup(..))+import Data.Semigroup (Semigroup(..), Monoid(..)) import GHC.Generics (Generic) import Prelude hiding (null, lookup) #ifdef TEST@@ -55,6 +58,23 @@ Empty <> _ = Empty _ <> Empty = Empty Meep k v <> Meep k' v' = bool Empty (Meep k (v <> v')) (k == k')++instance Bifunctor Meep where+ bimap _ _ Empty = Empty+ bimap f g (Meep k v) = Meep (f k) (g v)++instance Biapply Meep where+ Empty <<.>> _ = Empty+ _ <<.>> Empty = Empty+ Meep fk fv <<.>> Meep k v = Meep (fk k) (fv v)++instance Bifoldable Meep where+ bifoldMap _ _ Empty = mempty+ bifoldMap f g (Meep k v) = f k `mappend` g v++instance Bitraversable Meep where+ bitraverse _ _ Empty = pure Empty+ bitraverse f g (Meep k v) = liftA2 Meep (f k) (g v) instance Eq k => Ixed (Meep k a) where ix = ixAt