packages feed

semigroupoid-extras 0.2.4.1 → 0.2.5

raw patch · 3 files changed

+11/−1 lines, 3 filesdep +groupoidsPVP ok

version bump matches the API change (PVP)

Dependencies added: groupoids

API changes (from Hackage documentation)

+ Data.Semigroupoid.Coproduct: instance (Groupoid j, Groupoid k) => Groupoid (Coproduct j k)
+ Data.Semigroupoid.Product: instance (Groupoid j, Groupoid k) => Groupoid (Product j k)

Files

Data/Semigroupoid/Coproduct.hs view
@@ -4,6 +4,7 @@  import Data.Semigroupoid import Data.Semigroupoid.Dual+import Data.Groupoid  data L a data R a@@ -16,6 +17,10 @@   L f `o` L g = L (f `o` g)   R f `o` R g = R (f `o` g)   _ `o` _ = error "GADT fail"++instance (Groupoid j, Groupoid k) => Groupoid (Coproduct j k) where+  inv (L f) = L (inv f)+  inv (R f) = R (inv f)  distributeDualCoproduct :: Dual (Coproduct j k) a b -> Coproduct (Dual j) (Dual k) a b distributeDualCoproduct (Dual (L l)) = L (Dual l)
Data/Semigroupoid/Product.hs view
@@ -7,12 +7,16 @@  import Data.Semigroupoid import Data.Semigroupoid.Dual+import Data.Groupoid  data Product j k a b where   Pair :: j a b -> k a' b' -> Product j k (a,a') (b,b')  instance (Semigroupoid j, Semigroupoid k) => Semigroupoid (Product j k) where   Pair w x `o` Pair y z = Pair (w `o` y) (x `o` z)++instance (Groupoid j, Groupoid k) => Groupoid (Product j k) where+  inv (Pair w x) = Pair (inv w) (inv x)  distributeDualProduct :: Dual (Product j k) a b -> Product (Dual j) (Dual k) a b distributeDualProduct (Dual (Pair l r)) = Pair (Dual l) (Dual r)
semigroupoid-extras.cabal view
@@ -1,6 +1,6 @@ name:          semigroupoid-extras category:      Control-version:       0.2.4.1+version:       0.2.5 license:       BSD3 cabal-version: >= 1.6 license-file:  LICENSE@@ -22,6 +22,7 @@     base >= 4 && < 5,     distributive >= 0.2 && < 0.3,     semigroupoids >= 1.2.2 && < 1.3,+    groupoids >= 0.1.1 && < 0.2,     comonad >= 1.1 && < 1.2    exposed-modules: