{-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE NoFieldSelectors #-} module WikiMusic.Functional ( uncurry2, curry2, curry3, uncurry3, ) where import Relude uncurry2 :: (a -> b -> c -> d) -> ((a, b), c) -> d uncurry2 :: forall a b c d. (a -> b -> c -> d) -> ((a, b), c) -> d uncurry2 = ((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 curry2 :: (((a, b), c) -> d) -> a -> b -> c -> d curry2 :: forall a b c d. (((a, b), c) -> d) -> a -> b -> c -> d curry2 = ((a, b) -> c -> d) -> a -> b -> c -> d forall a b c. ((a, b) -> c) -> a -> b -> c curry (((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 curry uncurry3 :: (a -> b -> c -> d -> e) -> (((a, b), c), d) -> e uncurry3 :: forall a b c d e. (a -> b -> c -> d -> e) -> (((a, b), c), d) -> e uncurry3 = (((a, b), c) -> d -> e) -> (((a, b), c), d) -> e forall a b c. (a -> b -> c) -> (a, b) -> c uncurry ((((a, b), c) -> d -> e) -> (((a, b), c), d) -> e) -> ((a -> b -> c -> d -> e) -> ((a, b), c) -> d -> e) -> (a -> b -> c -> d -> e) -> (((a, b), c), d) -> e forall b c a. (b -> c) -> (a -> b) -> a -> c . ((a, b) -> c -> d -> e) -> ((a, b), c) -> d -> e forall a b c. (a -> b -> c) -> (a, b) -> c uncurry (((a, b) -> c -> d -> e) -> ((a, b), c) -> d -> e) -> ((a -> b -> c -> d -> e) -> (a, b) -> c -> d -> e) -> (a -> b -> c -> d -> e) -> ((a, b), c) -> d -> e forall b c a. (b -> c) -> (a -> b) -> a -> c . (a -> b -> c -> d -> e) -> (a, b) -> c -> d -> e forall a b c. (a -> b -> c) -> (a, b) -> c uncurry curry3 :: ((((a, b), c), d) -> e) -> a -> b -> c -> d -> e curry3 :: forall a b c d e. ((((a, b), c), d) -> e) -> a -> b -> c -> d -> e curry3 = ((a, b) -> c -> d -> e) -> a -> b -> c -> d -> e forall a b c. ((a, b) -> c) -> a -> b -> c curry (((a, b) -> c -> d -> e) -> a -> b -> c -> d -> e) -> (((((a, b), c), d) -> e) -> (a, b) -> c -> d -> e) -> ((((a, b), c), d) -> e) -> a -> b -> c -> d -> e forall b c a. (b -> c) -> (a -> b) -> a -> c . (((a, b), c) -> d -> e) -> (a, b) -> c -> d -> e forall a b c. ((a, b) -> c) -> a -> b -> c curry ((((a, b), c) -> d -> e) -> (a, b) -> c -> d -> e) -> (((((a, b), c), d) -> e) -> ((a, b), c) -> d -> e) -> ((((a, b), c), d) -> e) -> (a, b) -> c -> d -> e forall b c a. (b -> c) -> (a -> b) -> a -> c . ((((a, b), c), d) -> e) -> ((a, b), c) -> d -> e forall a b c. ((a, b) -> c) -> a -> b -> c curry