def METHOD_NAME(self, port: Type) -> Iterable[Connection]:
    driver = port.trace()
    if driver is None:
        self._visit_undriven_port(port)
        return
    if driver.const():
        return
    is_external = self._is_external(driver)
    if is_external is not None:
        if is_external:
            yield (driver, port)
        return
    if not isinstance(port, (m_Tuple, Array)):
        raise TypeError(port)
    for elt in port:
        yield from self.METHOD_NAME(elt)