You need to explicitly import the base functions to add methods to them for your own types. I'm not sure if this is the best way to do this, but the following will allow you to add two Foos together.
type Foo bar::Float32 foo::Int32 end import Base: + +(a::T, b::T) where {T<:Foo} = Foo(a.bar+b.bar, a.foo+b.foo) a = Foo(3.23,23) b = Foo(4.56,54) c = a+b
Boxed source share