**Motivation:**

I stumbled upon

```
√(16)^16 # 0.0
```

and

```
√(17)^17 # DomainError with -2.8632214305930583e18:
```

**The reason:** This is of course due to integer arithmetic. On my machine:

```
16^16 # 0
17^17 # -2863221430593058543
```

**Why I think this is unexpected behaviour**

I, and I guess most programmers, read `√(16)^16`

as:

- call the method
`√`

with argument 16 - raise the output to the power 16.

This would indeed be the case if I would have used

```
sqrt(16)^16 # 4.294967296e9
```

On the other hand, I can imagine, that Julia replaces `√(x)`

by `x^(0.5)`

under the hood. However, `^`

acts right associative, so then I would expect something along the line

```
√(16)^16 == 16^0.5^16 == 16^8.0 == 4.294967296e9
```

In short, I would not have expected integer arithmetic to matter for `√(16)^16`

, as I expected `√(16)`

naturally promotes to Float64 and the power operation happens after this.

**Relevance and next steps?**

I found this in a loop:

```
for M in 1:20
#...
det = √(M)^M
end
```

i.e., in a setting where one naturally works with integers, so I guess this can be relevant. The fixes are of course obvious: `sqrt(M)^M`

or `√(1.0 * M)^M`

.

I tested this both on Julia 1.6.3 and 1.7.2. on a MacBook Pro 2017.

Is this indeed unexpected behaviour and so far unknown? In that case, should I open an Issue on Github?