// !LANGUAGE: +ContextReceivers interface Lazy context(Lazy, Lazy) fun test1() {} context(Lazy) fun Lazy.test2() {} context(Lazy>) fun Lazy.test3() {} fun f(lazy1: Lazy, lazy2: Lazy, lazyT: Lazy, lazyLazyT: Lazy>) { with(lazy1) { with(lazy2) { test1() test2() test3() } } with(lazy2) { with(lazy1) { test1() test2() test3() } } with(lazyT) { with(lazy1) { test1() test2() test3() } } with(lazyLazyT) { with(lazy1) { test1() test2() test3() } } with(lazy1) { with(lazyLazyT) { test1() test2() test3() } } }