>> I think the strongest argument for Group is that allowing duplicates could >> result in confusing behavior. Making it a Group ensures that the intent is >> clear. > > Making it a Group certainly helps with the intent, but wouldn't > eliminate confusing behaviour entirely as my example of the > 'SingleThreadExecutor' suggests. Better that just accepting a > Collection / Iterable / Array or whatever.
True, but it would help eliminate confusion for the common case. I think a more important question is - what do you lose by enforcing uniqueness? The only thing a Sequence would allow you to do is ensure that a given task type is executed in series while all other tasks are executed in parallel, which seems like a pretty narrow case. It is also something that can be implemented at the application level for any app that might actually need it. G