Yeah but that's the mistake, you **don 't** want it to return anything. `+=` is an operator that merges the right-hand value into the left-hand value. There is no third value being created, just 2 values being merged. Which means instead of returning, your first value should be mutable so you can modify it to merge the second value into it.
By defining it as "proc `+=`(): SomeType" you have it instead create a third value that gets returned. It might make sense to regard `x += y` as basically the same kind of expression as `a.myProc(b)`. If that returns something you got to discard it, if it doesn't you don't.