anchor.diff:  	   :in base :collect (push (list ?id :connects-to ?id2) base))
     base)
   
  +(defmethod label-line-connections ((base list))
  +  "Some lines connect to other lines. Connecting lines will be a single connection rather than multiple connections."
  +  (for-all (and (?id :line-segment nil)
  +		(?id :start ?start) (?id :end ?end)
  +		(?id2 :line-segment nil)
  +		(lisp (not (equal ?id ?id2)))
  +		(or (?id2 :start ?end) (?id2 :end ?start)
  +		    (?id2 :start ?start) (?id2 :end ?end)))
  +	   :in base :do (push (list ?id :line-connects-to-line ?id2) base))
  +  base)
  +
   (defun walk-segment-graph (base src &key (explored (list src)))
     (for-all `(and (or (,src :line-connects-to-line ?id)
   		     (?id :line-connects-to-line ,src))
  
positive.code: ;;;;;;;;;; Synthesizing new facts
  (defmethod synthesize ((base list))
    (label-line-cluster
     (label-connection-endpoints
      (label-top-inputs
       (label-arguments-and-name
        (label-labels
         (label-constants
  	(label-line-connections
  	 (label-constraints base)))))))))
  
  (defmethod label-constraints ((base list))
  
negative.code:     `(define-closing-handler (,uri-sym) ,(loop for n in top-level-names collect `(,n :number))
         "Hello!")))
  
  (defmethod generate-code (target (base list))
    (error "Unsupported target: ~s" target))
  
  (defmethod generate-code ((target (eql :repl)) (base list))
    (generate-repl-app base))
  
  