#  simple calls with array params

#  calls to a should use predeclared param block; calls to b should not

resource p1()
	int n = 3              # once got bad optimization if variable
	op a(int z[1:3])
	op b(int z[1:n])

	const int c[3] = ((12, 83, 41))
	a(c)
	b(c)

	int zz[1:10]
	for [ i = 1 to 10 ] {
	zz[i] = i
	}

	for [ i = 1 to 8 ] {
	call a(zz[i:i+2])
	call b(zz[i:i+2])
	}

	proc a(z)  {
	    write(z[1],z[2],z[3])
	}

	proc b(z)  {
	    write(z[1],z[2],z[n])
	}
end
