} else { // a1 = nonvar /\ a2 = var
// (a1 = java \/ a1 = str \/ a1 = clo) /\ a2 = var
if (a1.isJavaObject() || a1.isStructure() || a1.isClosure()) {
((VariableTerm) a2).bind(a1, engine.trail);
} else { // a1 != java /\ a1 != str /\ a1 != clo /\ a2 = var
((VariableTerm) a2).bind(new JavaObjectTerm(a1.toJava()),
engine.trail);
}
}
return cont;
}