pub trait Model {
fn register_proxy<P: Proxy>(&self, proxy: Rc<P>);
fn retrieve_proxy<P: Proxy>(&self) -> Option<Rc<P>>;
fn remove_proxy<P: Proxy>(&self) -> Option<Rc<P>>;
fn has_proxy<P: Proxy>(&self) -> bool;
}
pub trait Model {
fn register_proxy<P: Proxy>(&self, proxy: Rc<P>);
fn retrieve_proxy<P: Proxy>(&self) -> Option<Rc<P>>;
fn remove_proxy<P: Proxy>(&self) -> Option<Rc<P>>;
fn has_proxy<P: Proxy>(&self) -> bool;
}