On Saturday 20 August 2011 21:29:21 Janus Weil wrote: > >> > There is for example (currently) no special handling for operators. > >> > >> Well, unfortunately one cannot just return "-3" for non-matching > >> operators. Just think of cases like A*(B+C) vs A*B+A*C. > > > > Ah yes. I was thinking expressions themselves were compared; but only > > their values are. > > I'm not sure I'm getting you right here. Of course we do compare the > expressions themselves. Yes, what I mean is...
> However, for example things like commutativity > of operators are taken into account, meaning we compare "A+B" equal to > "B+A" (A and B being arbitrary expressions). ... "A+B" and "B+A" are different expressions, with the same value. And we return 0 (<=> equality) in that case. So we are interested in same- value-ness, not same-expression-ness. And we do compare expressions, because same expresssion ===> same value. But different expression =/=> different value (as your example shows). Oh well, nevermind. Mikael