CLHS: Issue DEFGENERIC-DECLARE Writeup

#

## Issue DEFGENERIC-DECLARE Writeup

    Issue:         DEFGENERIC-DECLARE

    References:    88-002R p.2-27

    Category:      ADDITION

    Edit history:  29-Apr-90, Version 1 by Moon
                   30-Apr-90, Version 2 by Moon (update current practice)

    Problem description:

      DEFGENERIC only allows DECLARE to appear once, which is inconsistent with
      DEFUN, which allows any number of DECLAREs.

      This is Symbolics issue #23.

    Proposal (DEFGENERIC-DECLARE:ALLOW-MULTIPLE):

      Allow the DECLARE option to appear multiple times in a DEFGENERIC form.
      The multiple declarations are appended together.

    Rationale:

      Programmers rely on the syntactic analogy between DEFGENERIC and DEFUN.

      Note that some implementations allow several implementation-dependent
      declarations in DEFGENERIC, so the list of declarations in a DEFGENERIC
      could be quite long.

    Current practice:

      Symbolics Genera 8.0 only allows DECLARE to appear once.
      Lucid 4.0.0 Beta-1 allows DECLARE to appear multiple times.

    Cost to Implementors:

      Easy.

    Cost to Users:

      None.

    Cost of non-adoption:

      DEFGENERIC would be inconsistent with all other forms that allow DECLARE
      to be used to specify declarations.

    Performance impact:

      None.

    Benefits:

      More consistent language.

    Esthetics:

      More consistent language.

    Discussion:

      None.

Copyright 1996-2005, LispWorks Ltd. All rights reserved.