a7 = args[1];
} else if (a4.isVariable()){
a6 = new VariableTerm(engine);
a7 = new VariableTerm(engine);
Term[] args = {a6, a7};
((VariableTerm) a4).bind(new StructureTerm(s1, args), engine.trail);
} else {
return engine.fail();
}
a8 = new VariableTerm(engine);
//START inline expansion of $get_level(a(8))
if (! a8.unify(new IntegerTerm(engine.B0), engine.trail)) {
return engine.fail();
}
//END inline expansion
Term[] y1 = {a3, a6, a7};
a9 = new StructureTerm(s4, y1);
Term[] y2 = {s3, a9};
a10 = new StructureTerm(s2, y2);
Term[] y3 = {a3, a2};
a11 = new StructureTerm(s2, y3);
a12 = new ListTerm(a11, s7);
a13 = new ListTerm(s6, a12);
a14 = new ListTerm(a1, a13);
a15 = new ListTerm(a5, a14);
a16 = new ListTerm(s5, a15);
Term[] y4 = {a6, a7};
a17 = new StructureTerm(s1, y4);
Term[] y5 = {a1, a2, a3, a17, a5};
a18 = new StructureTerm(s8, y5);
p1 = new PRED_$read_blocked_1(a18, cont);
p2 = new PRED_$builtin_message_1(a16, p1);
p3 = new PRED_$cut_1(a8, p2);
return new PRED_clause_2(a10, new VariableTerm(engine), p3);
}