For ARRAY, let's create a PDataArray type and share it for all ARRAY enums we'll have here (since we'll have one per primitive type). The enum for each of these array types can just delegate to the PDataArray class.