basically it replaces and extends java's <? ext...
# random
v
basically it replaces and extends java's <? extends T>, which is used in pure java code the reason we don't see it that much in kotlin is it that functions already have it by default, which is enough in 90% of cases