curry package:optics-core

Curry a type-level list. In pseudo (dependent-)Haskell:
Curry xs y = foldr (->) y xs
Class that is inhabited by all type-level lists xs, providing the ability to compose a function under Curry xs.
uncurry with no lazy pattern matching for more efficient code.