Sorry, my diagnosis was incorrect. This is not an evaluation problem,
simply a list-of-arguments fl(a1,a2,a3) vs. argument-list
f([a1,a2,a3]) problem.
As Andrej says, the solution is very simple:
apply(f,[a1,a2,a3]) == f(a1,a2,a3)
buildq is a handy function for macros, but I wouldn't recommend its
use elsewhere.
-s