TODO find out how to make std::set::find() work with custom sort order, as std::find may only be O(N) and not O(log (N)).