     ; evaDefBlock == `'~evaDefBlock = `~*fxn_defBlock_symbol*
     `(defn ~fname [& allParamsInAMap#]
 "
-this function takes only one parameter: a map with the parameters
-"
-       {:pre [(q/assumedTruthy [(let [f# (first allParamsInAMap#)
-                                      s# (second allParamsInAMap#)
-                                      ]
+this function takes only one parameter: a map with the parameters;
+or no parameters at all.
+"
+     {:pre [(q/assumedTruthy [(let [f# (first allParamsInAMap#)
+                                    s# (second allParamsInAMap#)
+                                    ]
                                 (or 
                                   (nil? f#);means 0 params
                                   (and ;if the above isn't true we're here, so there is a first params

for function `" '~fname "` you passed `" allParamsInAMap# "`"])]}
       (let [~*fxn_defBlock_symbol* '~evaDefBlock
             ~*fxn_defBlockRaw_symbol* '~passedDefBlock
             ;~'fxn_evalled ~e
             ]
         ;(clojure.pprint/pprint (list ~'*fxn_defBlockRaw_symbol* ~*fxn_defBlockRaw_symbol*))
         ;(clojure.pprint/pprint (list ~'*fxn_defBlock_symbol* ~*fxn_defBlock_symbol*));symbol and its value
         (clojure.pprint/pprint  '~aliases)
         ~@codeblocks
         #_(= (~(:c x) ~(:d x))
           (~(:e 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 will not be relative to *ns* once defxn executed
             :e ~(list partial > 1)
             }
  (println "!!!" (get_fxn_defBlock))
  (println "!!!" (get_fxn_defBlock_Aliases))
;  (:b fxn_defBlock)
;  (:c fxn_defBlock)
  )

(println (noes))
(def a 1)
(println (noes))

(binding [*fxn_defBlock_symbol* 'abc]
  (println *fxn_defBlock_symbol*)
  (noes)
  )

;last lines:
(q/show_state2)
(q/gotests)