{-# OPTIONS_GHC -Wall -fno-warn-tabs #-} module Data.Tuple.ToolsYj ( uncurry3, uncurryDup, mapTup3, appTup3, mapTup3M, appTup3M, mapTup3M_, appTup3M_ ) where import Control.Monad uncurry3 :: (a -> b -> c -> d) -> (a, b, c) -> d uncurry3 :: forall a b c d. (a -> b -> c -> d) -> (a, b, c) -> d uncurry3 a -> b -> c -> d f (a x, b y, c z) = a -> b -> c -> d f a x b y c z uncurryDup :: (a -> b -> c -> d) -> ((a, b), c) -> d uncurryDup :: forall a b c d. (a -> b -> c -> d) -> ((a, b), c) -> d uncurryDup = ((a, b) -> c -> d) -> ((a, b), c) -> d forall a b c. (a -> b -> c) -> (a, b) -> c uncurry (((a, b) -> c -> d) -> ((a, b), c) -> d) -> ((a -> b -> c -> d) -> (a, b) -> c -> d) -> (a -> b -> c -> d) -> ((a, b), c) -> d forall b c a. (b -> c) -> (a -> b) -> a -> c . (a -> b -> c -> d) -> (a, b) -> c -> d forall a b c. (a -> b -> c) -> (a, b) -> c uncurry mapTup3 :: (a -> b) -> (a, a, a) -> (b, b, b) mapTup3 :: forall a b. (a -> b) -> (a, a, a) -> (b, b, b) mapTup3 a -> b f = (a -> b) -> (a -> b) -> (a -> b) -> (a, a, a) -> (b, b, b) forall a b c d e f. (a -> b) -> (c -> d) -> (e -> f) -> (a, c, e) -> (b, d, f) appTup3 a -> b f a -> b f a -> b f appTup3 :: (a -> b) -> (c -> d) -> (e -> f) -> (a, c, e) -> (b, d, f) appTup3 :: forall a b c d e f. (a -> b) -> (c -> d) -> (e -> f) -> (a, c, e) -> (b, d, f) appTup3 a -> b f c -> d g e -> f h (a x, c y, e z) = (a -> b f a x, c -> d g c y, e -> f h e z) mapTup3M :: Applicative m => (a -> m b) -> (a, a, a) -> m (b, b, b) mapTup3M :: forall (m :: * -> *) a b. Applicative m => (a -> m b) -> (a, a, a) -> m (b, b, b) mapTup3M a -> m b f = (a -> m b) -> (a -> m b) -> (a -> m b) -> (a, a, a) -> m (b, b, b) forall (m :: * -> *) a b c d e f. Applicative m => (a -> m b) -> (c -> m d) -> (e -> m f) -> (a, c, e) -> m (b, d, f) appTup3M a -> m b f a -> m b f a -> m b f appTup3M :: Applicative m => (a -> m b) -> (c -> m d) -> (e -> m f) -> (a, c, e) -> m (b, d, f) appTup3M :: forall (m :: * -> *) a b c d e f. Applicative m => (a -> m b) -> (c -> m d) -> (e -> m f) -> (a, c, e) -> m (b, d, f) appTup3M a -> m b f c -> m d g e -> m f h (a x, c y, e z) = (,,) (b -> d -> f -> (b, d, f)) -> m b -> m (d -> f -> (b, d, f)) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> a -> m b f a x m (d -> f -> (b, d, f)) -> m d -> m (f -> (b, d, f)) forall a b. m (a -> b) -> m a -> m b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> c -> m d g c y m (f -> (b, d, f)) -> m f -> m (b, d, f) forall a b. m (a -> b) -> m a -> m b forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> e -> m f h e z mapTup3M_ :: Applicative m => (a -> m b) -> (a, a, a) -> m () mapTup3M_ :: forall (m :: * -> *) a b. Applicative m => (a -> m b) -> (a, a, a) -> m () mapTup3M_ a -> m b f = m (b, b, b) -> m () forall (f :: * -> *) a. Functor f => f a -> f () void (m (b, b, b) -> m ()) -> ((a, a, a) -> m (b, b, b)) -> (a, a, a) -> m () forall b c a. (b -> c) -> (a -> b) -> a -> c . (a -> m b) -> (a, a, a) -> m (b, b, b) forall (m :: * -> *) a b. Applicative m => (a -> m b) -> (a, a, a) -> m (b, b, b) mapTup3M a -> m b f appTup3M_ :: Applicative m => (a -> m b) -> (c -> m d) -> (e -> m f) -> (a, c, e) -> m () appTup3M_ :: forall (m :: * -> *) a b c d e f. Applicative m => (a -> m b) -> (c -> m d) -> (e -> m f) -> (a, c, e) -> m () appTup3M_ a -> m b f c -> m d g e -> m f h = m (b, d, f) -> m () forall (f :: * -> *) a. Functor f => f a -> f () void (m (b, d, f) -> m ()) -> ((a, c, e) -> m (b, d, f)) -> (a, c, e) -> m () forall b c a. (b -> c) -> (a -> b) -> a -> c . (a -> m b) -> (c -> m d) -> (e -> m f) -> (a, c, e) -> m (b, d, f) forall (m :: * -> *) a b c d e f. Applicative m => (a -> m b) -> (c -> m d) -> (e -> m f) -> (a, c, e) -> m (b, d, f) appTup3M a -> m b f c -> m d g e -> m f h