title: point free where arguments are in the wrong order
body: <p>I want to write a function using Ramda's standard function set that given a dictionary and a key, it will increment the value for the key. Example</p>
  
  <pre><code>fn('foo', {}) // =&gt; {foo: 1}
  fn('foo', {foo: 1}) // =&gt; {foo: 2}
  </code></pre>
  
  <p>I've gotten pretty close but am missing a way to curry properly.</p>
  
  <p>I have a method that takes a key and an object and returns one more:</p>
  
  <pre><code>// count :: Any -&gt; Number
  var count = R.compose(R.inc, R.defaultTo(0))
  
  // countProp :: String -&gt; Object -&gt; Number
  var countProp = R.curry(R.compose(count, (R.prop(R.__))))
  
  countProp('foo', {foo:1}) // 2
  countProp('foo', {}) // 1
  </code></pre>
  
  <p>Now I want to return a new data structure</p>
  
  <pre><code>// accum :: String -&gt; Object -&gt; Object
  var accum = R.curry(function(key, obj){
    return R.assoc(key, countProp(key, obj), obj)
  })
  
  accum('foo', {foo: 1}) // =&gt; {foo: 2}
  </code></pre>
  
  <p>But the issue is that in order to make this point free, I have to figure out how to get the values in the functions setup to get curried in the proper order. What am I doing wrong? Should I set up this function differently? I tried to set it up so both dependent functions would both take the key first, then the object, but I'm missing something. Should I be considering a specific Functor for this?</p>
  
  <p>Thanks!</p>