>>> uncurry (+) (1,2) 3
>>> uncurry ($) (show, 1) "1"
>>> map (uncurry max) [(1,2), (3,4), (6,8)] [2,4,8]
forall a b. (a ~ b) => (a -> b) -> Char -> ()
(a ~ b, [a -> b, Char, ()])
uncurryn :: r a -> Prod '[] a uncurryn :: (f a -> r a) -> Prod '[f] a uncurryn :: (f a -> g a -> r a) -> Prod '[f, g] a uncurryn :: (f a -> g a -> h a -> r a) -> Prod '[f, g, h] a ⋮