module 0x2::InvRelevance { struct R has key, store { t: T, } fun inner(s: &signer, t: T) { move_to(s, R { t }); } public fun outer_bool(s: &signer, t: bool) { inner(s, t); } public fun outer_u64(s: &signer, t: u64) { inner(s, t); } public fun outer_T(s: &signer, t: T) { inner(s, t); } spec module { invariant forall a: address where exists>(a): global>(a).t; } }