Consider the following function:
```mathematica
f[arg_] := Print[Unevaluated[arg]];
Attributes[f] = HoldAll;
```
The purpose of the function is to print the arguments unevaluated. In particular, what's important to me is that a symbol that already has a value will be printed as the symbol and not the value. For example:
```mathematica
x = 1;
f[x];
```
The output is `x` as desired. But now I want to have the same behaviour with multiple arguments, either as a `List` or a `BlankSequence`. Here are my attempts:
With a `List`:
```mathematica
fList[args_] := Print[Unevaluated /@ args];
Attributes[fList] = HoldAll;
x = 1;
y = 1;
fList[{x, y}]
```
With a `BlankSequence`:
```mathematica
fBS[args__] := Print[Unevaluated /@ {args}];
Attributes[fBS] = HoldAll;
x = 1;
y = 1;
fBS[x, y]
```
In both cases the expected output is `{x, y}`, but what I actually get is `{Unevaluated[1], Unevaluated[1]}`! It seems that the `HoldAll` attribute doesn't actually do anything in these cases... Is there any way to solve this issue?
Thanks.