composition-extra 1.0.0.1 → 1.0.1
raw patch · 4 files changed
+100/−1 lines, 4 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Data.Function.Flip: (<---->) :: (a -> b -> c -> d -> e -> f) -> e -> b -> c -> d -> a -> f
+ Data.Function.Flip: (<--->) :: (a -> b -> c -> d -> e) -> d -> b -> c -> a -> e
+ Data.Function.Flip: (<-->) :: (a -> b -> c -> d) -> c -> b -> a -> d
+ Data.Function.Flip: (<->) :: (a -> b -> c) -> b -> a -> c
+ Data.Function.Flip: flip3 :: (a -> b -> c -> d) -> c -> b -> a -> d
+ Data.Function.Flip: flip4 :: (a -> b -> c -> d -> e) -> d -> b -> c -> a -> e
+ Data.Function.Flip: flip5 :: (a -> b -> c -> d -> e -> f) -> e -> b -> c -> d -> a -> f
+ Data.Function.Slip: (<<~>) :: (a -> b -> c -> d) -> c -> a -> b -> d
+ Data.Function.Slip: (<<~~>) :: (a -> b -> c -> d -> e) -> d -> a -> b -> c -> e
+ Data.Function.Slip: (<<~~~>) :: (a -> b -> c -> d -> e -> f) -> e -> a -> b -> c -> d -> f
+ Data.Function.Slip: (<~>>) :: (a -> b -> c -> d) -> b -> c -> a -> d
+ Data.Function.Slip: (<~~>>) :: (a -> b -> c -> d -> e) -> b -> c -> d -> a -> e
+ Data.Function.Slip: (<~~~>>) :: (a -> b -> c -> d -> e -> f) -> b -> c -> d -> e -> a -> f
+ Data.Function.Slip: slipl :: (a -> b -> c -> d) -> c -> a -> b -> d
+ Data.Function.Slip: slipl4 :: (a -> b -> c -> d -> e) -> d -> a -> b -> c -> e
+ Data.Function.Slip: slipl5 :: (a -> b -> c -> d -> e -> f) -> e -> a -> b -> c -> d -> f
+ Data.Function.Slip: slipr :: (a -> b -> c -> d) -> b -> c -> a -> d
+ Data.Function.Slip: slipr4 :: (a -> b -> c -> d -> e) -> b -> c -> d -> a -> e
+ Data.Function.Slip: slipr5 :: (a -> b -> c -> d -> e -> f) -> b -> c -> d -> e -> a -> f
+ Data.Function.Twist: (<<<-->>>) :: (a -> b -> c -> d -> e -> f) -> d -> e -> c -> a -> b -> f
+ Data.Function.Twist: (<<<~~>>) :: (a -> b -> c -> d -> e -> f) -> d -> e -> a -> b -> c -> f
+ Data.Function.Twist: (<<<~~~>>) :: (a -> b -> c -> d -> e -> f -> g -> h) -> e -> f -> g -> a -> b -> c -> d -> h
+ Data.Function.Twist: (<<<~~~>>>) :: (a -> b -> c -> d -> e -> f -> g -> h) -> e -> f -> g -> d -> a -> b -> c -> h
+ Data.Function.Twist: (<<~~>>) :: (a -> b -> c -> d -> e) -> c -> d -> a -> b -> e
+ Data.Function.Twist: (<<~~>>>) :: (a -> b -> c -> d -> e -> f) -> c -> d -> e -> a -> b -> f
+ Data.Function.Twist: (<<~~~>>) :: (a -> b -> c -> d -> e -> f -> g) -> d -> e -> f -> a -> b -> c -> g
+ Data.Function.Twist: (<<~~~>>>) :: (a -> b -> c -> d -> e -> f -> g -> h) -> d -> e -> f -> g -> a -> b -> c -> h
+ Data.Function.Twist: twist :: (a -> b -> c -> d -> e) -> c -> d -> a -> b -> e
+ Data.Function.Twist: twist5 :: (a -> b -> c -> d -> e -> f) -> d -> e -> c -> a -> b -> f
+ Data.Function.Twist: twist5l :: (a -> b -> c -> d -> e -> f) -> d -> e -> a -> b -> c -> f
+ Data.Function.Twist: twist5r :: (a -> b -> c -> d -> e -> f) -> c -> d -> e -> a -> b -> f
+ Data.Function.Twist: twist6 :: (a -> b -> c -> d -> e -> f -> g) -> d -> e -> f -> a -> b -> c -> g
+ Data.Function.Twist: twist7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> e -> f -> g -> d -> a -> b -> c -> h
+ Data.Function.Twist: twist7l :: (a -> b -> c -> d -> e -> f -> g -> h) -> e -> f -> g -> a -> b -> c -> d -> h
+ Data.Function.Twist: twist7r :: (a -> b -> c -> d -> e -> f -> g -> h) -> d -> e -> f -> g -> a -> b -> c -> h
Files
- composition-extra.cabal +4/−1
- src/Data/Function/Flip.hs +20/−0
- src/Data/Function/Slip.hs +34/−0
- src/Data/Function/Twist.hs +42/−0
composition-extra.cabal view
@@ -1,5 +1,5 @@ name: composition-extra-version: 1.0.0.1+version: 1.0.1 synopsis: Combinators for unorthodox structure composition license: BSD3@@ -16,6 +16,9 @@ exposed-modules: Data.Functor.Syntax Data.Functor.Contravariant.Syntax Data.Function.Contravariant.Syntax+ Data.Function.Flip+ Data.Function.Slip+ Data.Function.Twist Control.Monad.Syntax Control.Monad.Syntax.Two Control.Monad.Syntax.Three
+ src/Data/Function/Flip.hs view
@@ -0,0 +1,20 @@+module Data.Function.Flip where+++(<->) :: (a -> b -> c) -> b -> a -> c+(<->) = flip++flip3 :: (a -> b -> c -> d) -> c -> b -> a -> d+flip3 f c b a = f a b c++(<-->) = flip3++flip4 :: (a -> b -> c -> d -> e) -> d -> b -> c -> a -> e+flip4 f d b c a = f a b c d++(<--->) = flip4++flip5 :: (a -> b -> c -> d -> e -> f) -> e -> b -> c -> d -> a -> f+flip5 f e b c d a = f a b c d e++(<---->) = flip5
+ src/Data/Function/Slip.hs view
@@ -0,0 +1,34 @@+-- | Bit-shift style argument re-arrangement++module Data.Function.Slip where+++slipr :: (a -> b -> c -> d) -> b -> c -> a -> d+slipr f b c a = f a b c++(<~>>) = slipr++slipl :: (a -> b -> c -> d) -> c -> a -> b -> d+slipl f c a b = f a b c++(<<~>) = slipl++slipr4 :: (a -> b -> c -> d -> e) -> b -> c -> d -> a -> e+slipr4 f b c d a = f a b c d++(<~~>>) = slipr4++slipl4 :: (a -> b -> c -> d -> e) -> d -> a -> b -> c -> e+slipl4 f d a b c = f a b c d++(<<~~>) = slipl4++slipr5 :: (a -> b -> c -> d -> e -> f) -> b -> c -> d -> e -> a -> f+slipr5 f b c d e a = f a b c d e++(<~~~>>) = slipr5++slipl5 :: (a -> b -> c -> d -> e -> f) -> e -> a -> b -> c -> d -> f+slipl5 f e a b c d = f a b c d e++(<<~~~>) = slipl5
+ src/Data/Function/Twist.hs view
@@ -0,0 +1,42 @@+module Data.Function.Twist where+++twist :: (a -> b -> c -> d -> e) -> c -> d -> a -> b -> e+twist fun c d a b = fun a b c d++(<<~~>>) = twist++twist5r :: (a -> b -> c -> d -> e -> f) -> c -> d -> e -> a -> b -> f+twist5r fun c d e a b = fun a b c d e++(<<~~>>>) = twist5r++twist5l :: (a -> b -> c -> d -> e -> f) -> d -> e -> a -> b -> c -> f+twist5l fun d e a b c = fun a b c d e++(<<<~~>>) = twist5l++twist5 :: (a -> b -> c -> d -> e -> f) -> d -> e -> c -> a -> b -> f+twist5 fun d e c a b = fun a b c d e++(<<<-->>>) = twist5++twist6 :: (a -> b -> c -> d -> e -> f -> g) -> d -> e -> f -> a -> b -> c -> g+twist6 fun d e f a b c = fun a b c d e f++(<<~~~>>) = twist6++twist7r :: (a -> b -> c -> d -> e -> f -> g -> h) -> d -> e -> f -> g -> a -> b -> c -> h+twist7r fun d e f g a b c = fun a b c d e f g++(<<~~~>>>) = twist7r++twist7l :: (a -> b -> c -> d -> e -> f -> g -> h) -> e -> f -> g -> a -> b -> c -> d -> h+twist7l fun e f g a b c d = fun a b c d e f g++(<<<~~~>>) = twist7l++twist7 :: (a -> b -> c -> d -> e -> f -> g -> h) -> e -> f -> g -> d -> a -> b -> c -> h+twist7 fun e f g d a b c = fun a b c d e f g++(<<<~~~>>>) = twist7