/** Attribute and its two values for the visit status of positions. */
  protected static Object STATUS = new Object(); // The status attribute
  protected static Object VISITED = new Object(); // Visited value
  protected static Object UNVISITED = new Object(); // Unvisited value
  /** Mark a position as visited.	*/
  protected void visit(Position p) { p.set(STATUS, VISITED); }
  /** Mark a position as unvisited.	*/
  protected void unVisit(Position p) { p.set(STATUS, UNVISITED); }
  /** Test if a position has been visited. */
  protected boolean isVisited(Position p) { return (p.get(STATUS) == VISITED); }