anchor.diff:      		  ,@body)))
   
   (define-js-macro function (x)
  -  `("function ",@(transpiler-binary-expand
  -				   ","
  -				   (argument-expand (lambda-args x) nil nil))
  -	,(code-char 10)
  -	"{"
  -	(~%ret "=" nil) ,*js-separator*
  -    ,@(lambda-body x)
  -    ("return " ~%ret ,*js-separator*)
  -	"}"))
  +  (if (atom x)
  +	  (list x)
  +      `("function " ,@(transpiler-binary-expand
  +				      ","
  +				      (argument-expand (lambda-args x) nil nil))
  +	  ,(code-char 10)
  +	  "{"
  +	  (~%ret "=" nil) ,*js-separator*
  +      ,@(lambda-body x)
  +      ("return " ~%ret ,*js-separator*)
  +	  "}")))
   
   (define-js-macro defvar (name val)
     `("var " ,name " = " ,val))
  
positive.code: (define-js-macro make-string (&optional size)
    `(%transpiler-string ""))
  
  (define-js-macro make-hash-table ()
    "{}")
  
  (define-js-macro vm-go (tag)
  
negative.code: (define-js-binary eq "===")
  (define-js-binary eql "==")
  
  (define-js-macro make-array (&rest ignored)
    "[]")
  
  (define-js-macro aref (arr &rest idx)
    `(%transpiler-native ,arr
      ,@(mapcar #'(lambda (x)
  