anchor.diff:  		(push ! x)))))
   	
   (defun js-transpile (outfile infiles)
  -  (with (x nil)
  +  (with (base (or (format t "Compiling JavaScript core...~%")
  +   				  (transpiler-pass-complete *js-transpiler* *js-base*))
  +		 x nil)
   	(dolist (file infiles)
  -	  (format t "Reading file '~A'.~%" file)
  +	  (format t "Compiling '~A'...~%" file)
     	  (with-open-file f (open file :direction 'input)
   	    (setf x (append x (transpiler-sight *js-transpiler* (read-many f))))))
  -	(format t "OK. Will write to '~A'...~%" outfile)
       (with-open-file f (open outfile :direction 'output)
  -	  (with (base (or (format t "Compiling JavaScript core...~%")
  -      				  (transpiler-pass-complete *js-transpiler* *js-base*))
  -	  		 user (or (format t "Compiling user code...~%")
  -      				  (transpiler-transpile *js-transpiler* x)))
  -	    (format t "Emitting code.~%")
  +	  (with (user (transpiler-transpile *js-transpiler* x))
  +	    (format t "Emitting code to '~A'...~%" outfile)
   		(format f "~A~A" base user)))))
   
   (defun js-machine (outfile)
  
positive.code: 
  (define-js-std-macro defun (name args &rest body)
    (progn
  	 (unless (in? name 'apply 'list)
  	   (acons! name args (transpiler-function-args tr)))
      `(%setq ,name
  		    #'(lambda ,args
  
negative.code: (defun rplacd (x val)
    (setf x.__ val))
  
  (defun list (&rest x)
    x)
  
  ,(def-js-type-predicate symbolp "symbol")
  ,(def-js-type-predicate consp '%cons)
  