title: Implementing Applicative#apply with `map2`
body: <p>Looking at <code>Applicative#apply</code> in <a href="http://www.manning.com/bjarnason/" rel="nofollow">Functional Programming in Scala</a>, I'm getting a compile-time error on the <code>apply</code> function: </p>
  
  <pre><code> C:\...\Applicative.scala:28: A does not take parameters
                                map2(fa, fab)(_(_))
  </code></pre>
  
  <p>Here's the code from the book:</p>
  
  <pre><code>trait Applicative[F[_]] extends Functor[F] {
    // primitive combinators
    def map2[A,B,C](fa: F[A], fb: F[B])(f: (A,B) =&gt; C): F[C]
  
    [code omitted]
  
    def apply[A,B](fab: F[A =&gt; B])(fa: F[A]): F[B] =
      map2(fa, fab)(_(_))
  </code></pre>
  
  <p>Why is this compile-time error occurring?</p>