is_list/1 and free variables
<p>Here is a first observation:</p>

<pre><code>?- is_list([]), is_list([_,_,_]).
true.
</code></pre>

<p>Here is another observation:</p>

<pre><code>?- [] = _, [_,_,_] = _.
true.
</code></pre>

<p>Therefore, why would <code>is_list/1</code> be implemented such that</p>

<pre><code>?- is_list(_).
false.
</code></pre>

<p>or</p>

<pre><code>?- is_list([_|_]).
false.
</code></pre>

<p>when <code>_</code> can clearly be unified with a list? Wouldn't that be logically sounder that it be <code>true</code>?</p>

<p>In <a href="http://www.swi-prolog.org/pldoc/man?predicate=is_list/1" rel="nofollow">SWI-Prolog's documentation for <code>is_list/1</code></a>, a note says: </p>

<blockquote>
  <p>In versions before 5.0.1, <code>is_list/1</code> just checked for <code>[]</code> or <code>[_|_]</code> and <code>proper_list/1</code> had the role of the current <code>is_list/1</code>. The current definition conforms to the de facto standard.</p>
</blockquote>

<p>Why is that the de facto standard?</p>