-- | Schönfinkeling is the technique of transforming a function that takes
-- multiple arguments (or an n-tuple of arguments) in such a way that it can be
-- called as a chain of functions each with a single argument (partial
-- application).
module Control.Schonfinkeling
    ( schönfinkel
    , entschönfinkel
    ) where

schönfinkel :: ((a, b) -> c) -> a -> b -> c
schönfinkel f x y = f (x, y)

entschönfinkel :: (a -> b -> c) -> (a, b) -> c
entschönfinkel f (x, y) = f x y