 
 (defn process-top-level-form [smodel form]
   (let [[op name & more] form]
-    (case (str op)
-      "ns" [(j ["package" name]) (line-range form)]
-      "defn" [(j (process-defn name (first more) (rest more))) (line-range form)]
-      "UNKNOWN-TOP-LEVEL-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 %)


(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 c2g-sym [sym]
  (-> (str sym)
      (string/replace "." "_")
      (string/replace "-" "_")
      (string/replace "?" "p")))

