Removes an annotation from this AST.

        :param a: the annotation to remove
        :returns: a new AST, with the annotation removed

def remove_annotation(self, a):
        """
        Removes an annotation from this AST.

        :param a: the annotation to remove
        :returns: a new AST, with the annotation removed
        """
        return self._apply_to_annotations(lambda alist: tuple(oa for oa in alist if oa != a))