-- Contains function to currify/uncurrify functions with more than -- two arguments. It might be useful to use Template Haskell there. module Reactogon.Auxiliary.Curry where curry3 :: ((a,b,c) -> d) -> a -> b -> c -> d curry3 f a b c = f (a,b,c) uncurry3 :: (a -> b -> c -> d) -> (a,b,c) -> d uncurry3 f (a,b,c) = f a b c curry4 :: ((a,b,c,d) -> e) -> a -> b -> c -> d -> e curry4 f a b c d = f (a,b,c,d) uncurry4 :: (a -> b -> c -> d -> e) -> (a,b,c,d) -> e uncurry4 f (a,b,c,d) = f a b c d