This seems incredibly complicated. It would help if you would state the general problem you are trying to solve and the performance characteristics you need. It certainly is not a generic duplicate removal library. Why can't you flatten your list and then just apply a sequence of predicate matches as needed or use hashing as mentioned in the commentary? Bob ​