def METHOD_NAME(x: collections.abc.Callable[..., Elem]):
    assert isinstance(x, collections.abc.Callable)
    assert callable(x)
    # ... implies *args, **kwargs; as would any argument types
    assert isinstance(x(), Elem)
    assert isinstance(x(1, 2, 3, a=4, b=5, c=6), Elem)