anchor.diff:  (defun ast-to-source (ast)
     (to-source ast nil))
   
  +(defun list-to-sources (list dictionary)
  +  (loop for elem in list collect (to-source elem dictionary)))
  +
   (defmethod to-source (ast dictionary)
  -  `(??? ,@(loop for child in (cleavir-ast:children ast)
  -		collect (to-source child dictionary))))
  +  (warn "Don't know how to sourcify a ~a"
  +	(class-name (class-of ast)))
  +  `(??? ,@(list-to-sources (cleavir-ast:children ast)
  +			   dictionary)))
   
   (defmethod to-source ((ast cleavir-ast:function-ast) dictionary)
     (let* ((entries '())
  
positive.code:   `',(cleavir-ast:value ast))
  
  (defmethod to-source ((ast cleavir-ast:lexical-ast) dictionary)
    (cdr (assoc ast dictionary)))
  
  #+ (or)
  (defmethod to-source ((ast cleavir-ast:special-ast) dictionary)
    (cdr (assoc ast dictionary)))
  
  (defmethod to-source ((ast cleavir-ast:call-ast) dictionary)
    `(funcall ,(to-source (cleavir-ast:callee-ast ast) dictionary)
  	    ,@(loop for arg in (cleavir-ast:argument-asts ast)
  		    collect (to-source arg dictionary))))
  
  #+ (or)
  (defmethod to-source ((ast cleavir-ast:global-ast) dictionary)
    `#',(cleavir-ast:name ast))
  
  (defmethod to-source ((ast cleavir-ast:progn-ast) dictionary)
    `(progn ,@(loop for child in (cleavir-ast:children ast)
  		  collect (to-source child dictionary))))
  
negative.code:        ,(to-source (cleavir-ast:body-ast ast) (append entries dictionary)))))
  
  (defmethod to-source ((ast cleavir-ast:setq-ast) dictionary)
    `(setq ,(to-source (cleavir-ast:lhs-ast ast) dictionary)
  	 ,(to-source (cleavir-ast:value-ast ast) dictionary)))
  
  (defmethod to-source ((ast cleavir-ast:if-ast) dictionary)
  