# Possible bug when a symbolic function is declared twice

I don't understand the output of the following code:

```
sage: f = function('f')
sage: f(x).operator() is f
True
sage: f = function('f')
sage: f(x).operator() is f
False
```

Is that the intended behavior?

It seems that `operator`

returns the first symbolic function defined with this name, not the actual operator. This is problematic for me because it means there are some cells in my notebook I can only run once, so I have to restart the kernel everytime I want to press "run all".

At the very least, there is some inconsistency between

`var`

and`function`

: both of them inject names in the global namespace, but`function`

creates a new object at each call: