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