O que significa lambda com 2 setas no Java 8?

Eu li vários tutoriais sobre Java 8 antes.

No momento, encontrei o seguinte tópico:O java suporta currying?

Aqui, vejo o seguinte código:

IntFunction<IntUnaryOperator> curriedAdd = a -> b -> a + b;
System.out.println(curriedAdd.apply(1).applyAsInt(12));

Entendo que este exemplo soma 2 elementos, mas não consigo entender a construção:

a -> b -> a + b;

De acordo com a parte esquerda da expressão, esta linha deve implementar a seguinte função:

R apply(int value); 

Antes disso, só conheci lambdas com uma flecha.

questionAnswers(6)

yourAnswerToTheQuestion