Understanding Access Restriction of Variant Parametric Types and Java Wildcards