docs: def _load_extensions(root):
      """Returns {name: Extension}"""
      out = collections.OrderedDict()
      for elem in root.findall('extensions/extension'):
          name = elem.attrib['name']
          supported = set(elem.attrib['supported'].split('|'))
          requires = [_load_require(x) for x in elem.findall('require')]
          comment = elem.get('comment')
          out[name] = Extension(name, supported, requires, comment)
      return out