[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Redefinition of CL Functions

One point that should be introduced into this discussion is the
distinction between "legal" and "reasonable".  It is not feasible for
Common Lisp to mandate reasonableness; users will have to decide for
themselves whether a given implementation is reasonable.  With any
standard it is possible to create a system that complies with the
letter of the standard, but is still totally unusable.

In the case of redefinitions of standard functions and macros I would
say that reasonable implementations should both:
 -- Warn when the user redefines a standard function or macro and
 -- Do its best to make the user redefinition work.

I don't think either property can be brought within the formal
language definition, so an implementation that flames out and dies
when you redefine a standard function would be legal.