Prolog interpreter with OO extensions - implemented in C++