 ;fxn_defBlock3
 ;=> (clojure.tools.macro/mexpand-all '(defmacro get_fxn_defBlock2
 ;     []
-;     ;like get the value of the symbol returned by fxn_defBlock_symbol
-;     `~fxn_defBlock_symbol
+;     ;like get the value of the symbol returned by *fxn_defBlock_symbol*
+;     `~*fxn_defBlock_symbol*
 ;     ))
-;(do (def get_fxn_defBlock2 (fn* ([&form &env] fxn_defBlock_symbol))) (. (var get_fxn_defBlock2) (setMacro)) (var get_fxn_defBlock2))
-;=> (clojure.tools.macro/mexpand-all '(get_fxn fxn_defBlock_symbol defBlock))
-;(do (def get_fxn_defBlock (fn* ([&form &env] fxn_defBlock_symbol))) (. (var get_fxn_defBlock) (setMacro)) (var get_fxn_defBlock))
+;(do (def get_fxn_defBlock2 (fn* ([&form &env] *fxn_defBlock_symbol*))) (. (var get_fxn_defBlock2) (setMacro)) (var get_fxn_defBlock2))
+;=> (clojure.tools.macro/mexpand-all '(get_fxn *fxn_defBlock_symbol* defBlock))
+;(do (def get_fxn_defBlock (fn* ([&form &env] *fxn_defBlock_symbol*))) (. (var get_fxn_defBlock) (setMacro)) (var get_fxn_defBlock))
 
 
 

    ;(println x); x == `'~x
    ;(println e)
    `(defn ~fname [& all#]
       (let [~fxn_defBlock_symbol '~x 
             ~'fxn_rawDefBlock '~passedDefBlock
             ;~'fxn_evalled ~e
             ]
         ;(clojure.pprint/pprint (list "fxn_rawDefBlock" ~'fxn_rawDefBlock))
         (clojure.pprint/pprint (list ~'fxn_defBlock_symbol ~fxn_defBlock_symbol));symbol and its value
         ;(println ~e)
         ~@codeblocks
         (= (~(:c x) ~(:d x))

             :d a ;"a" has to be resolvable in current ns where defxn is called and it will point to the same a, thus not be relative to *ns* once defxn executed
             :e ~(list partial > 1)
             }
  (println "!!!" (get_fxn_defBlock))
;  (:b fxn_defBlock)
;  (:c fxn_defBlock)
  )
(println (noes))
(def a 1)
(println (noes))
(binding [*fxn_defBlock_symbol* 'abc]
  (println *fxn_defBlock_symbol*)
  (noes))
