 ;;;;   - Note that much of Clojure is implemented using macros.
 ;;;;     e.g. `and`, `or`, `let`, `cond`, `while`, `letfn`, `with-redefs`, `->`,
 ;;;;          `->>`, `as->`.
-
-;;;; ___________________________________________________________________________
-;;;; ~@ -- unquote-splicing
-
-(fact "Unquote unquotes"
-  (let [x (range 5)]
-    `[:a ~x :b])
-  => '[:a (0 1 2 3 4) :b])
-
-(fact "Unquote-splicing unquotes and splices"
-  (let [x (range 5)]
-    `[:a ~@x :b])
-  => '[:a 0 1 2 3 4 :b])
 
 ;;;; ___________________________________________________________________________
 ;;;; Code transformation.

;;;; - See syntax-quote below.

;;;; ___________________________________________________________________________
;;;; Intro to syntax-quote and unquote.

;;;; ` -- syntax-quote (the backquote character)
;;;; ~ -- unquote

;;;; Allow us to write macros using templates.

(defmacro my-if-not-2
  ([test then else]

;;;; - The full power of the language is available when defining a macro.

;;;; ___________________________________________________________________________
;;;; Simple rearranging of arguments

;;;; Define a macro:

