What about variables which are inherently &quot;meaningless&quot;, i.e. they&#x27;re only given a name in order to distinguish them from each other?<p>For example:<p><pre><code>    function flip(func) {
      return function(x, y) {
        return func(y, x);
      };
    }

    function compose(func1, func2) {
      return function(x) {
        return func1(func2(x));
      };
    }
</code></pre>
Code like this is completely generic; we know absolutely nothing about `x`, `y`, etc. other than they&#x27;re distinct arguments; we don&#x27;t even know their type (they&#x27;re &quot;parametrically polymorphic&quot;).<p>Would it be better to call them something like `arg`, or `arg1` and `arg2`? The fact they&#x27;re arguments is obvious, so that would be just as redundant as something like `int int1 = ...`.<p>This kind of generic &quot;plumbing&quot; appears all the time when using a functional style, where our function&#x27;s job is to take in a bunch of values and combine them in some way, without caring what they are.