pub trait CanUpcast<Target> { // Required method fn upcast(self, _tag: PhantomData<Target>) -> Target; }