Whether an expression is a pure function of the variables it reads: asked twice about the same values, it
gives the same answer. Strictly weaker than "the same value in every solution", which is
isStableExpression(c, e) && collectVariableNames(c.astTransformer, e).size === 0.
Whether an expression is a pure function of the variables it reads: asked twice about the same values, it gives the same answer. Strictly weaker than "the same value in every solution", which is
isStableExpression(c, e) && collectVariableNames(c.astTransformer, e).size === 0.