I have been staring at Prolog toplevel results like these for some time now:
?- reverse([X,Y,Z],[Y,Z,Y]).
X = Y, Y = Z.
And it just occurred to me: Shouldn't it say
?- reverse([X,Y,Z],[Y,Z,Y]).
X == Y, Y == Z.
Because =
is unification, and ==
is term equality. Which is what Prolog really wants to say: Those terms are equal! (They trivially unify, being unbound variables).
A bad case of historical raisins?