def METHOD_NAME(self, definition: "Definition", codeloc: "CodeLocation", expr: Optional[Any] = None) -> None:
    """
    Remove one use of a given definition.
    :param definition:  The definition of which to remove the uses.
    :param codeloc:     The code location where the use is.
    :param expr:        The expression that uses the definition at the given location.
    :return:            None
    """
    if definition in self._uses_by_definition:
        if codeloc in self._uses_by_definition[definition]:
            if expr is None:
                for codeloc_, expr_ in list(self._uses_by_definition[definition]):
                    if codeloc_ == codeloc:
                        self._uses_by_definition[definition].remove((codeloc_, expr_))
            else:
                self._uses_by_definition[definition].remove((codeloc, expr))
    if codeloc in self._uses_by_location:
        for item in list(self._uses_by_location[codeloc]):
            if item[0] == definition:
                self._uses_by_location[codeloc].remove(item)