Hi oooops sorry. Somehow I was missing cl-destructuring-bind; my bad. In any case, at a minimum the warning should be issued. I did refrain from using pcase-let after all, although it "seemed right" for my use case. Having said that, I would advocate changing the semantics. Your call anyway. All the best On Sun, Apr 28, 2024 at 7:05 PM Stefan Monnier wrote: > > Let me just answer the destructuring-bind comment by Stefan (I am > answering > > to his last email). The previous ones are somewhat answered here as > well. > > > > In some sense, yes. I kind of want destructuring-bind. It is, IMHO, > > unfortunate that ELisp does not have it and that we don't have > > cl-destructuring-bind either; lower level beast than matching, but > useful. > > I don't understand what you mean: `pcase-let` *is* a destructring bind, > and we also do have `cl-destructuring-bind`. > > > As per the pcase-let, I still think that the name and/or its behavior > > are confusing because of expectations about how a pattern matcher > > usually works. > > Yes, clearly there is a problem of users being surprised. > > But AFAICT, changing the semantics is not the right answer, because the > current behavior matches(!) what is usually needed and because the other > behaviors are already well-served by `pcase` and `pcase-exhaustive`. > > Maybe a better answer is to try and detect ill-conceived patterns like in: > > (pcase-let (`(foo bar ,x) (SOMETHING)) (ANYTHING)) > > and emit a warning suggesting to rewrite it to > > (pcase-let (`(,_ ,_ ,x) (SOMETHING)) (ANYTHING)) > > > - Stefan > > -- Marco Antoniotti Somewhere over the Rainbow