#[repr(transparent)] pub struct Foo { field: T, _phantom: std::marker::PhantomData

, } #[repr(C)] pub struct Bar { f: Foo, p: P, } pub type Baz = Foo; #[no_mangle] pub extern "C" fn foo_root(f: Foo, b: Bar, z: Baz) {}