import kotlin.properties.ReadWriteProperty import kotlin.reflect.KProperty // fun lazy(() -> T): Lazy // │ Int // │ │ fun (Int).plus(Int): Int // Int │ │ │ Int // │ │ │ │ │ val x: Int by lazy { 1 + 2 } // properties/ReadWriteProperty // │ properties/ReadWriteProperty // │ │ val delegate = object: ReadWriteProperty { // reflect/KProperty<*> // │ Int // │ │ Int // │ │ │ override fun getValue(thisRef: Any?, property: KProperty<*>): Int = 1 // reflect/KProperty<*> // │ override fun setValue(thisRef: Any?, property: KProperty<*>, value: Int) {} } // Int val delegate: properties/ReadWriteProperty // │ │ val value by delegate // Int val delegate: properties/ReadWriteProperty // │ │ var variable by delegate