@alercah floated the idea of unsafe(my_obligation)
(“named unsafe obligations”)… you could write something like:
unsafe(obligation_a) fn foo(..) -> R1 { .. }
unsafe(obligation_b) fn bar(..) -> R2 { .. }
fn baz(..) -> R3 {
..
let r1 = unsafe(obligation_a) { foo() };
..
let r2 = unsafe(obligation_b) { bar() };
..
r3
}
this could make obligations more clear.