What is history of providing purely imaginary numbers as separate types?
I could not initially see the point when I started using Chapel a decade ago. But, once I started porting old C++ code which used complex numbers, I started to appreciate having the compile-time distinction. It will often permit optimizations of expressions to the point of having overloaded routines that are much faster for the purely imaginary imag(w) numbers than the version for complex(w) numbers. Whose great idea was that?
Just curious