title: Is it good practice for a Clojure record to implement IFn?
body: <p>Suppose I have a record that is "function-like", at least in the sense that it represents an operation that could be applied to some arguments.</p>
  
  <p>I can make it work as a function by implementing <code>clojure.lang.IFn</code>, something like:</p>
  
  <pre><code>(defrecord Func [f x]
    clojure.lang.IFn
      (invoke [this arg]
        (f x arg))
      (applyTo [this args]
        (apply f x args)))
  
   ((-&gt;Func + 7) 1)
   =&gt; 8
  </code></pre>
  
  <p>(yes I know that I've just reimplemented an inferior version of <code>partial</code>.... it's just an example :-) )</p>
  
  <p>Is making a record implement <code>clojure.lang.IFn</code> a good practice or not?</p>
  
  <p>Any pitfalls to this approach?</p>