Here's my attempt, as discussed earlier today. As always, comments
welcome. I did provide (and use) a fallback mechanism after all, for
the case of a function with a non-empty probin.
Applied with light editorializing ("fallback" seemed a weird description
of what that function was doing, for instance).
At this point I think we are done with the coding part of this project,
and it's time to get to work on the documentation ...