(Email from Vincent Manis)
Problem: It's impossible to write a portable error handler that writes out the message and irritants that were passed to error.
This comes about because error creates an "implementation-defined object". I would assume that this hides the whole exception class hierarchy a WG2 implementation might provide. Since the message and irritants arguments to error are presumably living in this implementation-defined object, it should be simple enough to provide accessors to extract them, so that the above "portable error handler" can be written.
Suggestion: Add the following procedures:
Returns #t if object is something created by error, #f otherwise. Any constraints on type disjointness are up to the implementation.
Returns the message of object.
Returns a list of the irritants of object.