Change enum pos to signed int to avoid underflow; operator on enum will not have range check (but succ and pred still have range check