Does logic programming without the occurs check (as Prolog does it, by default) just implement a different kind of logic that supports cyclic structures, such as this endles