== foo == fun foo() { val a = 1 val b: Int b = 2 42 } --------------------- 1 NEW() 2 NEW() 42 NEW() { val a = 1 val b: Int b = 2 42 } COPY ===================== == bar == fun bar(foo: Foo) { foo.c foo.c = 2 42 } --------------------- foo NEW() c NEW() foo.c COPY foo NEW() 2 NEW() 42 NEW() { foo.c foo.c = 2 42 } COPY ===================== == Foo == trait Foo { var c: Int } --------------------- =====================