Sintaxe de curry na escala

A sintaxe do curry no scala é, por exemplo,

def f(x: Int, b: Int) = x + y

é

def f(x: Int)(b: Int) = x + y

E currying de soma para soma para determinado intervalo aeb é

  def sum(f: Int => Int, a: Int, b: Int) = {
    ...
  }

  sum(x=>x, 3, 6)          // outcome is 18 (3+4+5+6)

é

  def sum(f: Int => Int): (Int, Int) => Int = {
        def sumF(a: Int, b: Int): Int =
          if (a > b) 0
          else f(a) + sumF(a + 1, b)
        sumF
  }

  sum(x=>x)(3, 6)          // outcome is 18 (3+4+5+6)

Mas eu não entendo por que dois pontos (:) existe entre (f: Int => Int) e (Int, Int)

nodef sum(f: Int => Int): (Int, Int) => Int = {

ao invés de

def sum(f: Int => Int)(Int, Int) => Int = {

questionAnswers(2)

yourAnswerToTheQuestion