And C programmers are already spending plenty of their time cursing the world because of those things. Let's not add more of that, shall we? ;)
= and == should have different meanings.
There are two operators, equality = and assignment :=
But where it is clear that assignment was meant, = is treated as assignment. this means you can:
a = 5; -- exactly equivalent to a := 5 here
if a = 6 then
raise exception 'this should never happen';