title: Non type-variable argument in the constraint error on Haskell map function
body: <p>I am writing a function called <code>mapper2</code> that applies a function to two lists:</p>
  
  <pre><code>mapper2 :: (a-&gt; b -&gt; c) -&gt; [a] -&gt; [b] -&gt; [c]
  mapper2 f (x:xs) (y:ys) = (f x y) : (mapper2 f xs ys)
  mapper2 _ _ _ = []
  </code></pre>
  
  <p>I am able to compile the function but get an error when I apply it:</p>
  
  <pre><code>*Main&gt; mapper2 (\x -&gt; x*2) [2,4] [4,6] 
  
  &lt;interactive&gt;:4:1: error:
      • Non type-variable argument in the constraint: Num (b -&gt; c)
        (Use FlexibleContexts to permit this)
      • When checking the inferred type
          it :: forall b c. (Num (b -&gt; c), Num b) =&gt; [c]
  </code></pre>
  
  <p>Can someone explain to me how to fix this and what the error means? </p>