Currently, all integers translate to I8 dtypes in numpy, which can be wasteful.
For strings, we already have the slot_info tuple for specifying the string length, so we can use that to restrict the size of the array type (but we'll have to have some checking on the c++ filler side, so that the correct size values are copied in)
The same could be done for float/double types too.