In Prolog - Programming for Artificial Intelligence, Bratko says the following on page 58.
"Matching in Prolog corresponds to what is called unification in logic. However, we avoid the word unification because matching, for for efficiency reasons in most Prolog systems, is implemented in a way that does not exactly correspond to unification. Proper unification requires the so-called occurs check: does a given variable occur in a given term? The occurs check would make matching inefficient."
My questions is if unification in miniKanren suffers this efficiency penalty or how is this problem solved?