title: implementing curry function
body: <p>I'm currently reading "programming in haskell" by Graham Hutton and just reached currying and function composition.In the exercise portion, there is the task to implement the curry function from scratch which is already present in the prelude module.</p>
  
  <p>Here's my implementation but it's not working.Can anybody explain(I'm new to functional programming) why it's not working</p>
  
  <pre><code>my_curry :: ((a ,b) -&gt; c) -&gt; (a -&gt; b -&gt; c)
  my_curry origFunc = origFunc.combine
                      where
                           combine e f = (e, f)
  </code></pre>
  
  <p>here's the error [added]</p>
  
  <pre><code>[1 of 1] Compiling Main             ( higher_order.hs, interpreted )
  
    higher_order.hs:92:30:
        Couldn't match type `t0 -&gt; (a, t0)' with `(a, b)'
        Expected type: a -&gt; (a, b)
          Actual type: a -&gt; t0 -&gt; (a, t0)
        In the second argument of `(.)', namely `combine'
        In the expression: origFunc . combine
        In an equation for `my_curry':
            my_curry origFunc
              = origFunc . combine
              where
                  combine e f = (e, f)
  </code></pre>