Haskell has products. What's the problem with f':
ghci> f x y = x + y
ghci> f' (x,y) = x + y
ghci> f 1 2
3
ghci> f' (1,2)
ghci> :t f'
f' :: Num a => (a, a) -> a
ghci> :t f
f :: Num a => a -> a -> a
Haskell has products. What's the problem with f':
ghci> f x y = x + y
ghci> f' (x,y) = x + y
ghci> f 1 2
3
ghci> f' (1,2)
3
ghci> :t f'
f' :: Num a => (a, a) -> a
ghci> :t f
f :: Num a => a -> a -> a