This is just a stub for ideas that I initially came to while thinking about:
* #1393014: Patch to allow email to role(s) to work with an intersection of roles instead of union
* #1252860: Action: Differences between lists
* #1391840: Action: "Filter list items" based upon any condition(s)
* #1540634: Calculate a value: support strings, lists, & files
* Ordering functions in Rules Data Transforms
* then later, Conditionals (Conditional Rules)
* and, #1600272: Calculating with lists: sum, mean, count, min, max

With respect to the roles feature request, conditions already afford us these operations and more:
* Intersection ("A ∩ B") = AND(has role a, has role b)
* Union ("A ∪ B") = OR(has role a, has role b)
* Relative complement ("B ∖ A") = AND(has role b, NOT has role a)
* todo: involutions, proper subsets, partitions
* todo: orders, relations
* todo: others?

See a demo of this at algebra.com's Solver Set Union, Intersection, and Relative Complement.

So, what I'd like to develop is a proposal and/or docs for working them into actions, directly, once I figure this out. Perhaps using a new action similar to 'Calculate a value' with the above operators might make sense. However, this could be done even easier using conditionals with condition sets (components), I think. What I think would be wise to avoid is recreating the same functionality twice, and I think conditionals is the basis for this, but I still haven't thought it through yet. Hence, this is a stub. Comments are very much welcomed.