title: cannot construct the infinite type
body: <p>I want to use applicative function and tried as follow:</p>
  
  <pre><code>*ReaderExercise Control.Applicative&gt; (+4) &lt;*&gt; (+3)
  </code></pre>
  
  <p>then got following error message:</p>
  
  <pre><code>&lt;interactive&gt;:51:11: error:
      * Occurs check: cannot construct the infinite type: a ~ a -&gt; b
        Expected type: (a -&gt; b) -&gt; a
          Actual type: a -&gt; a
      * In the second argument of `(&lt;*&gt;)', namely `(+ 3)'
        In the expression: (+ 4) &lt;*&gt; (+ 3)
        In an equation for `it': it = (+ 4) &lt;*&gt; (+ 3)
      * Relevant bindings include
          it :: (a -&gt; b) -&gt; b (bound at &lt;interactive&gt;:51:1)
  </code></pre>
  
  <p>What do I expect is a return function with one argument.<br>
  What does it mean an infinite type?</p>