A Complex
factory Complex.polar([double r = 0.0, double phase = 0.0]) { return Cartesian(r * math.cos(phase), r * math.sin(phase)); }