+ public int ord() { return ord; }
+
+ final Forest[] holder;
+
+ Pos(int len) { this.holder = new Forest[len]; }
+
+ public abstract int provides();
+ public abstract int[] needs();
+ public abstract int[] hates();
+ public abstract boolean owner_needed_or_hated();
+
+ public abstract boolean isFirst();
+ public abstract boolean isLast();
+ public abstract Pos last();
+ public abstract Pos prev();
+ public abstract Pos next();
+
+ abstract Sequence owner();
+ abstract Element element();
+
+ public abstract int numPops();
+ public abstract <T> Forest<T> rewrite(Input.Region loc);
+ }