`output=max` would not do what the user thinks anyhow, they would have to do `lambda t,x: max(x)` with the change in this branch.

There seems to be a fair bit of confusion because of this introspection business. One thing that we could do instead (which is what I initially advocated for) is to *only* accept two-argument functions, and *always* pass functions `t` and `x`. It means that people will have to write weird wrappers like `lambda t,x: my_func()`, but maybe this is easier to learn and remember than the hoops we're jumping through to support common things like `output=np.sin`.