     (symbol (str "__" nesting-level "_" rule-name))))
 
 (declare create-let-expression)
+(declare create-proc-fn)
 
 (defn- create-bindings-vector
   [input rules body-creation-fn output nesting-level]

                     (conj tmp-k `(.append "\""))
                     tmp-k)
            tmp-v (cond
                    (list? (second rule)) (conj
                                            tmp-k2
                                            `(.append ~(prefix-rule-name (first rule) nesting-level)))
                    (and
                      (vector? (second rule))
                      (every? vector? (second rule))) (do
                                                        (conj tmp-k2 (reverse
                                                                       (into '()
                                                                             (create-let-body-vec-json-str-out
                                                                               (second rule)
                                                                               output
                                                                               (inc nesting-level))))))
                    (cond-rule-expr? (second rule)) (conj tmp-k2 `(.append ~(prefix-rule-name (first rule) nesting-level)))
                    :default (do (println "JSON String Body: unknown element for rule:" (str rule))
                                 tmp-k2))
            tmp-v2 (if (some #{:string} rule)
                     (conj tmp-v `(.append "\""))
                     tmp-v)]

  (reduce
    (fn [v rule]
      (cond
        (sequential? (second rule)) (conj v
                                          `(.put
                                            ~(name (first rule))
                                            ~(prefix-rule-name (first rule) nesting-level)))
        (cond-rule-expr? (second rule)) (conj v
                                              `(.put ~(name (first rule))
                                                     ~(prefix-rule-name (first rule) nesting-level)))
