I have committed some changes that I'm a little insecure about, so there is a bit of a hurdle to use them. Feedback desired. Essentially I've extended the recent repl output mechanism to arbitrary objects you choose to print that way.
e.g.
(swank::presenting-object object stream (print "This is really the object")).
This makes the string "This is really the object" behave like old repl input for the object.
As an example, I've hooked that into the printing of unreadable objects in openmcl and cmucl. So all unreadable objects are now mouse sensitive and can be copied and used in expressions in the repl.
To enable this stuff you need to explicitly load "present.lisp". Then try (describe 'class) and mouse over some of the #<things>.
This uses the ilisp bridge.el mechanism to embed messages in the output stream indicating the start and and of the objects so printed and associates an id with them. The downside is that if I've done things incorrectly you could see these characters when you don't want to.
To turn off the loading of the bridge, customize slime-repl-enable-presentations and turn it off.
-Alan