foreigner_class!(class Foo { self_type Foo; private constructor = empty -> Box>; }); foreigner_class!(class Boo { self_type Boo; private constructor Boo::default() -> Boo; fn Boo::f(&mut self) -> Result>, String>; });