You could get rid of the generic argument B and instead of constraining B, directly pass A::Foo as the second generic argument to Baz, but I'm not sure if your actual problem matches the simplified example you showed.
impl Baz {
fn addFoo(&mut self) {
self.vec.push(self.generator.generate());
}
}