Тогда, следуя твоему определению, следующее будет завтипом (пишу на расте, плюсы не знаю):
trait Added<N> {}
struct A;
struct B;
impl Added<A> for B {}
Но очевидно, что это НЕ завтипы в привычном понимании этого слова.
Нет, у тебя теряются типы. Ты не сможешь это реализовать. К тому же это только одно из условий. Нужно писать, хранить и читать