I'm wondering why `Vector` is used everywhere for dispatch, instead of `AbstractVector`? and `Float64` instead of `Number`?