               (title "Hello"))
             (body
               (h1 "Hello World!")
+              (div (div (p "HI")
+                        (h2 "OK")))
               (p "This is a test of our html system")
               (h2 "This is a Header 2")
               (p "This is the last paragraph")))
       doc2 (p "HI")]
   (println doc))
 
-(println (macroexpand '(deftag html)))
+(macdbg (deftag html))
+
+(comment
+
+(defn abc [a]
+  (->> a
+       (for [i forms] id)
+       (fn [x] x)))
+
+(defn abc [a b c d e f g]
+  (+ a b c d e f g))
+
+(def abc-c
+ (fn [a]
+  (fn [b]
+   (fn [c]
+    (fn [d]
+     (fn [e]
+      (fn [f]
+       (fn [g]
+        (+ a b c d e f g)))))))))
+    )

(our-when true
       (println "When was true!"))


(defn start-tag [name]
  (str "<" name ">"))

(defn end-tag [name]
  (str "</" name ">"))

(dmp deftag [tag]
  `(defn ~tag [ & res#]
     (apply str
        (cons (start-tag '~tag) res#))))

(deftag html)
(deftag head)
(deftag title)
(deftag body)
(deftag h1)
(deftag h2)
(deftag p)

;; Implementing some of the macros from Chapter 7 of On Lisp.
(require '[clojure.string :as string])
(use 'clojure.pprint)
(use 'clojure.walk)

(defn intersperse [sep list]
     (interpose sep list))

(defn printsnt [ & vals ]
  (println (str (string/capitalize (apply str vals))
                ".")))

