@Override
        public Ref lin(int dist,HexDir dir) {
            if(dist == 0)
                return this;
            else if(dist < 0)
                return lin(-dist, dir == N  ?
                             S  : dir == S  ?
                             N  : dir == NE ?
                             SW : dir == SW ?
                             NE : dir == NW ?
                             SE : NW);
            if(adj(dir)!=null)
                return adj(dir).lin(dist-1,dir);
            return null;
        }