How to use type parameter variables across multiple parametric types

Yes, that’s what I said. See for example the 2 in Array{Float64, 2}.

In a function signature you could use it as

foo(x::AbstractArray{Int, N}) where {N} = ... 

to match any dimensionality, or a specific value to restrict it.