Check out What's with the invariant parametric types gotcha? - #3 by rdeits or Why? isa([(x,1),(y,1)], Array{Tuple{Stuff,Number},1}) = false - #5 by Shuhua or Struggling with signatures - #2 by Henrique_Becker
In particular, Array{Factor{T}, 1}
and Array{Factor{T, 1}, 1}
are totally different types, but they are both subtypes of Array{<:Factor{T}, 1}