In reply to TC_2017:
You might want to read this post about class terminology. The constraint solver can only make assignments to integral variables. It can also change the size of a dynamic array, but if that is an array of class variables, there is no way to modify any element. That’s why you must construct all elements first, and the solver can shrink by deleting elements.