Why does the MWE
\documentclass{article}
\begin{document}
\makeatletter
\def\CharBx{\textbf{\f@series}}
\makeatother
\CharBx
\end{document}
compile normally (it returns 'bx'), while the MWE
\documentclass{article}
\begin{document}
\makeatletter
\edef\CharBx{\textbf{\f@series}}
\makeatother
\CharBx
\end{document}
doesn't compile at all, but just hangs?
\textbf
is not expandable.\edef\CharBx{\noexpand\textbf{\f@series}}
but it gives the tokens\textbf{m}
.