

\RequirePackage[removeoldnames]{l3names}
\RequirePackage{l3expan}

\CodeStart


\def_new:Npn\foo:nn#1#2{\def:Npn\xxx{(#1)(#2)}\tex_show:D\xxx}

\def:Npn\a{A}\def:Npn\b{B}
\def:Npn\aa{\a}\def:Npn\bb{\b}

\def:Npn\foo:oo{\exp_args:Noo\foo:nn}
\def:Npn\foo:xx{\exp_args:Nxx\foo:nn}
\def:Npn\foo:cc{\exp_args:Ncc\foo:nn}
\def:Npn\foo:nx{\exp_args:Nnx\foo:nn}

\foo:nn{a}{b}

\foo:nn{\a}{\b}

\foo:oo\aa\bb

\foo:xx\aa\bb

\foo:cc{a}{b}

\foo:nx{a}{\b}

\tex_end:D
