3 | | I am a little bit puzzled by this: looking at lines 1154-1184 of `src/sage/structure/coerce.pyx`, I have the impression that `_act_on_` is used for actions denoted by `__mul__`, not by `__call__`. This seems confirmed from the doctest examples one can get from `grep -r "def _act_on_" src/sage`. Now, in the current setting, we do want to write `v(f)` for the action of a tangent vector `v` on a scalar function `f`, not `v*f`. Besides, it seems overwriting `__call__` is much used in Sage library: `grep -r "def __call__" src/sage | wc -l` returns 496 instances, while `grep -r "def _act_on_" src/sage | wc -l` returns only 16 instances. |

| 3 | I am a little bit puzzled by this: looking at lines 1154-1184 of `src/sage/structure/coerce.pyx`, I have the impression that `_act_on_` is used for actions denoted by `__mul__`, not by `__call__`. This seems confirmed from the doctest examples one can get from `grep -r "def _act_on_" src/sage`. Now, in the current setting, we do want to write `v(f)` for the action of a tangent vector `v` on a scalar function `f`, not `v*f`. For instance, we can form the derivation law that looks very much the textbook formula (`p` being the point at which `v` is defined): |

| 4 | {{{ |

| 5 | v(f*g) == v(f)*g(p) + f(p)*v(g) |

| 6 | }}} |

| 7 | There is no redefinition of `__call__` in `src/sage/structure/element.pyx`, contrary to `__add__`, `__mul__`, etc., which leads one to think that `__call__` is not delt via the coercion framework. Supporting this, we can note that overwriting `__call__` is much used in Sage library: `grep -r "def __call__" src/sage | wc -l` returns 496 instances (on the contrary, `grep -r "def _act_on_" src/sage | wc -l` returns only 16 instances). Am I missing something? |