split out array construction to allow symbolic arrays to be treated
differently