+ (define (dump-queues queues core)
+ (for-each (lambda (queue)
+ (print ";" (queue-owner queue))
+ (for-each (lambda (ptr)
+ (core ptr 'dump)
+ (print))
+ (cdr queue))
+ (print))
+ queues))
+
+ (define (prog->string prog)
+ (conc ";redcode\n\n"
+ ";name\t" (prog-name prog) "\n"
+ (if (not (null? (prog-author prog)))
+ (conc ";author\t" (prog-author prog) "\n\n")
+ "\n")
+ "ORG\t" (prog-offset prog) "\t; Execution offset\n\n"
+ (apply conc (map (lambda (instr) (conc (instr '->string) "\n")) (prog-instrs prog)))))
+
+ (define (dump-prog prog)
+ (print (prog->string prog)))
+