У меня проблема в моем DSL с перегруженными универсальными методами, в результате чего компилятор хочет, чтобы я добавил явное типы параметров:
def alpha[T](fun: Int => T): String = fun(33).toString
def beta [T](fun: Int => T): String = fun(66).toString
def beta [T](thunk: => T): String = thunk.toString
alpha { _ + 11 } // ok
beta { _ + 22 } // "error: missing parameter type for expanded function"
beta { _: Int => _ + 22 } // ok... ouch.
Есть ли шанс избавиться от беспорядка в последней строке?
РЕДАКТИРОВАТЬ:
Чтобы продемонстрировать, что перегрузка не является проблемой неоднозначности для скальака как такового, вот версия без типа параметр, который отлично работает:
def beta(fun: Int => String): String = fun(66).reverse
def beta(thunk: => String): String = thunk.reverse
beta(_.toString) // ok
beta("gaga") // ok