docs: def mrca(self, labels):
          '''Return the Node that is the MRCA of the nodes labeled by a label in ``labels``. If multiple nodes are labeled by a given label, only the last (preorder traversal) will be obtained
  
          Args:
              ``labels`` (``set``): Set of leaf labels
  
          Returns:
              ``Node``: The MRCA of the ``Node`` objects labeled by a label in ``labels``
          '''
          if not isinstance(labels,set):
              try:
                  labels = set(labels)
              except:
                  raise TypeError("labels must be iterable")
          l2n = self.label_to_node(labels)
          count = dict()
          for node in l2n.values():
              for a in node.traverse_ancestors():
                  if a not in count:
                      count[a] = 0
                  count[a] += 1
                  if count[a] == len(l2n):
                      return a
          raise RuntimeError("There somehow does not exist an MRCA for the given labels")