Kotlin“镜头”返回类型

镜头在引擎盖下的返回类型是什么?

class User() {
    fun simpleFoo() {
        println("Unit")
    }
}

class Either<T> {
    var b: T? = null

    fun foo(fnR: (T?) -> Any): Any = fnR(b)
}

class A {
    fun main() {
        val either = Either<User>()
        either.foo(::handleUser) // works fine
        either.foo() { user ->
            user?.simpleFoo() // Unit, but Any was expected
        }
    }

    fun handleUser(user: User?) {
        user?.simpleFoo()
    } 
}