Я не знаю паскаль, но рискну предположить, что syntax-err там из-за строгой типизации, паскалевский компилятор, вероятно, не умеет приводить типы автоматом. Ведь Вирт был не таким дураком, чтобы разрабатывать "умный компилятор", зачем возиться, если часть работы можно повесить на пользователя.
О! Тогда Вы поймёте и такое рассуждение. Операция «исключающее или» (
xor), как и другие операции, не настолько умная, чтобы что-то знать о том, возможна ли ситуация, когда оба операнда истинны, и вообще, все ли комбинации значений возможны. Ей незачем быть такой умной. Её дело — вычислять результат. Скажем,
xor от операндов
(теория истинна, теория ложна) выдала бы
ложь, если бы оба операнда были истинны. А то, что такого быть не может — не её забота, а каких-то там аксиом.