def METHOD_NAME(self, **kwargs) -> "Program":
    """
    Create a new program replacing the given paths (using `at` syntax).
    Example:
    ```
    >>> p1 = Program.to([100, 200, 300])
    >>> print(p1.replace(f=105) == Program.to([105, 200, 300]))
    True
    >>> print(p1.replace(rrf=[301, 302]) == Program.to([100, 200, [301, 302]]))
    True
    >>> print(p1.replace(f=105, rrf=[301, 302]) == Program.to([105, 200, [301, 302]]))
    True
    ```
    This is a convenience method intended for use in the wallet or command-line hacks where
    it would be easier to morph elements of an existing clvm object tree than to rebuild
    one from scratch.
    Note that `Program` objects are immutable. This function returns a new object; the
    original is left as-is.
    """
    return _sexp_replace(self, self.to, **kwargs)