Update Apparently this isn't clear to everyone. Here's what I mean:
;; a.lisp (defpackage :a (:use :cl)) (in-package :a) (defvar *conflict* '(a b c d))
Compile and load a.lisp.
;; b.lisp (defpackage :b (:use :cl) (:export :a :b :c :d))
Compile and load b.lisp.
(defpackage :a (:use :cl :b))
You get something that looks like this:
USE-PACKAGE #<PACKAGE "B"> causes name-conflicts in #<PACKAGE "A"> between the following symbols: B:B, B [Condition of type SB-INT:NAME-CONFLICT] See also: Common Lisp Hyperspec, 126.96.36.199.5 [section] Restarts: 0: [RESOLVE-CONFLICT] Resolve conflict.If you pick restart 0, you get something like this:
Select a symbol to be made accessible in package A: 1. B:B 2. B Enter an integer (between 1 and 2): CL-USER> 1
The code for the restart prints its own prompt and does its own input reading to resolve the conflict. It works, but it intermixes slime output with other output and looks ugly.
I would like something klickibunti like the slime inspector.
Santa, I hope you understand now.