## there are 8 local temporaries variables in the top-level context
## the 8 temporaries defined inside the block expression are parked
## at the top-level context. 'a' assigned before the block expression
## is a global variable.

a := 1234

{
	| a b c d |
	| e f g h |
	a := 10
	b := 20
	c := 30
	d := 40
	e := 50
	f := 60
	g := 70
	h := 80
		
	if (/= a 10) { print "ERROR: a inside the block expression is not 10\n" } \
	else { printf "OK: %d\n" a };
}

a := (a + 1)
c := (sprintf "%d" a)

if (/= a 1235) { printf "ERROR: a is not 1235\n" } \
else { printf "OK: %d\n" a };

if (nql? c "1235") { printf "ERROR: c is not \"1235\"\n" } \
else { printf "OK: %s\n" c };