Hi, Is there a simple package to manage sets of general objects, and perform simple operations like: - union - intersection - difference - test for membership... but where the equality test between 2 objects is under the control of the programmer? In the base package, it seems only operations on vectors are allowed. And I tried also the sets package, with the cset class, but I did not manage to make it work: for example, if I want to manage sets of lists, where equality is predicated on only one element (named id) of the list, defining a: obj.equal.p <- function(x,y){ x$id == y$id } and then FUN <- matchfun(obj.equal.p) and then: obj1 <- list(id=1,info="toto1") obj2 <- list(id=2,info="toto2") obj3 <- list(id=3,info="toto3") cs <- cset(set(obj1,obj2,obj3), matchfun = FUN) obj4 <- list(id=1,info="toto4") (yes, id=1) obj4 %e% cs returns a FALSE instead of the TRUE I was expecting since obj4$id =obj1$id. Thanks for your help Johnny [[alternative HTML version deleted]]