commit of verification long standing branch

what about make a new method in ```AssociativeCommutativeCollection``` which returns the union of all three collections? In this way, you have shorter code in ```Visitor```s and ```Transformer```s. Besides, next time you want to change the contents of ```AssociativeCommutativeCollection```, you don't have to go through many different places to make the change.