packages feed

composition-extra 1.1.0 → 1.2.0

raw patch · 3 files changed

+237/−1 lines, 3 filesdep +compositionPVP ok

version bump matches the API change (PVP)

Dependencies added: composition

API changes (from Hackage documentation)

+ Data.Functor.Syntax: (<.$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => (b -> c) -> f3 (f2 (f1 (f0 (a -> b)))) -> f3 (f2 (f1 (f0 (a -> c))))
+ Data.Functor.Syntax: (<.$$$>) :: (Functor f0, Functor f1, Functor f2) => (b -> c) -> f2 (f1 (f0 (a -> b))) -> f2 (f1 (f0 (a -> c)))
+ Data.Functor.Syntax: (<.$$>) :: (Functor f0, Functor f1) => (b -> c) -> f1 (f0 (a -> b)) -> f1 (f0 (a -> c))
+ Data.Functor.Syntax: (<.$>) :: Functor f0 => (b -> c) -> f0 (a -> b) -> f0 (a -> c)
+ Data.Functor.Syntax: (<.*$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => (c -> d) -> f3 (f2 (f1 (f0 (a -> b -> c)))) -> f3 (f2 (f1 (f0 (a -> b -> d))))
+ Data.Functor.Syntax: (<.*$$$>) :: (Functor f0, Functor f1, Functor f2) => (c -> d) -> f2 (f1 (f0 (a -> b -> c))) -> f2 (f1 (f0 (a -> b -> d)))
+ Data.Functor.Syntax: (<.*$$>) :: (Functor f0, Functor f1) => (c -> d) -> f1 (f0 (a -> b -> c)) -> f1 (f0 (a -> b -> d))
+ Data.Functor.Syntax: (<.*$>) :: Functor f0 => (c -> d) -> f0 (a -> b -> c) -> f0 (a -> b -> d)
+ Data.Functor.Syntax: (<.**$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => (d -> e) -> f3 (f2 (f1 (f0 (a -> b -> c -> d)))) -> f3 (f2 (f1 (f0 (a -> b -> c -> e))))
+ Data.Functor.Syntax: (<.**$$$>) :: (Functor f0, Functor f1, Functor f2) => (d -> e) -> f2 (f1 (f0 (a -> b -> c -> d))) -> f2 (f1 (f0 (a -> b -> c -> e)))
+ Data.Functor.Syntax: (<.**$$>) :: (Functor f0, Functor f1) => (d -> e) -> f1 (f0 (a -> b -> c -> d)) -> f1 (f0 (a -> b -> c -> e))
+ Data.Functor.Syntax: (<.**$>) :: Functor f0 => (d -> e) -> f0 (a -> b -> c -> d) -> f0 (a -> b -> c -> e)
+ Data.Functor.Syntax: (<~$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) => f4 (f3 (f2 (f1 (f0 (a -> b))))) -> a -> f4 (f3 (f2 (f1 (f0 b))))
+ Data.Functor.Syntax: (<~$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => f3 (f2 (f1 (f0 (a -> b)))) -> a -> f3 (f2 (f1 (f0 b)))
+ Data.Functor.Syntax: (<~$$$>) :: (Functor f0, Functor f1, Functor f2) => f2 (f1 (f0 (a -> b))) -> a -> f2 (f1 (f0 b))
+ Data.Functor.Syntax: (<~$$>) :: (Functor f0, Functor f1) => f1 (f0 (a -> b)) -> a -> f1 (f0 b)
+ Data.Functor.Syntax: (<~$>) :: Functor f0 => f0 (a -> b) -> a -> f0 b
+ Data.Functor.Syntax: (<~~$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) => f4 (f3 (f2 (f1 (f0 (a -> b -> c))))) -> b -> f4 (f3 (f2 (f1 (f0 (a -> c)))))
+ Data.Functor.Syntax: (<~~$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => f3 (f2 (f1 (f0 (a -> b -> c)))) -> b -> f3 (f2 (f1 (f0 (a -> c))))
+ Data.Functor.Syntax: (<~~$$$>) :: (Functor f0, Functor f1, Functor f2) => f2 (f1 (f0 (a -> b -> c))) -> b -> f2 (f1 (f0 (a -> c)))
+ Data.Functor.Syntax: (<~~$$>) :: (Functor f0, Functor f1) => f1 (f0 (a -> b -> c)) -> b -> f1 (f0 (a -> c))
+ Data.Functor.Syntax: (<~~$>) :: Functor f0 => f0 (a -> b -> c) -> b -> f0 (a -> c)
+ Data.Functor.Syntax: (<~~~$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) => f4 (f3 (f2 (f1 (f0 (a -> b -> c -> d))))) -> c -> f4 (f3 (f2 (f1 (f0 (a -> b -> d)))))
+ Data.Functor.Syntax: (<~~~$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) => f3 (f2 (f1 (f0 (a -> b -> c -> d)))) -> c -> f3 (f2 (f1 (f0 (a -> b -> d))))
+ Data.Functor.Syntax: (<~~~$$$>) :: (Functor f0, Functor f1, Functor f2) => f2 (f1 (f0 (a -> b -> c -> d))) -> c -> f2 (f1 (f0 (a -> b -> d)))
+ Data.Functor.Syntax: (<~~~$$>) :: (Functor f0, Functor f1) => f1 (f0 (a -> b -> c -> d)) -> c -> f1 (f0 (a -> b -> d))
+ Data.Functor.Syntax: (<~~~$>) :: Functor f0 => f0 (a -> b -> c -> d) -> c -> f0 (a -> b -> d)

Files

composition-extra.cabal view
@@ -1,5 +1,5 @@ name:                composition-extra-version:             1.1.0+version:             1.2.0 synopsis:            Combinators for unorthodox structure composition  license:             BSD3@@ -29,6 +29,7 @@                        Control.Monad.Syntax.Six   build-depends:       base >= 4.6 && < 5                      , contravariant+                     , composition  source-repository head   type:     git
src/Data/Functor/Contravariant/Syntax.hs view
@@ -8,26 +8,36 @@        -> f a (<-$>) = contramap +infixr 8 <-$>+ (<-$$>) :: (Contravariant f0, Contravariant f1) =>           (a -> b)        -> f1 (f0 a)        -> f1 (f0 b) (<-$$>) = contramap . contramap +infixr 8 <-$$>+ (<-$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2) =>           (a -> b)        -> f2 (f1 (f0 b))        -> f2 (f1 (f0 a)) (<-$$$>) = contramap . contramap . contramap +infixr 8 <-$$$>+ (<-$$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2, Contravariant f3) =>           (a -> b)        -> f3 (f2 (f1 (f0 a)))        -> f3 (f2 (f1 (f0 b))) (<-$$$$>) = contramap . contramap . contramap . contramap +infixr 8 <-$$$$>+ (<-$$$$$>) :: (Contravariant f0, Contravariant f1, Contravariant f2, Contravariant f3, Contravariant f4) =>           (a -> b)        -> f4 (f3 (f2 (f1 (f0 b))))        -> f4 (f3 (f2 (f1 (f0 a)))) (<-$$$$$>) = contramap . contramap . contramap . contramap . contramap++infixr 8 <-$$$$$>
src/Data/Functor/Syntax.hs view
@@ -1,26 +1,251 @@ module Data.Functor.Syntax where +import Data.Composition+import Data.Function.Apply ++-- * Nested Mapping+ (<$$>) :: (Functor f0, Functor f1) =>           (a -> b)        -> f1 (f0 a)        -> f1 (f0 b) (<$$>) = fmap . fmap +infixr 8 <$$>+ (<$$$>) :: (Functor f0, Functor f1, Functor f2) =>           (a -> b)        -> f2 (f1 (f0 a))        -> f2 (f1 (f0 b)) (<$$$>) = fmap . fmap . fmap +infixr 8 <$$$>+ (<$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>           (a -> b)        -> f3 (f2 (f1 (f0 a)))        -> f3 (f2 (f1 (f0 b))) (<$$$$>) = fmap . fmap . fmap . fmap +infixr 8 <$$$$>+ (<$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) =>           (a -> b)        -> f4 (f3 (f2 (f1 (f0 a))))        -> f4 (f3 (f2 (f1 (f0 b)))) (<$$$$$>) = fmap . fmap . fmap . fmap . fmap++infixr 8 <$$$$$>++-- * Nested Application++(<~$>) :: Functor f0 =>+          f0 (a -> b)+       -> a -> f0 b+(<~$>) f x = fmap ($ x) f++infixl 8 <~$>++(<~~$>) :: Functor f0 =>+          f0 (a -> b -> c)+       -> b -> f0 (a -> c)+(<~~$>) f x = fmap (-$ x) f++infixl 8 <~~$>++(<~~~$>) :: Functor f0 =>+          f0 (a -> b -> c -> d)+       -> c -> f0 (a -> b -> d)+(<~~~$>) f x = fmap (--$ x) f++infixl 8 <~~~$>++(<~$$>) :: (Functor f0, Functor f1) =>+           f1 (f0 (a -> b))+        -> a -> f1 (f0 b)+(<~$$>) f x = fmap (<~$> x) f++infixl 8 <~$$>++(<~~$$>) :: (Functor f0, Functor f1) =>+            f1 (f0 (a -> b -> c))+         -> b -> f1 (f0 (a -> c))+(<~~$$>) f x = fmap (<~~$> x) f++infixl 8 <~~$$>++(<~~~$$>) :: (Functor f0, Functor f1) =>+             f1 (f0 (a -> b -> c -> d))+          -> c -> f1 (f0 (a -> b -> d))+(<~~~$$>) f x = fmap (<~~~$> x) f++infixl 8 <~~~$$>+++(<~$$$>) :: (Functor f0, Functor f1, Functor f2) =>+            f2 (f1 (f0 (a -> b)))+         -> a -> f2 (f1 (f0 b))+(<~$$$>) f x = fmap (<~$$> x) f++infixl 8 <~$$$>++(<~~$$$>) :: (Functor f0, Functor f1, Functor f2) =>+            f2 (f1 (f0 (a -> b -> c)))+         -> b -> f2 (f1 (f0 (a -> c)))+(<~~$$$>) f x = fmap (<~~$$> x) f++infixl 8 <~~$$$>++(<~~~$$$>) :: (Functor f0, Functor f1, Functor f2) =>+             f2 (f1 (f0 (a -> b -> c -> d)))+          -> c -> f2 (f1 (f0 (a -> b -> d)))+(<~~~$$$>) f x = fmap (<~~~$$> x) f++infixl 8 <~~~$$$>+++(<~$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>+             f3 (f2 (f1 (f0 (a -> b))))+          -> a -> f3 (f2 (f1 (f0 b)))+(<~$$$$>) f x = fmap (<~$$$> x) f++infixl 8 <~$$$$>++(<~~$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>+            f3 (f2 (f1 (f0 (a -> b -> c))))+         -> b -> f3 (f2 (f1 (f0 (a -> c))))+(<~~$$$$>) f x = fmap (<~~$$$> x) f++infixl 8 <~~$$$$>++(<~~~$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>+             f3 (f2 (f1 (f0 (a -> b -> c -> d))))+          -> c -> f3 (f2 (f1 (f0 (a -> b -> d))))+(<~~~$$$$>) f x = fmap (<~~~$$$> x) f++infixl 8 <~~~$$$$>+++(<~$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) =>+             f4 (f3 (f2 (f1 (f0 (a -> b)))))+          -> a -> f4 (f3 (f2 (f1 (f0 b))))+(<~$$$$$>) f x = fmap (<~$$$$> x) f++infixl 8 <~$$$$$>++(<~~$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) =>+            f4 (f3 (f2 (f1 (f0 (a -> b -> c)))))+         -> b -> f4 (f3 (f2 (f1 (f0 (a -> c)))))+(<~~$$$$$>) f x = fmap (<~~$$$$> x) f++infixl 8 <~~$$$$$>++(<~~~$$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3, Functor f4) =>+             f4 (f3 (f2 (f1 (f0 (a -> b -> c -> d)))))+          -> c -> f4 (f3 (f2 (f1 (f0 (a -> b -> d)))))+(<~~~$$$$$>) f x = fmap (<~~~$$$$> x) f++infixl 8 <~~~$$$$$>+++-- * Nested Compositon++(<.$>) :: Functor f0 =>+          (b -> c)+       -> f0 (a -> b)+       -> f0 (a -> c)+f <.$> g = fmap (f .) g++infixr 8 <.$>++(<.*$>) :: Functor f0 =>+           (c -> d)+        -> f0 (a -> b -> c)+        -> f0 (a -> b -> d)+f <.*$> g = fmap (f .*) g++infixr 8 <.*$>++(<.**$>) :: Functor f0 =>+           (d -> e)+        -> f0 (a -> b -> c -> d)+        -> f0 (a -> b -> c -> e)+f <.**$> g = fmap (f .**) g++infixr 8 <.**$>+++(<.$$>) :: (Functor f0, Functor f1) =>+          (b -> c)+       -> f1 (f0 (a -> b))+       -> f1 (f0 (a -> c))+f <.$$> g = (f .) <$$> g++infixr 8 <.$$>++(<.*$$>) :: (Functor f0, Functor f1) =>+           (c -> d)+        -> f1 (f0 (a -> b -> c))+        -> f1 (f0 (a -> b -> d))+f <.*$$> g = (f .*) <$$> g++infixr 8 <.*$$>++(<.**$$>) :: (Functor f0, Functor f1) =>+           (d -> e)+        -> f1 (f0 (a -> b -> c -> d))+        -> f1 (f0 (a -> b -> c -> e))+f <.**$$> g = (f .**) <$$> g++infixr 8 <.**$$>+++(<.$$$>) :: (Functor f0, Functor f1, Functor f2) =>+          (b -> c)+       -> f2 (f1 (f0 (a -> b)))+       -> f2 (f1 (f0 (a -> c)))+f <.$$$> g = (f .) <$$$> g++infixr 8 <.$$$>++(<.*$$$>) :: (Functor f0, Functor f1, Functor f2) =>+           (c -> d)+        -> f2 (f1 (f0 (a -> b -> c)))+        -> f2 (f1 (f0 (a -> b -> d)))+f <.*$$$> g = (f .*) <$$$> g++infixr 8 <.*$$$>++(<.**$$$>) :: (Functor f0, Functor f1, Functor f2) =>+           (d -> e)+        -> f2 (f1 (f0 (a -> b -> c -> d)))+        -> f2 (f1 (f0 (a -> b -> c -> e)))+f <.**$$$> g = (f .**) <$$$> g++infixr 8 <.**$$$>+++(<.$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>+          (b -> c)+       -> f3 (f2 (f1 (f0 (a -> b))))+       -> f3 (f2 (f1 (f0 (a -> c))))+f <.$$$$> g = (f .) <$$$$> g++infixr 8 <.$$$$>++(<.*$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>+           (c -> d)+        -> f3 (f2 (f1 (f0 (a -> b -> c))))+        -> f3 (f2 (f1 (f0 (a -> b -> d))))+f <.*$$$$> g = (f .*) <$$$$> g++infixr 8 <.*$$$$>++(<.**$$$$>) :: (Functor f0, Functor f1, Functor f2, Functor f3) =>+           (d -> e)+        -> f3 (f2 (f1 (f0 (a -> b -> c -> d))))+        -> f3 (f2 (f1 (f0 (a -> b -> c -> e))))+f <.**$$$$> g = (f .**) <$$$$> g++infixr 8 <.**$$$$>