maybe we should have explicit functions for these, but right now we count on rules to help us here:
matching a set in LHS and mentioning it with an additional element in the RHS will add the element.
rule <barrier> true </barrier> <k> wait ...</k> <id> X </id>  <waiting> W:MySet (. => MySetItem(X)) </waiting>  when notBool(X in W)
matching a set with an explicit element in LHS and mentioning it without that element in the RHS will remove the element.
rule <barrier> false </barrier> <k> wait => . ...</k> <waiting> W:MySet (MySetItem(X) => .) </waiting>