Pascal Costanza wrote:
Secondly, the general rule is: If there is a discrepancy between ANSI CL and AMOP, and ANSI CL has precedence, because that’s actually the binding standard.
Yup, and thanks for your (chronological) explanations.
I don’t remember the exact details anymore why I arrived to that conclusion, because it’s some time ago by now, but my conclusion and strong recommendation is to stay away from ensure-generic-function, ensure-generic-funciton-using-class, and also ensure-class and ensure-class-using-class. My interpretation of the various specs for these is that they were supposed to be convenience functions for “end users”, imitating the effects of the corresponding macro versions, but trying to deal with too many corner cases at the same time which require different solutions, which is why they have these contradictory requirements and effects.
I got the same feeling. It seems to me that the functional (public) layer had better been defined as just the equivalent of the macro one, or rather the opposite, with macros letting one use designators instead of object arguments, and avoiding the need for too much quoting as well.