This document discusses using FXML for building desktop applications in Clojure. It explores different options for the controller in FXML, including regular maps, defrecord, gen-class, and deftype. It also mentions virtual DOM approaches. The document dives into how deftype and gen-class are implemented in Clojure using ASM and bytecode generation. It proposes macros like fxml and fxml-controller that could generate the necessary classes to support FXML in Clojure.