# Question abour numerical coercions

I do not understand this :

```
sage: t,u=(1.4,0.7)
sage: z=complex(t,u)
```

This works :

```
sage: QQ(t)
7/5
```

But :

```
sage: AA(t)
---------------------------------------------------------------------------
TypeError
# Redacted...
TypeError: Illegal initializer for algebraic number
```

Similarly :

```
sage: QQbar(t)
---------------------------------------------------------------------------
TypeError
## Redacted...
TypeError: Illegal initializer for algebraic number
```

However, this works :

```
sage: QQbar(QQ(t))
7/5
```

Similarly :

```
sage: QQbar(z)
---------------------------------------------------------------------------
TypeError
# Redacted...
TypeError: Illegal initializer for algebraic number
```

One has to do :

```
sage: QQbar(QQ(real_part(z))+I*QQ(imag_part(z)))
7/10*I + 7/5
```

The same happens when you try to use other numerical types (RDF, CDF, etc...)

There must be (good) reasons to have direct coercions from numerical real types to `QQ`

but not to have a direct coercion from numerical complex types to algebraic types (`AA`

and `QQbar`

), but I do not know them.

Or does it happen to be an oversight ?