Adding + in front of a complex number return a new complex with a positive value of the real and imaginary part.
require "complex"
pp! +( 1 + 1.i) # => (1.0 + 1.0i)
pp! +(-1 + 1.i) # => (1.0 + 1.0i)
pp! +( 1 - 1.i) # => (1.0 + 1.0i)
pp! +(-1 - 1.i) # => (1.0 + 1.0i)
Looking at the source code, this is a feature, but why?
In Ruby, Python and C++, +(-1 - 1i) return (-1 - 1i).