,
: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
ISOfalse
fail
freeze(
+Var,
:Goal)
nonvar(
Var)
holds.
if(
:P,
:Q,
:R)
once(
:P)
ISOotherwise
repeat
ISOtrue
ISOwhen(
+Cond,
:Goal)