# Complex argument of a symbolic expression

I was a bit surprised that simply entering a complex number and asking for its argument doesn't seem to work. Not even in the case where all numbers are known and algebraic, even integers:

```
(2+3*I).arg()
AttributeError: 'sage.symbolic.expression.Expression' object has no attribute 'arg'
```

I found out that in order to compute the argument, I'll have to manually cast my number from the symbolic ring into some complex field, e.g.

```
sage: CC(2+3*I).arg()
0.982793723247329
```

But I believe that this should work without me having to think too much about the type system. It should even work for completely symbolic expressions, as stuff like `real_part`

, `imag_part`

and `atan2`

are all symbolic functions which may be returned in their unevaluated form if evaluation is not possible.

Is there some other way to compute the complex argument, which I missed so far, ans which works for symbolic expressions as well as elements of a complex number field?