如何在Kotlin中使用递归类型

我想要做的是这样的事情

fun <F, A, R> recur(f: (F, A) -> R, arg: A): R = f(f, arg) where F = (F, A) -> R 

如何在Kotlin中输入这个函数?

你可以定义为

 fun <F : (F, A) -> R, A, R> recur(f: F, arg: A): R = f(f, arg) 

但是,我没有看到任何令人满意的类型系统方式如何被调用。