The idea is that for this datatype:
#[phantomgeneric(C)]
struct Wrapper<T,C>{
value:T,
_marker:PhantomData<C>
}
Arc<Wrapper<T,SomeType>> is layout compatible with Arc<Wrapper<T,SomeOtherType>>.
The attribute is intended to specify phantom generic parameters,allowing those generic parameters to change while guaranteeing that the memory layout is the same.
Whether (i32,u32) and (i32,f32) are compatible is outside the scope of this attribute.