def is_dunder_method(obj) -> bool:
    """Is the method a dunder (double underscore), i.e. __add__(self, other)?"""
    assert hasattr(obj, "__name__")

    obj_name = obj.__name__

    return obj_name.endswith("__") and obj_name.startswith("__")