 ()
                  (with-fluids ((current-reader #f))
                    (save-module-excursion
                     (lambda ()
                       (define (call/ec proc)
                         (let ((tag (make-prompt-tag)))
                           (call-with-prompt
                               tag
                             (lambda ()
                               (proc (lambda () (abort-to-prompt tag))))
                             (lambda (k) (values)))))
                       ;; The initial environment when loading a module is a fresh
                       ;; user module.
                       (set-current-module (make-fresh-user-module))
                       ;; Here we could allow some other search strategy (other than
                       ;; primitive-load-path), for example using versions encoded
                       ;; into the file system -- but then we would have to figure
                       ;; out how to locate the compiled file, do auto-compilation,
                       ;; etc. Punt for now, and don't use versions when locating
                       ;; the file.
                       (call/ec
                        (lambda (abort)
                          (primitive-load-path (in-vicinity dir-hint name)
                                               abort)
                          (set! didit #t)))))))
                (lambda () (set-autoloaded! dir-hint name didit)))
              didit))))))

