Reason about variable chains
When many variables are unified, long chains of Variables can be built up. For some examples there might arise performance problems when such a chain is traversed multiple times.
It might be beneficial to shorten these chains. In this case the shortening has to be done carefully since there might arise the need to undo this shortening due to backtracking.