e around in the current environment (or whatever),
then return to the caller:
</p>

<pre class="indented">
(load "repl.scm")

(define (drop-into-repl e)
  (let ((C-q (integer-&gt;char 17)))              ; we'll use the C-q example above to get out
    (let ((old-C-q ((*repl* 'keymap) C-q))
	  (old-top-level (*repl* 'top-level-let)))
      (dynamic-wind
	  (lambda ()
	    (set! (*repl* 'top-level-let) e)
	    (set! ((*repl* 'keymap) C-q)
		  (lambda (c)
		    (set! ((*repl* 'repl-let) 'all-done) #t))))
	  (l