title: In Clojure, how can I add support for common functions like empty? and count to my new type?
body: <p>As I understand, Clojure makes it "easy" to solve the "expression problem".</p>
  
  <p>But I can't find details how to do this. How can I create a new type (like defrecord) that handles things like empty? and count ?</p>