@Override
  public boolean equals(Object o) {
    if (o == this) return true;
    if (!(o instanceof VarVersionEdge edge)) return false;

    return type == edge.type && source == edge.source && dest == edge.dest;
  }
@Override
  public boolean equals(Object o)