Flowchart for choosing the right Clojure type definition form