>>> uncurry (+) (1,2) 3
>>> uncurry ($) (show, 1) "1"
>>> map (uncurry max) [(1,2), (3,4), (6,8)] [2,4,8]
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 ⋮