VG
struct Foo{T}
x::T
end
makevec(range) = map(range) do i
if i > 3
Foo(Float64(i))
else
Foo(i)
end
end
bar(vec::Vector{Foo}) = length(vec)
vec = makevec(1:5)
typeof(vec) <: Vector{Foo} # true
bar(vec)
vec = makevec(1:3)
typeof(vec) <: Vector{Foo} # false
typeof(vec) <: Vector{Foo{T}} where T # true
bar(vec) # error


