support arbitrary index definitions for sets