Quick and dirty clojure-style protocols in Racket