Существует ли общее обогащение для f: A => B => ... => Z
в scala/scalaz/shapeless/etc. такой, что f.uncurried:(A, B, ...) => Z
?
В настоящее время у меня есть это, но я считаю, что где-то должно быть уже существующее более общее решение.
implicit def enrichMyCurriedFunction[A, B, C] = new EnrichedCurriedFunction[A, B, C](_)
class EnrichedCurriedFunction[A, B, C](f: A => B => C) {
def uncurried: (A, B) => C = (a, b) => f(a)(b)
}