I see, thanks!
Looking in conversion.jl line 190
,
+(x::Number, y::Number) = +(promote(x,y)...)
*(x::Number, y::Number) = *(promote(x,y)...) # A
-(x::Number, y::Number) = -(promote(x,y)...)
/(x::Number, y::Number) = /(promote(x,y)...) # B
^(x::Number, y::Number) = ^(promote(x,y)...)
So 1*k
finds (A)
whereas 1/k
finds:
# int.jl line 35
/(x::Integer, y::Integer) = float(x)/float(y)
i.e. a specialisation of (B)
that exists because Integer / Integer
typically produces a nonInteger
.
PS @edit
is really useful!