got 'Bag' data type to work such that (==) operator on bags doesn't care about order and allows duplicates (but checks that the bag has the correct number of duplicates). using bindnBag now does not take hours to run since bags drastically compress the state space (2^30 instead of something like (2^30)*large_duplicate_factor