Hi Ralf,
Thanks for the comments and summary slides. I think you're over-interpreting my wish to break people's code! I certainly believe - and think we all agree - that we remain as committed as ever to ensure that
```
np.function(inputs)
```
continues to work just as before. My main comment is that I want to ensure that no similar guarantee will exist for
```
np.function.__wrapped__(inputs)
```
(or whatever we call it). I think that is quite consistent with NEP-18, since as originally written there was not even the possibility to access the implementation directly (which was after long discussions about whether to allow it, including ideas like `import numpy.internal_apt as np`). In this respect, the current proposal is a large deviation
from the original intent, so we need to be clear about what we are promising.
In summary, I think the guarantees should be as follows:
1.If you call np.function and
- do not define __array_function__, changes happen only via the usual cycle.
- define __array_function__, you take responsibility for returning the result.
2. If you call np.function.__wrapped__ and
- input only ndarray, changes happen only via the usual cycle;
- input anything but ndarray, changes can happen in any release.