Type equivalence requires that all participating types, as well as all methods and fields within those types, are transparent ...