title: Wrong argument: why is a List<List<>> not equivalent to a List<Object>?
body: <p>This following code gives me a compilation error:</p>
  
  <pre class="lang-java prettyprint-override"><code>public static Function&lt;int[], Stream&lt;Tuple2&lt;Formatter, List&lt;Object&gt;&gt;&gt;&gt; acquisitionColors = (col) -&gt; Seq.of(
              Tuple.tuple(Formatter.COLOR,
                      Seq.of(
                              Seq.of(col).toList(),
                              Seq.of(
                                      Seq.of("Stop", "Stoq", null, "red").toList(),
                                      Seq.of("Learning", "Learninh", null, "gray").toList(),
                                      Seq.of("Stop", "Stoq", null, "red").toList(),
                                      Seq.of("Reduce", "Reducf", null, "orange").toList(),
                                      Seq.of("Keep", "Keeq", null, "green").toList(),
                                      Seq.of("Increase", "Increasf", null, "blue").toList()
                              ).toList()
                      ).toList()
              )
      );
  </code></pre>
  
  <pre><code>Wrong 2nd argument type. Found: 'java.util.List&lt;java.util.List&lt;? extends java.lang.Object&gt;&gt;', required: 'java.util.List&lt;java.lang.Object&gt;' 
  Inspection info:  
  tuple (Formatter,java.uti.List&lt;java.lang.Object&gt;) in Tuple cannot be applied 
  to (Formatter,java.util.List&lt;java.util.List&lt;? extends java.lanq.Object&gt;&gt;)
  </code></pre>
  
  <p>However, if I wrap that list with a <code>Collections.singletonList</code>, it works:</p>
  
  <pre><code>public static Function&lt;int[], Stream&lt;Tuple2&lt;Formatter, List&lt;Object&gt;&gt;&gt;&gt; acquisitionColors = (col) -&gt; Seq.of(
              Tuple.tuple(Formatter.COLOR,
                      Collections.singletonList(
                       ...
                      ).toList())
              )
      );
  </code></pre>
  
  <p>Why does that happen?</p>