kotlinのコマンドラインインタプリタ(kotlinc-jvm 1.1.2-2)上で、まず関数idを定義し、

>>> fun id(x: Int) = x

次に関数applyTo10を定義しようとしたところエラーが出ました。

>>> fun applyTo10(f: (Int) -> Int = ::id) = f(10)
error: left-hand side of a callable reference with a receiver parameter cannot be empty. Please specify the type of the receiver before '::' explicitly
fun applyTo10(f: (Int) -> Int = ::id) = f(10)

エラーメッセージに従えばレシーバの型を指定してやれば良さそうですが、この場合のレシーバの型が何なのか分かりません。

ところで関数参照の代わりにラムダ式を与える場合はエラーになりません。

>>> fun applyTo10(f: (Int) -> Int = { it }) = f(10)
>>> applyTo10()
10

デフォルト引数の関数を名前(この場合はid)で指定するにはどうすればよいでしょうか?

追記
妥協案としてはラムダ式の中で名前を使って

fun applyTo10(f: (Int) -> Int = { id(it) }) = f(10)

とする等。