+ protected final Element[] elements;
+
+ boolean needed_or_hated = false;
+ boolean in_a_union = false;
+
+ final HashSet<Sequence> needs = new HashSet<Sequence>();
+ final HashSet<Sequence> hates = new HashSet<Sequence>();
+
+ // FIXME: these are ugly -- migrate into Cache
+ HashMap<Sequence,Boolean> canNeed = new HashMap<Sequence,Boolean>();
+ HashMap<Sequence,Boolean> canKill = new HashMap<Sequence,Boolean>();
+
+ final Position firstp;