def VisitFunction(self, node):
    new_signatures = []
    matches = set()
    for (i, s1) in enumerate(node.signatures):
        for (j, s2) in enumerate(node.signatures):
            if ((i != j) and ((j, i) not in matches)):
                if (s1.exceptions or s2.exceptions):
                    continue
                if s1.template:
                    continue
                if (self.match.match(s1, s2, self.subst) == booleq.TRUE):
                    matches.add((i, j))
                    break
        else:
            new_signatures.append(s1)
    return node.Replace(signatures=tuple(new_signatures))
def VisitFunction(self, node):
    new_signatures = []
    matches = set()
    for (i, s1) in enumerate(node.signatures):
        for (j, s2) in enumerate(node.signatures):
            if ((i != j) and ((j, i) not in matches)):
                if (s1.exceptions or s2.exceptions):
                    continue
                if s1.template:
                    continue
                if (self.match.match(s1, s2, self.subst) == booleq.TRUE):
                    matches.add((i, j))
                    break
        else:
            new_signatures.append(s1)
    return node.Replace(signatures=tuple(new_signatures))