To avoid this problem, one might design a new type of object (a container class) which holds an array of instances and methods for manipulating objects in the array. If all of the methods of interests are in the function table of the container class, than only one dereference is needed per call. Further, some of these methods (call them operators) may operate on the array as a unit, exploiting efficiencies of parallel operation unavailable to the member methods of the individual objects. Replace the array with a set, and this type of container class is essentially a Sol category.