Visual Prolog, не могу понять в чем ошибка программы

Visual Prolog, не могу понять в чем ошибка программы
Здравствуйте, не могу понять в чем ошибка программы написанная на Visual Prolog.

Задача программы заключается в решении следующей задачи:
Дружили три товарища: Белов, Рыжов и Чернов. Волосы у одного из них были белые, у другого - рыжие, у третьего - черные.
- Интересно, - заметил черноволосый, - что цвета наших с тобой волос не соответствуют нашим фамилиям.
- А ведь верно, но мне подошла бы твоя фамилия, - подтвердил Белов.
Какой цвет волос у каждого?

Вот написанный мною код в main.pro:

implement main
open core

class predicates
surname : (char).
color : (char).
hair : (char X, char Y) procedure(i,i).
clauses
classinfo("facfun", "1.0").

surname('B').
surname('C').
surname('R').

color('r').
color('w').
color('b').

hair(X, Y) :-
surname(X), color(Y),
X='B',
not(Y='b'), not(Y='w').

hair(X, Y) :-
surname(X), color(Y),
X='C',
not(Y='b'), not(hair('B', Y)).

hair(X, Y) :-
surname(X), color(Y),
X='R',
not(hair('B', Y)), not(hair('C', Y)).

run():- console::init(),
hair(stdio::read(), Y), stdio::write(Y), stdio::nl.

end implement main

goal
mainExe::run(main::run).

В прологе я полный нуб. Можете сильно ругать за "богохульство" в отношении пролога)

  • За ошибки в прологе ругать не буду.
    А вот за ошибки в вопросе - буду. С чего ты взял, что там вообще есть ошибка? Мы должны откомпилировать твой код, чтобы увидеть то, что ты и так видишь. Ты считаешь, что мы роботы и должны выполнять для тебя механическую работу? Если нет - то напиши по-человечески, в чем у тебя проблема.