title: Namespace qualified record field accessors
body: <p>I've made the same dumb mistake many many times:</p>
  
  <pre><code>(defrecord Record [field-name])
  
  (let [field (:feld-name (-&gt;Record 1))] ; Whoops!
    (+ 1 field))
  </code></pre>
  
  <p>Since I misspelled the field name keyword, this will cause a NPE. </p>
  
  <p>The "obvious" solution to this would be to have <code>defrecord</code> emit namespaced keywords instead, since then, especially when working in a different file, the IDE will be able to immediately show what keywords are available as soon as I type <code>::n/</code>. </p>
  
  <p>I could probably with some creativity create a macro that wraps <code>defrecord</code> that creates the keywords for me, but this seems like overkill. </p>
  
  <p>Is there a way to have <code>defrecord</code> emit namespaced field accessors, or is there any other good way to avoid this problem?</p>