Parameterized types in Java are invariant (i.e. List<B> is not assignable to List<A> even if B is assignable to A).
But if Errai has a bean of type List<B> it will resolve it as satisfying List<A>. This is not what Weld does. In Weld it is up to an injection site to specify if it is covariant/contravariant by using a wildcard like the following: