effect A { fun a() -> Unit; } effect B { fun b() -> Unit; } pub fun main() ! Io -> Unit { try { A.a!(); try { A.a!(); try { B.b!(); } handle B { fun b() { print!("b start\n"); A.a!(); print!("b end\n"); resume; } } A.a!(); } handle A { fun a() { print!("a inner start\n"); A.a!(); print!("a inner end\n"); resume; } } A.a!(); } handle A { fun a() { print!("a outer\n"); resume; } } }