Open
Description
As foretold by the code,
Line 1749 in 2e953b5
And this seems to be true. If we try to evaluate this:
let lambda = (a: a); in lambda == lambda
We get a nice false
result, as expected. But, what if ... we put the lambda in an attrset?
let lambda = (a: a); in { inherit lambda; } == { inherit lambda; }
Now, all of a sudden, the two attrsets are equal! But this is impossible, as functions are incomparable!
The reason for this is a 2010 hack added to support "some old broken code that relies on pointer equality":
Lines 1689 to 1692 in 2e953b5