@Override
 void delEdge(Edge<T> e) {
   getFathers.remove(e.getFather(), e.getSon());
   Node<T> father = getFather(e.getSon());
   Node<T> n = tNode.get(e.getSon());
   if (father == null) {
     tree.remove(n);
   } else if (father != n.getFather()) {
     tree.move(father, n);
   }
 }
 Node<T> getFather(T t) {
   Node<T> best = null;
   Node<T> conc;
   for (T tf : getFathers.getAll(t)) {
     conc = tNode.get(tf);
     if (takeFirst(conc, best)) {
       best = conc;
     }
   }
   return best;
 }