def remove_edge(u, v)
      
      looked_up_u, looked_up_v = self[u], self[v]
      looked_up_u.disconnect(looked_up_v)
      # looked_up_u.remove_successor looked_up_v
      # looked_up_v.remove_predecessor looked_up_u
    end
def remove_edge(u, v)
      
      looked_up_u, looked_up_v = self[u], self[v]
      looked_up_u.disconnect(looked_up_v)
      # looked_up_u.remove_successor looked_up_v
      # looked_up_v.remove_predecessor looked_up_u
    end
Removes the edge from the graph. O(1) amortized.