class InstanceSelector {

    void forAll( Consumer<T> consumer )
    {
        RuntimeException exception = null;
        for ( IndexSlot slot : IndexSlot.values() )
        {
            exception = consumeAndChainException( select( slot ), consumer, exception );
        }
        if ( exception != null )
        {
            throw exception;
        }
    }

      InstanceSelector();
      InstanceSelector( EnumMap<IndexSlot,T> map );

}