title: 99 Haskell Questions # 14
body: <p>I had a question about one of the implementations of the duplicate function as described in 99 Haskell Questions (<a href="https://wiki.haskell.org/99_questions/Solutions/14" rel="nofollow">https://wiki.haskell.org/99_questions/Solutions/14</a>).</p>
  
  <p>One of the solutions uses the list instance of Applicative. That particular solution is</p>
  
  <pre><code>duplicate = (&lt;**&gt; [id,id])
  </code></pre>
  
  <p>I was wondering why, when I tried to implement duplicate instead as</p>
  
  <pre><code>duplicate' = ([id,id] &lt;*&gt;)
  </code></pre>
  
  <p>I get</p>
  
  <pre><code>duplicate' [1,2,3] = [1,2,3,1,2,3]
  </code></pre>
  
  <p>Instead of [1,1,2,2,3,3].</p>
  
  <p>Thanks!</p>