def METHOD_NAME(dot, port):
    if isinstance(port, Digital) and port.const():
        return "1" if port is type(port).VCC else "0"
    if isinstance(port, Array):
        if not port.iswhole():
            # the sequence of values is concantenated
            port = [METHOD_NAME(dot, i) for i in port.ts]
            port.reverse()
            if len(port) == 1:  # FIXME: Hack to make single length bit arrays work
                return port[0]
            name = '[' + ','.join(port) + ']'
            dot.node(name, '{{' + '|'.join(port) + '}|}')
            for sub in port:
                dot.edge(sub, name + ':' + sub)
            return name
    assert not port.anon()
    return port.name.qualifiedname(sep="_")