You could create another constructer for List<A> that takes a List<B> as an argument... start with an empty list, and add each element of the List<B> as an A