they cannot change state, they cannot be corrupted by thread interference or observed in an inconsistent state." https://docs.oracle.com/javase/tutorial/essential/concurrency/immutable.html
`this` value as its receiver and returns `this` value. */ @kotlin.internal.InlineOnly public inline fun <T> T.apply(block: T.() -> Unit): T { block(); return this } let with run apply also