leinを使っていることを想定。defstructなどと違ってdefrecordはJavaのクラスを、defprotocolはJavaのインターフェイスを実際に生成してくれます。type hintsを与えたいときなどなどに便利ですが、落とし穴があります(はまった)。
lein runやlein testを走らせるときにdefrecordなどは自分でコンパイルしないと修正が反映されません。なので、defrecordなどを含むときにはlein compile && lein runとやるかclassesのディレクトリを削除する必要がありそうです。
nsに:reloadとかを付けると解決されそう(?)ですが、ソースコードのほうは汚したくないので。。。