Yes, it doesn't have to be just vectors. How would you do this with types to use multiple dispatch for the two methods (one and two vector versions).

I looked at `base/reduce.jl` quickly, and the associated discussions on type-stability.  I get the idea, but not clear on how to ensure it happens here. I haven't used the Julia type system enough yet.