trait Foo {
    fn foo(&self, Box<dyn Foo>);
}