Delay the execution of Goal until Var is bound
(i.e. is not a variable or attributed variable). If Var is
bound on entry
freeze/2
is equivalent to call/1.
The freeze/2
predicate is realised using an attributed variable associated with the
module freeze. Use frozen(Var, Goal) to find
out whether and which goals are delayed on Var.