see if you can't modify Collection to contain a java.util.Collection and use java.util.List for everything except Ambiguity, which is a Set. You may have to make the type generic to make it work.