Oh, just if someone is really interested why I am struggling with this question: (It is a bit OffTopic to this questions, but someone might be interester).
In Tensorflow in a Graph there are Operations. Before adding an Operation to a Graph, it has to be built. Building an Operation is a long process (like over 100 source code lines). There are over 1300 individual operations. Every operation can have (or can be missing) various number of inputs, input arrays (called input lists) and outputs (and also output lists and attributes, but I do not want to over complicate). Imagine abs(), what has 1 input and 1 output, but matrix multiplication has 2 inputs and 1 output, or concatenate has no input but 1 input array (a list of n number of individual tensors to be merged) and 1 output, and so on.
If one wants a general purpose Operation creation routine, it has to take the parameters in an array, as no fixed number of parameters can be known in advance.
In the earlier version I had three parameters (again, in reality it was even more), one array of inputs, one array of input lists and one array of outputs. Then inside, when building the Operation, I first added the inputs then the input lists and finally the outputs. Unfortunately the sequence of parameters must match with the sequence in the declaration, but luckily earlier the individual inputs were all before the input lists and those before the outputs, so it was OK that first I iterated through the input array then the inputlist array and then the output array.
In the latest release there is (at least) one Operation, where the inputlist parameter is mixed among the input parameters. Hence my program fails in this particular case. Hence I need a new release where I can give the input and input list parameters mixed. They have different types, so if I can/could pass an array of mixed types and then iterate through them, figure out which is what type and add them sequentially with the right method that would be the desired outcome.
Sometimes humans (writing programs) call this routine, so they can just call it likes AddOperation([aninput, aninpulist, anotherinput, anoutput]);, but I also have simplified versions, where I want to pass on these parameters already received in an array.
Of course I am thinking of other solutions, like keeping separate input and inputlist arrays and adding a third array mapping what sequence to mixed them in and other creative solutions, but still trying to keep it relatively simple.
Hope it clarifies...