I personally assume that lambda expression and anonymous function share the same implementation, and the snippet below confuses me quite a lot.
// this compiles
inline fun bar(crossinline f: () -> Int) = { f() }
// this fails, error message says that such construction
// is not yet supported to be inlined
inline fun foo(crossinline f: () -> Int) = fun () = f()
What’s the problem that foo should be prevented to be compiled?