I'm trying to overload simple math operators to try a code for error propagation, but I'm getting a warning. Here's a short code that already shows the warning message:
type numerr num err end +(a::numerr, b::numerr) = numerr(a.num + b.num, sqrt(a.err^2 + b.err^2)); +(a::Any, b::numerr) = numerr(a + b.num, b.err); +(a::numerr, b::Any) = numerr(a.num + b, a.err); x = numerr(10, 1); y = numerr(20, 2); println(x+y) println(2+x) println(y+2) I didn't see much about operator overloading in Julia's manual. I would really appreciate if someone could point me in the right direction. The code above returns this warning in Julia 0.4.2: _ _ _(_)_ | A fresh approach to technical computing (_) | (_) (_) | Documentation: http://docs.julialang.org _ _ _| |_ __ _ | Type "?help" for help. | | | | | | |/ _` | | | | |_| | | | (_| | | Version 0.4.2 (2015-12-06 21:47 UTC) _/ |\__'_|_|_|\__'_| | Official http://julialang.org release |__/ | x86_64-linux-gnu julia> include("overload.jl") WARNING: module Main should explicitly import + from Base numerr(30,2.23606797749979) numerr(12,1) numerr(22,2)