To me, the question is in reverse - why did this method exist in v0.5?

The (only) reason is it was a way of obtaining the outer product of two vectors. You can now do `vector * rowvector`

for this. In fact, this is still a (specialized) method of `*(::AbstractVector, ::AbstractMatrix)`

.

Otherwise `vector * matrix`

doesn’t make too much sense (outside of MATLAB/Householder notation). You wouldn’t impress a math lecturer with writing *B* = **v**.*A* in an assignment/exam, and it would be a misuse of Dirac notation to write `|psi> H`

and expect an operator back. The correct things are *B* = **v**.**w**ᵀ and `O = |psi><phi|`

.

Believe me, I pained over this one, but really its not difficult to write `ones(10) * ones(10)'`

for the outer product (in fact, it’s one less character ). Since the `*(A::AbstractVector, B::AbstractMatrix)`

method was an error if `size(B, 1)`

was not `1`

, it is implied that the programmer knows for sure `B`

is a 1xN shaped Array, which is guaranteed by `B::RowVector`

.