 
 (defmethod parse 'if
   [op env [_ test then else :as form] name]
-  (let [test-expr (disallowing-recur (analyze (assoc env :context :expr) test)) 
+  (let [test-expr (disallowing-recur (analyze (assoc env :context :expr) test))
         then-expr (analyze env then)
         else-expr (analyze env else)]
     {:env env :op :if :form form

    {:dot-action ::call :target target :method (munge meth) :args args}
    {:dot-action ::call :target target :method (munge (first meth)) :args args}))

;; (.m o 1 2)
;; (. o m 1 2)
(defmethod build-dot-form [::symbol ::symbol ::list]
  [[target meth args]]
  (build-method-call target meth args))

;; (.m o)
;; (. o m)
(defmethod build-dot-form [::symbol ::symbol ()]
  [[target meth args]]

  [[target meth _]]
  (build-method-call target meth ()))

;; (. (f _) m 1 2)
(defmethod build-dot-form [::list ::symbol ::list]
  [[target meth args]]
  (build-method-call target meth args))
