So I have a variable `v`

which may take several types, including (at least) `Vector{T}`

, `SVector{N,T}`

, where `N`

is an integer and `T`

is a real type (including at least `Int`

, `Rational{Int}`

and `Float64`

). I want to compute a type similar to `v`

but with element type promoted to some other type `Q`

.

In the case of `SVector`

, the following works: `similar_type(v, Q)`

. However, no method is implemented when `v`

is a plain old `Vector`

.

I could override this by defining `StaticArrays.similar_type(::Vector, T::Type) = Vector{T}`

(or, even better, a more general method, although this one does what I want), but this although this feels like fixing something which should have been done, it is still technically type-piracy. Since this is too trivial to reasonably have been an oversight in `StaticArrays.jl`

: is there a good reason why this package does not define `similar_type`

methods for plain `Array`

types?