I have been reading the ECJ-Interest list for a while, and I find it 
really interesting...
I hope that my question is not too stupid, but I really have problems 
using ADFs.
I am trying to solve a system of n equations using an ADF implementation. 

I managed to represent it as the following tree :
Master Tree
Result Producing Branch
   |        |         |
ADF0       ADF1  ... ADFn

If I generate a system containing 3 variables like : 
(X1 = a variable given from a learning sample)
X2 = X1 + X1
X3 = X1 * X2

Where ADF0 corresponds to the equation establishing the value of X2 and 
contains the X1 + X1 , and ADF1 corresponds to the value of X3 ands 
contains X1*X2...

My problem is that, as ADF0 returns the value of X2 and  ADF1 returns the 
value of X3,  I would like the result prucing branch to take these 2 
inputs and return both values to the GP problem. So I have my ADF 
returning a different type of variable (single variable) than the one used 
in the GPproblem (multiple variables)...

Here is what I did:
Having an operator AND(ADF..,ADF..) in the function set of the result 
producing branch, that would concatenate the result of each ADF into a 2 
dimensional array, and an operator ONLY(ADF..) that would take the result 
of one  ADF and return it under the format of the 2 dimensional array as 
Problem : 
- The result producing branch gives me a very complicated tree of 
unecessary lenght with a lot of ONLY and AND... Is there any way to just 
have one operator that would take n ADF as input , and return a 2-
dimensional array of correponding size? And then limit the result 
producing tree structure as having only one function with n Adfs. 
In preparation for such an operator, I have added in the koza.params file 
branching up to nc20 (20 variables!).

REsult-Producing Tree
      ADFsReceptor -> return a 2-dimensional array of floats
      /     |    \
   Adf0   Adf1 .. Adfn -> every adf returns one float

Is the idea flawed ? Would you have any advice about how to implement the 

Thanks !