Software design, functional programming, and software engineering practices Summary: Clojure is an imperative language. Its operations are defined in terms of concrete actions. But those actions are often the same actions available to the programmer at runtime. This makes it easy to bootstrap. Update: أخلاق الخيميائي pointed out that I was wrong about the size of GHC. Luckily it was not salient to