Note: In this implementation, the InVariant object is an array of args where each array element is the constructor args for one resulting array element. Constructor args are forwarded to the element data type and the resulting object is placed in the output array.