(unless (equal (= 3 3) (= 3 4))
  (foo))

generates this, which is wrong, since FOO should be called:

if (3 === 3 != 3 === 4) {
    foo();
};

I think more parentheses are needed.

Daniel