You also have
julia> inv(true)
1.0
so I would assume it stems from this since
julia> UniformScaling(1//1)
UniformScaling{Rational{Int64}}
1//1*I
julia> inv(ans)
UniformScaling{Rational{Int64}}
1//1*I
and it seems like dispatching specifically on I might not be optimal since you can also create
julia> UniformScaling(false)
UniformScaling{Bool}
false*I
which would not fulfill inv(false*I) = false*I but still have the same type.