Hi all, Consider the following example code
type Foo{T, N} a::NTuple{N, T} end function make_Foos(M) fs = Foo{Float64}[] for i = 1:M N = rand(1:2) f = Foo{Float64, N}(ntuple(i->0.0, N)) push!(fs, f) end fs end function bar{F<:Foo}(x::Vector{F}) println("Hello, Foo!") end const fs = make_Foos(100) bar(fs) What would be the signature of `bar` to enforce that all the entries of `x` have the same value for the first parameter T? As it is now, `x` could contain an `Foo{Float64}` and a `Foo{Int64}`, whereas I would like to enforce homogeneity of the vector elements in the first parameter. Thanks