don't try to do abstract types with defrecord, and add some basic duplicate def* tests
mark 0.2.0