arguments.set( arg.getPosition(), declr );
declrIndexes.add( arg.getPosition() );
requiredDeclarations.add( declr );
} else {
// it doesn't exist, so it's an output
declr = pattern.addDeclaration( expr );
// this bit is different, notice its the ArrayElementReader that we wire up to, not the declaration.
ArrayElementReader reader = new ArrayElementReader( arrayReader,
varIndexes.size(),
params[arg.getPosition()].getExtractor().getExtractToClass() );