code: def calculate_mrcas(self, c1 : ClassId, c2 : ClassId) -> Set[ClassId]:
          
          G = self.G
          # reflexive ancestors
          ancs1 = self._ancestors(c1) | {c1}
          ancs2 = self._ancestors(c2) | {c2}
          common_ancestors = ancs1 & ancs2
          redundant = set()
          for a in common_ancestors:
              redundant = redundant | nx.ancestors(G, a)
          return common_ancestors - redundant
docs: Calculate the MRCA for a class pair