lualatex
algorithm
\renewenvironment{foo}
renewcommand{\foo}
\foo
\endfoo
\newenvironment{foo}{\def\foobar{x}}{\par}
\renewenvironment{foo}{\def\foobar{y}}{\par}
\renewcommand{\foo}{\def\foobar{y}}