If we have a programming language that force you to set the data types for the variables, for example:

```
int i;
float f;

```

But does not have operator overloading, so for example instead of using the `+` operator to add an `int` to an `int` or a `float` to a `float`, you would instead have an operator to add an `int` to an `int` (for example: `+`), and a different operator to add a `float` to a `float` (for example: `#+`).

Note that this programming language still have type safety, so for example if you tried to use the `#+` operator to add a `float` to an `int`, you would get a compilation error.

Can such a programming language still be called a "typed" programming language?