     (binding [*go-return-tag* nil
               *go-dot* true]
       (emit-wrap env
-        (emits "(&" (case (-> ctor :info :ns)
-                      js ctor
-                      goog (normalize-goog-ctor ctor)
-                      (update-in ctor [:info :name] (comp munge go-type-fqn))) "{"
+        (emits "(&" (if (= 'goog (-> ctor :info :ns))
+                      (normalize-goog-ctor ctor)
+                      ctor) "{"
                       (comma-sep
                        (concat
                         (if-let [types (seq (map (comp :tag meta) fields))]

        (str (string/upper-case (subs s 0 1)) (when (next s) (subs s 1)))))))

(defn go-type-fqn [s]
  (apply str (map go-public (string/split (str s) #"[./]"))))

(defn go-short-name [s]
  (last (string/split (str s) #"\.")))


(defmethod emit* :var
  [{:keys [info env tag] :as arg}]
  (let [ns (and (symbol? (:name info)) (some-> info :name namespace symbol))
        info (cond-> info (and *go-dot* (:type info)) (update-in [:name] #(symbol (str ns) (go-type-fqn %))))
        statement? (= :statement (:context env))]
    ; We need a way to write bindings out to source maps and javascript
    ; without getting wrapped in an emit-wrap calls, otherwise we get
