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


Reply via email to