Michael Heerdegen writes: > I'm having problems to understand what you want to do and why. 1. To understand which variation of the patch I should post. 2. Hopefully to convince someone that this (func exp) was a terrible idea. > I see that a binding like (f (x y z)) is ambiguous. But isn't that a > minor problem? No. Syntax ambiguity is always a huge inconvenience. - If the purpose of cl-lib is to provide a compatibility layer for CL, then this is simply not compatible, on top of being ambiguous. - Such irregularities make code harder to port. - Such irregularities make it harder to write code programmatically. (This also addresses the argument about readability and why would anyone write code like this.) - Last but not least, such irregularities introduce a non-technical problem: whether something should be ported to cl-... as is, or a degree of artistic freedom is allowed. If yes, to which extent? Is it worth it to waste everyone's time arguing about each such instance in the future and synchronizing their perception? I'm absolutely certain it's not worth it. The sole point of standards is to be followed and thus remain reliable. Unless they can't be followed for technical reasons, in which case it should be noted that those are actually limitations, hopefully to be lifted one day. > And I don't understand why this minor annoyance justifies such a radical > measure, unless I misread that. If anything, it's actually (func exp) that is a radical departure from flet semantics. I do my best at offering my arguments but in fact it is one introducing something that is both (!) ambiguous and incompatible with CL who has (OK, had; it's too late for me now) the burden of proof. > would I have to use `cl--expand-flet' instead of `cl-flet' in the > future to get the same behavior as now? It depends. Sometimes it's better to use let. Sometimes, like in our case with cl-generic, an expander is the most appropriate. > That would be strange. With all due respect, I do not accept “strange” for an argument and I never offer such arguments myself. “Strange” is subjective. cl-flet is incompatible with flet (and rest of the points) --- that's objective. Even if I fail at convincing anyone that it should be dropped, I do wonder if this was indeed a Scheme influence. I conveyed all the reasons I could. If it's not convincing enough, there is no point in discussing this further, and I'll soon post a variation of the patch that keeps this syntax in cl-flet as is.