\newcommand{\relax}{}
\newcommand{\@empty}{}
%%%%%% Iter #1 on #3, a #2 separated list of non-empty elements
\def\@iter
  #1#2#3{%
    \def\@test{#3}%   
    \ifx\@test\@empty\else
      \def\@@iter##1#2{%
        \def\@test{##1}%
        \ifx\@test\@empty
        \let\@next\relax\else
        #1{##1}%
        \let\@next\@@iter\fi
        \@next}%
    \@callsubst{\@@iter}{#3#2#2}\fi}
%%%%%%%%%% eat leading spaces in argument
\def\@eatspaces#1,{#1}%

