- throw new RuntimeException("attempt to add a Sequence to a Union that has already been examined:\n "+this);
- */
- if (alternatives.contains(s)) return;
+ throw new RuntimeException("once Union.contains() or Union.iterator() has been invoked, "+
+ "you may not add any more Sequences to it\n "+
+ " union in question: " + this);
+ if (s.needed_or_hated)
+ throw new RuntimeException("you may not add a conjunct directly to a Union");
+ s.in_a_union = true;
+ if (alternatives.contains(s)) return this;