protected Sequence(Element[] elements, HashSet<Sequence> and, HashSet<Sequence> not) {
this.needs = and==null ? new HashSet<Sequence>() : and;
this.hates = not==null ? new HashSet<Sequence>() : not;
protected Sequence(Element[] elements, HashSet<Sequence> and, HashSet<Sequence> not) {
this.needs = and==null ? new HashSet<Sequence>() : and;
this.hates = not==null ? new HashSet<Sequence>() : not;