Changes in new versions / Kotlin 1.4

fun greet(name: String, greeting: String = "Hello") = "$greeting$name!"

fun report(): Unit = println("done")

// *** before: ***
// a wrapping lambda was needed to skip the default argument
val oldRef: (String) -> String = { name -> greet(name) }

// *** in version 1.4: ***
val one: (String) -> String = ::greet // greeting is taken from its default
//value
val two: (StringString) -> String = ::greet

// a reference to a function returning Unit fits a type that returns a value
val any: () -> Any = ::report

fun main() {
    println(oldRef("Kotlin"))
    println(one("Kotlin"))
    println(two("Kotlin""Hi"))
    println(any())
}