docs: public <T extends SquareNode>T destination(SquareNode src) {
  		if( a == src )
  			return (T)b;
  		else if( b == src )
  			return (T)a;
  		else
  			throw new IllegalArgumentException("BUG! src is not a or b");
  	}