private public class B protected internal class C final abstract class D final open class E final sealed class F open sealed class G inline fun foo( crossinline noinline first: () -> Unit, second: () -> Unit ) { } open abstract data class H(val i: Int) sealed data class I(val i: Int) inline data class J(val i: Int) abstract class K { private open val i1: Int = 0 private abstract val i2: Int } private open class L : K() private abstract class M : K() class X { inner data class Y(val i: Int) sealed inner class Z }