composition-extra 1.0.0 → 1.0.0.1
raw patch · 6 files changed
+175/−1 lines, 6 filesdep ~basePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: base
API changes (from Hackage documentation)
Files
- composition-extra.cabal +6/−1
- src/Control/Monad/Syntax/Five.hs +42/−0
- src/Control/Monad/Syntax/Four.hs +34/−0
- src/Control/Monad/Syntax/Six.hs +50/−0
- src/Control/Monad/Syntax/Three.hs +26/−0
- src/Control/Monad/Syntax/Two.hs +17/−0
composition-extra.cabal view
@@ -1,5 +1,5 @@ name: composition-extra-version: 1.0.0+version: 1.0.0.1 synopsis: Combinators for unorthodox structure composition license: BSD3@@ -17,6 +17,11 @@ Data.Functor.Contravariant.Syntax Data.Function.Contravariant.Syntax Control.Monad.Syntax+ Control.Monad.Syntax.Two+ Control.Monad.Syntax.Three+ Control.Monad.Syntax.Four+ Control.Monad.Syntax.Five+ Control.Monad.Syntax.Six build-depends: base >= 4.6 && < 5 , contravariant
+ src/Control/Monad/Syntax/Five.hs view
@@ -0,0 +1,42 @@+module Control.Monad.Syntax.Five where+++(=====<<) :: Monad m =>+ (a -> b -> c -> d -> e -> m f)+ -> m a+ -> b -> c -> d -> e -> m f+(=====<<) mf x b c d e = x >>= (\a -> mf a b c d e)++infixr 1 =====<<++(=.===<<) :: Monad m =>+ (a -> b -> c -> d -> e -> m f)+ -> m b+ -> a -> c -> d -> e -> m f+(=.===<<) mf x a c d e = x >>= (\b -> mf a b c d e)++infixr 1 =.===<<++(==.==<<) :: Monad m =>+ (a -> b -> c -> d -> e -> m f)+ -> m c+ -> a -> b -> d -> e -> m f+(==.==<<) mf x a b d e = x >>= (\c -> mf a b c d e)++infixr 1 ==.==<<++(===.=<<) :: Monad m =>+ (a -> b -> c -> d -> e -> m f)+ -> m d+ -> a -> b -> c -> e -> m f+(===.=<<) mf x a b c e = x >>= (\d -> mf a b c d e)++infixr 1 ===.=<<++(====.<<) :: Monad m =>+ (a -> b -> c -> d -> e -> m f)+ -> m e+ -> a -> b -> c -> d -> m f+(====.<<) mf x a b c d = x >>= mf a b c d++infixr 1 ====.<<
+ src/Control/Monad/Syntax/Four.hs view
@@ -0,0 +1,34 @@+module Control.Monad.Syntax.Four where+++(====<<) :: Monad m =>+ (a -> b -> c -> d -> m e)+ -> m a+ -> b -> c -> d -> m e+(====<<) mf x b c d = x >>= (\a -> mf a b c d)++infixr 1 ====<<++(=.==<<) :: Monad m =>+ (a -> b -> c -> d -> m e)+ -> m b+ -> a -> c -> d -> m e+(=.==<<) mf x a c d = x >>= (\b -> mf a b c d)++infixr 1 =.==<<++(==.=<<) :: Monad m =>+ (a -> b -> c -> d -> m e)+ -> m c+ -> a -> b -> d -> m e+(==.=<<) mf x a b d = x >>= (\c -> mf a b c d)++infixr 1 ==.=<<++(===.<<) :: Monad m =>+ (a -> b -> c -> d -> m e)+ -> m d+ -> a -> b -> c -> m e+(===.<<) mf x a b c = x >>= mf a b c++infixr 1 ===.<<
+ src/Control/Monad/Syntax/Six.hs view
@@ -0,0 +1,50 @@+module Control.Monad.Syntax.Six where+++(======<<) :: Monad m =>+ (a -> b -> c -> d -> e -> f -> m g)+ -> m a+ -> b -> c -> d -> e -> f -> m g+(======<<) mf x b c d e f = x >>= (\a -> mf a b c d e f)++infixr 1 ======<<++(=.====<<) :: Monad m =>+ (a -> b -> c -> d -> e -> f -> m g)+ -> m b+ -> a -> c -> d -> e -> f -> m g+(=.====<<) mf x a c d e f = x >>= (\b -> mf a b c d e f)++infixr 1 =.====<<++(==.===<<) :: Monad m =>+ (a -> b -> c -> d -> e -> f -> m g)+ -> m c+ -> a -> b -> d -> e -> f -> m g+(==.===<<) mf x a b d e f = x >>= (\c -> mf a b c d e f)++infixr 1 ==.===<<++(===.==<<) :: Monad m =>+ (a -> b -> c -> d -> e -> f -> m g)+ -> m d+ -> a -> b -> c -> e -> f -> m g+(===.==<<) mf x a b c e f = x >>= (\d -> mf a b c d e f)++infixr 1 ===.==<<++(====.=<<) :: Monad m =>+ (a -> b -> c -> d -> e -> f -> m g)+ -> m e+ -> a -> b -> c -> d -> f -> m g+(====.=<<) mf x a b c d f = x >>= (\e -> mf a b c d e f)++infixr 1 ====.=<<++(=====.<<) :: Monad m =>+ (a -> b -> c -> d -> e -> f -> m g)+ -> m f+ -> a -> b -> c -> d -> e -> m g+(=====.<<) mf x a b c d e = x >>= mf a b c d e++infixr 1 =====.<<
+ src/Control/Monad/Syntax/Three.hs view
@@ -0,0 +1,26 @@+module Control.Monad.Syntax.Three where+++(===<<) :: Monad m =>+ (a -> b -> c -> m d)+ -> m a+ -> b -> c -> m d+(===<<) mf inp b c = inp >>= (\a -> mf a b c)++infixl 1 ===<<++(=.=<<) :: Monad m =>+ (a -> b -> c -> m d)+ -> m b+ -> a -> c -> m d+(=.=<<) mf inp a c = inp >>= (\b -> mf a b c)++infixl 1 =.=<<++(==.<<) :: Monad m =>+ (a -> b -> c -> m d)+ -> m c+ -> a -> b -> m d+(==.<<) mf inp a b = inp >>= mf a b++infixl 1 ==.<<
+ src/Control/Monad/Syntax/Two.hs view
@@ -0,0 +1,17 @@+module Control.Monad.Syntax.Two where++(==<<) :: Monad m =>+ (a -> b -> m c)+ -> m a+ -> b -> m c+(==<<) mf x b = x >>= (`mf` b)++infixl 1 ==<<++(=.<<) :: Monad m =>+ (a -> b -> m c)+ -> m b+ -> a -> m c+(=.<<) mf x a = mf a =<< x++infixl 1 =.<<