A little tutorial on the gotchas of defprotocols/defrecords