Using the output declarations is incorrect because there is a declaration for each type. Instead loop over the names directly, since it will make it easier to add an integer mode that only supports some of the outputs.