Subject: bug#52063: 28.0.60; Confusing presentation of lambda

From: Stefan Monnier <[email-masked]>
Date: Wed, 24 Nov 2021 15:23:52 -0500

>> What I'm saying is that you are annoyed by the (closure ...) thingy
>> mostly because you're used to seeing (lambda ...) rather than because
>> there's an actual problem with the (closure ...) itself.
> And that is strange because?...

Because a function value is fundamentally something very different from
the text of the code from which it came.

E.g. just `read`ing the object will have lost info such as comments or
choice between ?a and 97, then macroexpansion will change the code
further, and with lexical scoping the need to capture the environment
means that the function values need to be completed with the
captured environment.

> I want to see the code I wrote, not
> some strange transformation of it.

Given all the info lost between the source code and the actual function
value (it's even worse if the code gets compiled), I think the better
way to do that is to try and keep a reference to the source.
We currently don't do that, but we should.

>> IOW if it had always behaved that way, you wouldn't be bothered by it.
> This kind of arguments lead nowhere useful.  It smells of disrespect
> to dissenting opinions, which I'm sure you didn't intend.

No, it's just a guess, based on experience in other languages.

> I'm annoyed by this misfeature.  If it means nothing to you and
> others, so be it.

I fully understand desire to see function values printed as much as
possible as their original source code, but it's hard to reconcile this
with the needs of clean semantics, efficient execution, good code
analysis, ...

        Stefan