packages feed

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 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