     ))
 
 (defn prefixexp-fn [& args]
-  (first args))
+  (if (next args)
+    (second args)
+    (first args)))
 
 (defn varlist-fn [& args]
   (cons :varlist (leave :even args))

(defn functiondef-fn [& args]
  (let [fn-args (vec (first (second args)))
        fn-body (second (second args))]
  `(fn ~fn-args ~fn-body)))

(defn tableconstructor-fn [& args]
  (println "table:" args)

  (try (pprint (insta/transform transform-map (lua-parser (slurp "resources/test/break.lua"))))
       (catch Exception ex (clojure.stacktrace/print-stack-trace ex)))
  
  (try (pprint (insta/transform transform-map (lua-parser (slurp "resources/test/function3.lua"))))
       (catch Exception ex (clojure.stacktrace/print-stack-trace ex)))
 
  (try (pprint (insta/transform transform-map (lua-parser (slurp "resources/test/function2.lua"))))
       (catch Exception ex (clojure.stacktrace/print-stack-trace ex)))
 (pprint (insta/transform transform-map (lua-parser (slurp "resources/test/basic.lua"))))
