@comm_guard(Variable, ANY_TYPE)
def unify_merge(v, o, U):
 best_v = U[v]
 if (v is not best_v):
  return unify_merge(o, best_v, U)
 else:
  return FALL_THROUGH

@ comm_guard ( Variable , ANY_TYPE ) def unify_merge ( v , o , U ) : best_v = U [ v ] if ( v is not best_v ) : return unify_merge ( o , best_v , U ) else : return FALL_THROUGH
this simply checks if the var has an unification in u and uses it instead of the var .