Avoid loosing generic type arguments, when constructing generic types recursively
Ensure that array element fields are non-null values