We will be using bit-sets to keep track of which puzzle variables are used in which constraints, and which constraints need to be woken up.