Is there anyone here who can explain this strange behavior? Consider the following code:
ClearAll[f]General::generaltag = "This is a general message";f::fspecifictag = "This is a f-specific message";Then
General::generaltagf::generaltagf::fspecifictagevaluates to
While the Message function works as expected despite the unevaluated middle expression,
Message[General::generaltag]Message[f::generaltag]Message[f::fspecifictag]yielding
StringForm fails on the middle expression and ends up with
However, repeating definition of the General message name without prior ClearAll,
General::generaltag = "This is a general message";will fix everything, giving for both
General::generaltagf::generaltagf::fspecifictagand
StringForm[General::generaltag]StringForm[f::generaltag]StringForm[f::fspecifictag](the Message behavior remains unchanged). Reusing the the very first code with ClearAll would bring everything back to the original situation.
I appreciate any advice or tips.



