foreigner_class!(class Foo { self_type Foo; constructor Foo::new(_: i32) -> Foo; fn Foo::f(&self, _: i32, _: i32) -> i32; }); foreigner_class!(class Boo { self_type Boo; constructor Boo::new(_: i32, _: usize) -> Boo; fn Boo::f1(&self) -> &[u32]; fn Boo::f2(&self) -> &[Foo]; fn Boo::f3(&self) -> &[usize]; fn Boo::f4(&self) -> &mut [usize]; });