 
 (defn c2g-sym [sym]
   (-> (str sym)
+      (string/replace "." "_")
       (string/replace "-" "_")
       (string/replace "?" "p")))
 


(defn process-fn-params [params]
  ["(" (interpose "," (map (fn [sym] [(c2g-sym sym) (c2g-type sym)])
                           params)) ")"])

(defn process-fn-body [params forms]
  (map-indexed (fn [idx form]


(defn process-top-level-form [smodel form]
  (let [[op name & more] form]
    [(case (str op)
      "ns" (j ["package" (c2g-sym name)])
      "defn" (j (process-defn name (first more) (rest more)))
      "UNKNOWN-TOP-LEVEL-FORM")
     (line-range form)]))

(defn process-top-level-forms [smodel]
  (map #(process-top-level-form smodel %)
