Support for creating heterogeneous arrays + Prevent non-root elements to be called root