thread ... end
Primitive operations block until their arguments are
sufficiently instantiated for the operation to be performed. For
example:
declare X = Y + 12
blocks until Y becomes instantiated. We say that it
suspends on variable Y. This is known as
data-flow synchronization.
The entire thread on which the operation executes suspends on
variable Y:
declare X = thread Y + 12 end