 
 ;(clojure.pprint/pprint 
 
-#_(defxn foo
+(defxn foo
   ;`[clojure.set/join ~(+ 1 2)]
   ;if you want some form to be evaluate then place ~ before it
   ;this is the defblock

                notnil? :all ;both spec and unspec
                notnil? :all-specified; :all-sac
                notnil? :except :unspecified
                ~(partial > 0) :except :specified
                (partial > 0) [:all [:not :specified] [:except [:a :c]] ]
                ]
   ;invariants ran over all specified params but not over the unspecified(and thus optional ones which have the default value assigned)

     )
(catch Compile$CompilerException c c))

;TODO: throw on dup keys; - this is already happening on "eval"

#_(
=> (defxn noes {:a ~(inc (+ 1 2)) :b firsta}
