DEFLIST (( (ERT (LAMBDA (;ERTA)
   (PROG (;LISTEN W Q)
       (PRIN1 (QUOTE >>>))
       (MAPCAR ;ERTA (FUNCTION (LAMBDA (X) (PROG2 (PRIN0 X)
          (PRIN1 (QUOTE $$$ $))))))
       (TERPRI)
       (PRINT (QUOTE LISTENING))
   LISTEN
         (COND ((ATOM (ERRORSET (QUOTE (SETQ ;LISTEN (READ))) T)) NIL)
             ((MEMQ ;LISTEN (QUOTE (T $$*$P*))) (RETURN T))
             ((NULL ;LISTEN) (RETURN NIL))
             ((EQ (CAR ;LISTEN) (QUOTE RETURN))
                  (RETURN (EVAL (CADR ;LISTEN) ALIST)))
               (T (ERRORSET (QUOTE (PRINT (EVAL ;LISTEN ALIST))) T)))
       (GO LISTEN))))
 ) EXPR)
 
DEFLIST ((
 
(DELQ (LAMBDA (U V)
   (COND ((NULL V) NIL)
       ((EQ U (CAR V)) (CDR V))
       (T (CONS (CAR V) (DELQ U (CDR V)))))))
 
(PUTPROP (LAMBDA (U V W)
   (DEFLIST (LIST (LIST U V)) W)))
 
(MEMQ (LAMBDA (U V)
   (COND ((NULL V) NIL)
       ((EQ U (CAR V)) V)
       (T (MEMQ U (CDR V))))))
 
(GETL (LAMBDA (U V)
   (COND ((NULL V) NIL)
       (T ((LAMBDA (W) (COND (W W)
                             (T (GETL U (CDR V)))))
            (MEMQ (CAR V) (CDR U)))))))
 
) EXPR)
 
DEFLIST (((BREAK (LAMBDA (A B) (MAPCAR A (QUOTE BREAK1)))))FEXPR)
 
DEFLIST ((
 
(BREAK1 (LAMBDA (A)
   (PROG (X Y Z W)
       (SETQ Y T)
       (COND ((NULL (ATOM A)) (PROG2 (SETQ Y (CADR A)) (SETQ A (CAR A)))))
       (OR (SETQ X (GETL A (QUOTE (EXPR FEXPR SUBR FSUBR))))
          (RETURN (PRINT (LIST A (QUOTE UNDEFINED)))))
       (AND (MEMQ (CAR X) (QUOTE (EXPR FEXPR)))
          (EQ (CAADR (CDADR X)) (QUOTE BREAK2))
          (RETURN (PRINT (LIST A (QUOTE $$$ALREADY BROKEN$)))))
       (SETQ W (COND ((MEMQ (CAR X) (QUOTE (FEXPR FSUBR))) (QUOTE (;A ;A2)))
                     ((EQ (CAR X) (QUOTE EXPR)) (BREAK4 (CADR (CADR X))
                          (QUOTE (;A1 ;A2 ;A3 ;A4 ;A5 ;A6 ;A7))))
                     (T (BREAK5 (LEFTSHIFT (CDR X) -24) (QUOTE (;A1 ;A2 ;A3 ;A4 ;A5 ;A6 ;A7))))))
       (PUTPROP A
          (LIST (QUOTE LAMBDA)
             W
             (LIST (QUOTE BREAK2)
                (QUOTIFY A)
                (COND ((MEMQ (CAR X) (QUOTE (FEXPR FSUBR))) (QUOTE (LIST ;A ;A2)))
                      (T (CONS (QUOTE LIST) W)))
                (QUOTIFY (CAR X))
                (QUOTIFY (COND ((MEMQ (CAR X) (QUOTE (EXPR FEXPR)))
                              (CADR (CADR X)))  (T NIL)))
                (QUOTIFY (SETQ Z (GENSYM1 (QUOTE XXX))))
                (QUOTIFY Y)
                (COND ((MEMQ (CAR X) (QUOTE (FEXPR FSUBR))) (QUOTE ;A2))
                      (T (QUOTE ALIST)))))
          (QUOTE BREXPR))
       (RPLACA (GETL A (QUOTE (BREXPR)))
             (COND ((MEMQ (CAR X) (QUOTE (FEXPR FSUBR))) (QUOTE FEXPR))
                   (T (QUOTE EXPR))))
       (PUTPROP Z (CADR X) (CAR X))
       (RPLACA X (QUOTE BREXPR))
          (PRINT A)
       (RETURN (CSETQ BREAKLIST (CONS A BREAKLIST))))))
  
(BREAK5 (LAMBDA (X Y) (COND ((LESSP X 1) NIL)
                            (T (CONS (CAR Y) (BREAK5 (SUB1 X) (CDR Y)))))))
  
(QUOTIFY (LAMBDA (X) (COND ((MEMQ X (QUOTE (T NIL))) X)
                           (T (LIST (QUOTE QUOTE) X)))))
  
) EXPR)
 
CSETQ (BREAKLIST NIL)
DEFLIST ((
  
(UNBREAK (LAMBDA (A B)
   (MAPCAR (COND (A A) (T BREAKLIST)) (FUNCTION (LAMBDA (X)
       (PROG (Y Z)
          (AND (SETQ Y (GETL X (QUOTE (EXPR FEXPR))))
             (EQ (CAADR (CDADR Y)) (QUOTE BREAK2))
             (SETQ Z (GETL X (QUOTE (BREXPR))))
             (NOT (REMPROP X (CAR Y)))
             (RPLACA Z (CADAR (CDDDR (CADDR (CADR Y)))))
             (PRINT X)
             (CSETQ BREAKLIST (DELQ X BREAKLIST))
             )))))))
  
) FEXPR)
  
DEFLIST ((
  
(BREAK2 (LAMBDA (;NAME ;ARG ;TYPE ;VARS ;FN ;COND ;ALIST)
   (PROG (VALUE ;XX)
       (SETQ ;VARS (COND (;VARS ;VARS)
          ((EQ ;TYPE (QUOTE FSUBR)) (QUOTE (ARG A)))
           (T (BREAK4 ;ARG (QUOTE (ARG1 ARG2 ARG3 ARG4 ARG5 ARG6 ARG7))))))
       (EVAL (LIST (QUOTE PROG) ;VARS (QUOTE (BREAK3))) ALIST)
       (RETURN VALUE))))
 
(BREAK4 (LAMBDA (U V)
   (COND ((NULL U) NIL)
          (T (CONS (CAR V) (BREAK4 (CDR U) (CDR V)))))))
  
(BREAK3 (LAMBDA NIL
   (PROG NIL
       (MYSET ;VARS ;ARG)
       (AND (SETQ ;XX (EVAL ;COND ALIST))
          (APPLY (QUOTE ERT) (LIST (LIST (QUOTE ENTERING)
                               ;NAME ;TYPE ;VARS)) ALIST))
       (SETQ VALUE (COND ((MEMQ ;TYPE (QUOTE (FEXPR FSUBR))) 
                          (EVAL (CONS ;FN (CAR ;ARG)) ;ALIST))
                         (T (APPLY ;FN ;ARG ;ALIST))))
       (AND ;XX (APPLY (QUOTE ERT) (LIST (LIST (QUOTE EXITING) ;NAME)) ALIST)))))
  
(MYSET (LAMBDA (;U ;V)
   (COND ((NULL ;U) NIL)
         (T (PROG2 (SET (CAR ;U) (CAR ;V)) (MYSET (CDR ;U) (CDR ;V)))))))
   
) EXPR)
 
DEFLIST ((
 
(PRIN0 (LAMBDA (U)
   (PROG NIL
      (COND ((ATOM U) (RETURN (PRIN1 U))))
      (PRIN1 (QUOTE $$$($))
   A  (COND ((NULL U) (GO B))  ((ATOM U) (GO C)))
      (PRIN0 (CAR U))
      (COND ((CDR U) (PRIN1 (QUOTE $$$ $))))
      (SETQ U (CDR U))
      (GO A)
   B  (RETURN (PRIN1 (QUOTE $$$)$)))
   C  (PRIN1 (QUOTE $$$.$))
      (PRIN1 (QUOTE $$$ $))
      (PRIN1 U)
      (GO B))))
 
) EXPR)