From: John D. Burger
Subject: Re: string to symbol conversion
Date: 
Message-ID: <1991Jun25.195024.2977@linus.mitre.org>
········@tartarus.uchicago.edu writes:

  [Code to concatenate strings and symbols deleted]

As far as I can tell, the functionality of your INSIST macro is implemented by
a CommonLisp built-in, ASSERT.  The ASSERT macro also has some other nice
features, in that it allows you to specify some SETF places for its second
argument, e.g.

  (defun feed-horse (horse barn)
    (assert (horse-in-barn horse barn)
            ((barn-door-closed? barn)
             ;; More SETF places go here ...
             )
            "The horse has escaped!")
    ;; Code to actually feed horse goes here ...
    )

The debugger then presents these to the user so she can try to recover when
the assertion fails.  Thus:

  (feed-horse *trigger* *empty-barn*)

  ERROR: The horse has escaped!
  Options:
    A: Specify a new value for (BARN-DOOR-CLOSED? BARN)
    B: Exit to top level
--
John Burger                                               ····@mitre.org

"You ever think about .signature files? I mean, do we really need them?"
  - alt.andy.rooney