Hm, "a" isn't a variable,it's the value of stuff[1].
It's both..
DECLARE a integer; b integer;
The point is I want a dynamically named variable. Here I've named them the same as stuff[i] but they can be anything provided it is a different variable name on each loop iteration. The manual is not entirely clear on where loop variable substitution does and does not apply with FOR.
Did you try declaring a,b,c,d as the return type of the respective functions?