anchor.diff:                  (cdr node)))
           edges))
   
  -(edges->dot *wizard-edges*)
  -;; => LIVING_ROOM->GARDEN[label="(WEST DOOR)"];
  -;; => LIVING_ROOM->ATTIC[label="(UPSTAIRS LADDER)"];
  -;; => GARDEN->LIVING_ROOM[label="(EAST DOOR)"];
  -;; => ATTIC->LIVING_ROOM[label="(DOWNSTAIRS LADDER)"];
   
   (defun graph->dot (nodes edges)
     (princ "digraph{")
     (nodes->dot nodes)
     (edges->dot edges)
     (princ "}"))
  -
  -(graph->dot *wizard-nodes* *wizard-edges*)
  -;; =>
  -;; digraph{
  -;; LIVING_ROOM[label="(LIVING-ROOM (YOU ARE IN TH..."];
  -;; GARDEN[label="(GARDEN (YOU ARE IN A BEATI..."];
  -;; ATTIC[label="(ATTIC (YOU ARE IN THE ATTI..."];
  -;; LIVING_ROOM->GARDEN[label="(WEST DOOR)"];
  -;; LIVING_ROOM->ATTIC[label="(UPSTAIRS LADDER)"];
  -;; GARDEN->LIVING_ROOM[label="(EAST DOOR)"];
  -;; ATTIC->LIVING_ROOM[label="(DOWNSTAIRS LADDER)"];}
   
   
   (defun dot->png (fname thunk)
  
positive.code:                                  (curtains)
                          (roof (shingles)
                                (chinmey)))))
  
  ;; this is in someway can be hard to visualize the relations of data
  
  ;; lets create a graph
  
  
  (defparameter *wizard-nodes* '((living-room (you are in the living-room.
                                 a wizard is snoring loudly on the couch.))
                                 (garden (you are in a beatiful garden.
  
negative.code:                                (garden (living-room east door))
                                 (attic (living-room downstairs ladder))))
  
  
  (defparameter *max-label-length* 30)
  
  ;; * generating the dot information
  
  
  