curry, uncurry, and compose