Is there any way to eliminate the following penalty in future versions of Julia? In particular, I am talking about the cases when the types of elements in an array are different but this type difference does not change the “bit encoding” of the objects because the types just vary in an informational type parameter which is not used in the field type definitions.

```
julia> mutable struct T1{S}
a::Int
end
julia> f!(a::Vector{T1}, b::Vector{T1}) = (for i in 1:length(a) a[i].a = b[i].a; end)
f! (generic function with 1 method)
julia> a = [T1{i}(i) for i in 1:10];
julia> b = [T1{-i}(-i) for i in 1:10];
julia> using BenchmarkTools
julia> @btime f!(a, b)
716.314 ns (0 allocations: 0 bytes)
julia> mutable struct T2
a::Int
end
julia> f!(a::Vector{T2}, b::Vector{T2}) = (for i in 1:length(a) a[i].a = b[i].a; end)
f! (generic function with 2 methods)
julia> a = [T2(i) for i in 1:10];
julia> b = [T2(-i) for i in 1:10];
julia> @btime f!(a, b)
24.797 ns (0 allocations: 0 bytes)
```