 
 (defvar psl-token-funcs
   `((expr     . ,#'identity)
+    (empty    . ,(lambda (empty) ()))
     (pexpr    . ,(apply-partially 'nth 1))
     (number   . ,#'string-to-number)
     (id       . ,#'intern)
     (deffun   . ,(lambda (list)
                    (destructuring-bind (deffun id params expr in body) list
-                     `(let ((,id (lambda ,(if (stringp params) () params)
-                                   ,expr)))
+                     `(let ((,id (lambda ,params ,expr)))
                         ,body))))
     (defvar   . ,(lambda (list)
                    (destructuring-bind (defvar id eq expr in body) list

    (assignm   [index= id] "[+-]=" expr)

    ;; Objects
    (pairs     pair [("," pairs) ""])
    (pair      id ":" expr)
    (object    "{" [pairs ""] "}")
    (index     [pexpr id] [by-id index-str])
    (index=    [pexpr id] [by-id index-str])
    (message   [pexpr id] "@" [index-str field] args)

                     `(progn ,init (while ,cond ,body ,inc)))))
    (lambda   . ,(lambda (lm)
                   (destructuring-bind (fn params body) lm
                     `(lambda ,params ,body))))
    (inc-pre  . ,(lambda (expr)
                   (let ((id (cadr expr)))
                     `(setq ,id (1+ ,id)))))
