Add more tests for the Union, then fix the code uncovered as broken.