== T == interface T --------------------- ===================== == A == class A(a: Int, b: Int): T --------------------- : Int NEW: magic[FAKE_INITIALIZER](a: Int) -> : Int NEW: magic[FAKE_INITIALIZER](b: Int) -> ===================== == B == class B(a: Int, b: Int): T by A(a + b, a - b) --------------------- : Int NEW: magic[FAKE_INITIALIZER](a: Int) -> : Int NEW: magic[FAKE_INITIALIZER](b: Int) -> : * NEW: magic[VALUE_CONSUMER](T by A(a + b, a - b)|) -> a : Int NEW: r(a) -> b : Int NEW: r(b) -> a + b : Int NEW: call(a + b, plus|, ) -> a : Int NEW: r(a) -> b : Int NEW: r(b) -> a - b : Int NEW: call(a - b, minus|, ) -> A(a + b, a - b) : {<: T} NEW: call(A(a + b, a - b), |, ) -> =====================