;;SB: I started this buffer by calling emacs, and then "M-x slime". ;;SB: In what follows, the comments starting with ;;SB: were added later, ;;SB: the rest is unmodified Slime's output. ;;SB: Slime in my configuration calls SBCL, because my ~/.emacs contains ;;SB: (setq inferior-lisp-program "/opt/local/bin/sbcl") ; SLIME 2016-02-10 CL-USER> (ql:quickload "cl-html-parse") To load "cl-html-parse": Load 1 ASDF system: cl-html-parse ; Loading "cl-html-parse" ("cl-html-parse") ;;SB: Did this to avoid warnings about variable S being underclared when used in SETQ CL-USER> (defvar s) S ;;SB: At first, I did this without the PROGN. As a result, I got some 1500 lines of the ;;SB: return value printed into my buffer. That was unwelcome, and I tried to delete them, ;;SB: only to find that Slime marked some text in the buffer read-only, and would refuse ;;SB: any region deletion method I tried, with the message that "Text is read-only". Ouch. ;;SB: ;;SB: In the end, I found http://stackoverflow.com/questions/24565068/emacs-text-is-read-only ;;SB: executed "M-x eval-expression (setq inhibit-read-only t)" and then was able to delete ;;SB: the unwanted text from the buffer. Learn from my mistakes :) ;;SB: ;;SB: Hence the PROGN and the NIL at its end. CL-USER> (progn (setq s (html-parse:parse-html (open "~/cs59/cl-html-parse-master/dev/examples/contacts.html"))) nil) NIL ;;SB: Same deal with the final NIL as above. CL-USER> (with-open-file (f "p5-parsed-html-example.sexp" :direction :output :if-exists :overwrite :if-does-not-exist :create) (write s :stream f) nil) NIL CL-USER>