Subject: bug#65344: 28.2; Unable to Edebug cl-flet form which uses argument destructuring

From: Drew Adams <[email-masked]>
Date: Fri, 25 Aug 2023 01:53:50 +0000

> > On the other hand, I don't think the usual suspects do something like
> > that deliberatly.
> 
> It was not an oversight, though.  The decision to extend `cl-flet' and
> `cl-labels' in that way had been made in the knowledge that it will
> break CL semantics in this corner case.

If something is somewhat like a CL construct,
but it is intentionally different in some way
(and not just because we've implemented only
partial support for it), then why use the
prefix `cl-' for it?  Why not use the prefix
`el-' or whatever?

Nothing says that Elisp needs to have the
same things as CL.  But why call something
different "CL support" or "CL emulation", and
use the same prefix, `cl-', that we use for
things that are really intended to emulate
CL constructs?

It's like we have no guideline or map now.
To what avail?  There's no shortage of
prefixes and nothing forcing things with
different purposes or natures to be in the
same file.

The initial inspiration for some Elisp
thingie might, or might not, have come from
some CL thingie.  But that's not a reason
to put, or keep. it in a cl-*.el file, or to
have it use the `cl-' prefix.  Things can
change over time, and their names and
libraries can change too, to reflect changes
in behavior/meaning.