[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
extending DEFSTRUCT
I agree with Touretzky's proposal, except I would add:
When *PRINT-STRUCTURE* is a non-nil list:
defstructs whose types are members of the list use their own print function
defstructs whose types are not in the list use #S()
I think the membership test should be TYPEP, and that :INCLUDEd types
inherit the print function dynamically (with possibility of over-ride,
of course).
I personally prefer to use a macro DEFSTRUCT-PRINT-FUNCTION so that
I can define the print function separately from the DEFSTRUCT itself,
but I wouldn't go so far as to make that part of CL; rather, let's:
define a GET-PRINT-FUNCTION function (with a SETF form)
which returns the print function associated with a type.