== foo == tailrec fun foo() { try { return foo() } catch (e: Throwable) { } } --------------------- : {<: Throwable} NEW: magic[FAKE_INITIALIZER](e: Throwable) -> foo() : Unit NEW: call(foo(), foo) -> return foo() !: * { return foo() } !: * COPY { } !: * try { return foo() } catch (e: Throwable) { } : * NEW: merge(try { return foo() } catch (e: Throwable) { }|!, !) -> { try { return foo() } catch (e: Throwable) { } } : * COPY =====================