
attvar.pl -- Attributed variable handlingAttributed variable and coroutining support based on attributed variables. This module is complemented with C-defined predicates defined in pl-attvar.c
$wakeup(+List)
uhook(+AttributeName, +AttributeValue, +Value)[private]This predicate deals with reserved attribute names to avoid the meta-call overhead.
unfreeze(+ConjunctionOrGoal)[private]freeze(X, (a, !, b)).
freeze(@Var, :Goal)
frozen(@Var, -Goals)
portray_attvar(@Var)[private]attributes(portray) or
when the prolog flag write_attributes equals portray. Its task
is the write the attributes in a human readable format.
call_residue_vars(:Goal, -Vars)
copy_term(+Term, -Copy, -Gs) is det
frozen_residuals(+FreezeAttr, +Var)// is det[private]freeze(X, a), freeze(X, !) would create freeze(X,
(a,!)), which is fundamentally different. We could create
freeze(X, (call(a), call(!))) or preform a more eleborate
analysis to validate the semantics are not changed.