Ismael, although ASCIIString is a subtype of String, Array{ASCIIString,1} is not a subtype of Array{String,1}. As far as I understand Julia has been designed this way for practical reasons. You can read about it in the manual's section: Types.
You might want to rewrite your function as function Pkg.add{T<:String}(pkgs::Array{T, 1}) Pkg.update() for pkg in pkgs Pkg.add(pkg) end end