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.