              :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 "!!!" (eval fxn_defBlock2))
+  (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))

;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
;     ))
;(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))
