import hashlib


def create_amber_id(name: str, qid: str, pid: str) -> str:
    """For each (name, QID, PID) tuple, we compute a unique AmbER ID.

    Arguments:
        name: ``str`` The polysemous name for the AmbER set.
        qid: ``str`` The ID of an entity.
        pid: ``str`` The ID of a property.
    Returns:
        md5: ``str`` A MD5 has of the concatenation of the name, QID, and PID,
            which we use as the ID of the AmbER set tuple.
    """
    hash_input = repr([name, qid, pid]).encode()
    md5 = hashlib.md5(hash_input).hexdigest()
    return md5