,:Q ISO;:Q ISO::P ISO->:Q;:R ISO->:Q ISO! ISO\+ :P ISO ^ :Psetof/3 and bagof/3)
block :P declarationcall(:P) ISOcall(:P,...)(...)
call_cleanup(:Goal,:Cleanup)call_residue_vars(:Goal,?Vars) do :Bodyfail ISOfalsefail
freeze(+Var,:Goal)nonvar(Var) holds.
if(:P,:Q,:R)once(:P) ISOotherwiserepeat ISOtrue ISOwhen(+Cond,:Goal)