in rfcs/20210731-tfjs-named-tensors/gtensor.ts [153:165]
function liftedFn(input: Dims<G|D>): { [key in keyof MapDim]: Dims<MapDim[key]|D> } {
if (!((liftDim as string) in input)) {
throw new ValueError(`The lift dimension ${liftDim} must occur in input's dimensions: ${Object.keys(input)}`);
}
const unstacked_dims = input[liftDim as D].unstack() as never as Dims<G>[];
const unstackedApplications = unstacked_dims.map(toLiftFn);
const stackedApplications = {} as { [key in keyof MapDim]: Dims<MapDim[key]|D> };
for(const key of Object.keys(unstackedApplications[0]) as (keyof MapDim)[]) {
const toStack = unstackedApplications.map(a => a[key] as Dims<MapDim[keyof MapDim]>);
stackedApplications[key] = stack(liftDim as D, toStack);
}
return stackedApplications;
}