Availability:built-in
 freeze(+Var, 
:Goal)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(+Var, 
:Goal)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. See also frozen/2.