The slot-extra-options Reference Manual

Table of Contents

Next: , Previous: , Up: (dir)   [Contents][Index]

The slot-extra-options Reference Manual

This is the slot-extra-options Reference Manual, version 1.1.0, generated automatically by Declt version 3.0 "Montgomery Scott" on Mon Apr 19 17:48:54 2021 GMT+0.


Next: , Previous: , Up: Top   [Contents][Index]

1 Introduction

#+STARTUP: indent showall

* slot-extra-options

This library lets you build a metaclass which in turn lets you specify extra slot options in its classes. Options may be easily inspected and custom inheritence may be set up. Metaobject Protocol (MOP) is used for the implementation - through [[https://github.com/pcostanza/closer-mop][closer-mop]]. Some convenience function for processing slot options are also available.

Possible use case: you want to automatically set up some definitions based on some slots, but you want to have control over it right in the class definition (check out [[*Macrobuilding][Macrobuilding]] below).

** Example

So, the first step is to define the metaclass and describe what options you want to have.

#+BEGIN_SRC lisp
  (def-extra-options-metaclass example-metaclass ()
    ((start :initform nil ; `:coalescence', by default, is `replace-or-inherit'
            :type integer)
     (validates :coalescence bound-only-once
                :type boolean)))
#+END_SRC

NOTE: if you plan on instantiating objects of the metaclass in the same file you define that metaclass, ensure to wrap the metaclass definition in an ~eval-always~ macro (part of [[https://github.com/ruricolist/serapeum][serapeum]]), otherwise you will get errors when compiling the file.

For each option, other than its name, you can specify: 
- ~type~, 
- ~initform~ (if not set, the option's value will be unbound, as expected) and
- ~coalescence~ (see [[*Inheritence and Coalescence][Inheritence and Coalescence]] below).

Now, a class with this metaclass will have ~:start~ and ~:validates~ options:

#+BEGIN_SRC lisp
  (defclass alpha ()
    ((zulu :initform 22
           :start 55
           :validates t))
    (:metaclass example-metaclass))
#+END_SRC

Before you can inspect the class, finalize it first (or simply instantiate its object): ~(c2mop:ensure-finalized (find-class 'alpha))~. Now, you can access the slot definition:

#+BEGIN_SRC lisp
  (let ((zulu-definition (find 'zulu (c2mop:class-slots (find-class 'alpha))
                               :key #'c2mop:slot-definition-name)))
    (values (slot-definition-start zulu-definition)
            (slot-definition-validates zulu-definition)))
#+END_SRC

#+BEGIN_SRC lisp
  55, T
#+END_SRC

As you can see, the ~def-extra-options-metaclass~ has defined ~slot-definition-start~ and ~slot-definition-validates~.

** Inheritence and Coalescence

When inheriting classes, you can control how options will be inherited. To this end, you can specialize on ~coalesce-options~. These specializations are available out of the box:

- ~replace-or-inherit~ (default, simply inherits the value from its most direct superclass)
- ~bound-only-once~ (once specified, can't be overriden in subclasses)
- ~merge~ (lists only, new value merged with all the values of the superclasses)
- ~difference~ (lists only, set-difference of new value with all values of the superclasses)

For a demonstration, let's inherit from ~alpha~:

#+BEGIN_SRC lisp
  (defclass beta (alpha)
    ((zulu :start 66))
    (:metaclass example-metaclass))
#+END_SRC

Now, if you inspect ~beta~, you will see that ~start~ is now =66=. Note that you can't set ~:validates~ to ~NIL~, as that would cause an error in ~coalesce-options~, because ~:coalesecence~ for this option is ~bound-only-once~. Also, given that the compiler does type checking (like SBCL with high enough safety), trying to supply a value of a non-compatible type to an option will yield a compile-time error. See [[file:example.lisp]] to see all of these in action.

** Macrobuilding

Now, if you want to write a macro which defines a class and inspects it right away (to build custom definitions based on it), you can do something like this:

#+BEGIN_SRC lisp
  (defmacro def-your-thing (name direct-superclasses direct-slots &rest options)
    `(progn
       ;; you will get errors on the first run if you don't have this `eval-when':
       (eval-when (:compile-toplevel :load-toplevel :execute) 
         (defclass ,name ,direct-superclasses
           ,direct-slots
           (:metaclass your-metaclass)
           ,@options)
         (c2mop:ensure-finalized (find-class ',name)))
       (your-macro-that-inspects-the-class ,name)))
#+END_SRC

The downside is that this relies on immediate finalization of the class. If you don't want that for some reason, you could probably try defining an after method for ~c2mop:ensure-class-using-class~, but that doesn't work out in some cases.

** Convenience functions

See the docstrings for details.

*** Finding and Collecting Slots 

| function                            | purpose                                                                                       |
|-------------------------------------+-----------------------------------------------------------------------------------------------|
| ~slot-exists-and-bound-p~             | self-explanatory                                                                              |
| ~find-slot~                           | find effective slot name in class/class-name                                                  |
| ~find-dslot~                          | same as ~find-slot~, but for direct-slots                                                       |
| ~all-direct-slot-definitions~         | yields all slot definitions from the class precedence list (which includes the class itself). |
| ~all-slot-readers~ / ~all-slot-writers~ | use ~all-direct-slot-definitions~ to yield all readers/writers from the class precedence list.  |

*** Slot definitions

| function                  | purpose                                                                                                     |
|---------------------------+-------------------------------------------------------------------------------------------------------------|
| ~pick-in-slot-def~          | given option key, finds all values in a slot definition.                                                    |
| ~pick-in-slot-defs~         | as ~pick-in-slot-def~ but for many slots.                                                                     |
| ~remove-from-slot-def~      | given an option key, removes it from a slot definition.                                                     |
| ~ensure-option-in-slot-def~ | makes sure that a slot option is present in a slot definition and puts it there (with a default) otherwise. |

*** Change detection

| function                        | purpose                                                                                                                                                           |
|---------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ~slot-option-effective-changed-p~ | see if the newest state of option changed, useful to see if it's necessary to, say, define a new method or if the inherited one is sufficient (see the docstring) |
| ~slot-option-direct-changed-p~    | same as ~slot-option-effective-changed-p~, but for direct slots                                                                                                     |

*** Finalization 

| function                    | purpose                                                       |
|-----------------------------+---------------------------------------------------------------|
| ~ensure-finalized-precedence~ | ensures that all classes in the precedence list are finalized |

** Code Guidelines

Less than 80 chars per line.

** Installation

Available on Quicklisp:

#+BEGIN_SRC lisp
  (ql:quickload :slot-extra-options)
#+END_SRC

To run tests, do:

#+BEGIN_SRC lisp
  (asdf:test-system :slot-extra-options)
#+END_SRC

** Compiler Support

Should work where ~closer-mop~ works.

Tests ran successfully on: =SBCL 2.0.11=, =ECL 20.4.24=, =CCL 1.12=.

** Licence

LGPL-3.0-or-later


Next: , Previous: , Up: Top   [Contents][Index]

2 Systems

The main system appears first, followed by any subsystem dependency.


Previous: , Up: Systems   [Contents][Index]

2.1 slot-extra-options

Author

Dmitrii Korobeinikov <dim1212k@gmail.com>

Home Page

https://github.com/some-mthfka/slot-extra-options

License

LGPL-3.0-or-later

Description

Extra options for slots using MOP.

Version

1.1.0

Dependencies
Source

slot-extra-options.asd (file)

Components

Next: , Previous: , Up: Top   [Contents][Index]

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

3.1 Lisp


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.1 slot-extra-options.asd

Location

/home/quickref/quicklisp/dists/quicklisp/software/slot-extra-options-20210411-git/slot-extra-options.asd

Systems

slot-extra-options (system)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.2 slot-extra-options/package.lisp

Parent

slot-extra-options (system)

Location

package.lisp

Packages

slot-extra-options


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.3 slot-extra-options/utils.lisp

Dependency

package.lisp (file)

Parent

slot-extra-options (system)

Location

utils.lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.4 slot-extra-options/error-conditions.lisp

Dependency

utils.lisp (file)

Parent

slot-extra-options (system)

Location

error-conditions.lisp

Exported Definitions

slot-extra-options-error (condition)

Internal Definitions

message (method)


Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.5 slot-extra-options/coalesce.lisp

Dependency

error-conditions.lisp (file)

Parent

slot-extra-options (system)

Location

coalesce.lisp

Exported Definitions

Next: , Previous: , Up: Lisp files   [Contents][Index]

3.1.6 slot-extra-options/slot-extra-options.lisp

Dependency

coalesce.lisp (file)

Parent

slot-extra-options (system)

Location

slot-extra-options.lisp

Exported Definitions
Internal Definitions

Previous: , Up: Lisp files   [Contents][Index]

3.1.7 slot-extra-options/macro.lisp

Dependency

slot-extra-options.lisp (file)

Parent

slot-extra-options (system)

Location

macro.lisp

Exported Definitions

def-extra-options-metaclass (macro)


Next: , Previous: , Up: Top   [Contents][Index]

4 Packages

Packages are listed by definition order.


Previous: , Up: Packages   [Contents][Index]

4.1 slot-extra-options

Source

package.lisp (file)

Use List

common-lisp

Exported Definitions
Internal Definitions

Next: , Previous: , Up: Top   [Contents][Index]

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

5.1 Exported definitions


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.1 Macros

Macro: def-extra-options-metaclass NAME DIRECT-SUPERCLASSES OPTION-DEFINITIONS &rest DEFCLASS-OPTIONS

Define metaclass NAME from OPTION-DEFINITIONS while inheriting from DIRECT-SUPERCLASSES and ‘slot-extra-options-class’. OPTION-DEFINITIONS are used to construct ‘slot-option’s. The format for an option definition is (name [:initform <initform>] [:coalescence <rule specializer>] [:type <type of option>]). The custom options you define may be easily inspected (after the class has been finalized) just like regular options (aka ‘slot-definition-initform’): with slot-definition-<option-name>, which yields the desired ‘slot-option’. Slot options may have custom inheritence rules - see ‘coalesce-options’ for details.

Package

slot-extra-options

Source

macro.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.2 Functions

Function: all-direct-slot-definitions CLASS SLOT-NAME

Get all slot definition of SLOT-NAME in the precedence list of CLASS, ordered as they come in the precedence list. CLASS must be finalized.

Package

slot-extra-options

Source

utils.lisp (file)

Function: all-slot-readers CLASS SLOT-NAME

All slot readers gathered from the direct definitions of the precedence list of CLASS. CLASS must be finalized.

Package

slot-extra-options

Source

utils.lisp (file)

Function: all-slot-writers CLASS SLOT-NAME

All slot writers gathered from the direct definitions of the precedence list of CLASS. CLASS must be finalized.

Package

slot-extra-options

Source

utils.lisp (file)

Function: ensure-finalized-precedence CLASS

Finalize the class and all classes in its precedence list.

Package

slot-extra-options

Source

utils.lisp (file)

Function: ensure-option-in-slot-def SLOT-DEF KEY &optional DEFAULT

Ensure that key is present in slot definition SLOT-DEF, and, if not, place it there with DEFAULT. Or error if default is not supplied.

Package

slot-extra-options

Source

utils.lisp (file)

Function: find-dslot SLOT-NAME CLASS-OR-CLASS-NAME

Find direct slot named SLOT-NAME in CLASS-OR-CLASS-NAME.

Package

slot-extra-options

Source

utils.lisp (file)

Function: find-slot SLOT-NAME CLASS-OR-CLASS-NAME

Find effective slot named SLOT-NAME in CLASS-OR-CLASS-NAME.

Package

slot-extra-options

Source

utils.lisp (file)

Function: pick-in-slot-def SLOT-DEF KEY

Return a list of all options specified by KEY in the slot definition SLOT-DEF, ordered as they come in there. Example: (pick-in-slot-def ’(zulu :initform 0 :reader z0 :reader z1) :reader) => (z0 z1).

Package

slot-extra-options

Source

utils.lisp (file)

Function: pick-in-slot-defs SLOT-DEFS KEY

Return a list of all options specified by KEY in SLOT-DEFS. See ‘pick-in-slot-def’.

Package

slot-extra-options

Source

utils.lisp (file)

Function: remove-from-slot-def SLOT-DEF &rest KEYS

Remove all options specified by KEY from slot definition SLOT-DEF.

Package

slot-extra-options

Source

utils.lisp (file)

Function: slot-exists-and-bound-p OBJECT SLOT-NAME
Package

slot-extra-options

Source

utils.lisp (file)

Function: slot-option-direct-changed-p CLASS SLOT-NAME OPTION-NAME OPTION-ACCESSOR &key EQ-COMP

Find the first class in the ‘rest’ of ‘class-precedence-list’
where SLOT-NAME exists, and then, if option OPTION-NAME exists, compare it with
the option OPTION-NAME of SLOT-NAME of CLASS using equality predicate EQ-COMP
(if both are unbound, nil is returned). If option doesn’t not exist, or there
are no SLOT-NAME slots, return t. In this version of the function, the direct slots are examined.

Package

slot-extra-options

Source

utils.lisp (file)

Function: slot-option-effective-changed-p CLASS SLOT-NAME OPTION-NAME OPTION-ACCESSOR &key EQ-COMP

Find the first class in the ‘rest’ of ‘class-precedence-list’
where SLOT-NAME exists, and then, if option OPTION-NAME exists, compare it with
the option OPTION-NAME of SLOT-NAME of CLASS using equality predicate EQ-COMP
(if both are unbound, nil is returned). If option doesn’t not exist, or there
are no SLOT-NAME slots, return t. In this version of the function, the effective slots are examined. Please, ensure that all classes are finalized before calling!

Package

slot-extra-options

Source

utils.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.3 Generic functions

Generic Function: coalesce-options OPTION-NAME CLASS DSLOTS RULE

Coalesce option OPTION-NAME of CLASS from direct slots
DSLOTS. This lets you define inheritence for custom options (see ‘slot-extra-options-class’). ‘compute-effective-slot-definition’ calls this method for each option in turn and expects (values <new value of the option> <’bind or ’leave-unbound>). To define a custom inheritence rule, you can specialize on RULE (see already existing specializations for examples).

Package

slot-extra-options

Source

coalesce.lisp (file)

Methods
Method: coalesce-options OPTION-NAME CLASS DSLOTS (RULE (eql bound-only-once))

Ensure that a value is bound only once in the whole inheritence line. Subclasses inherit that value (and cannot override it, getting an error).

Method: coalesce-options OPTION-NAME CLASS DSLOTS (RULE (eql difference))

Set difference of first dslot’s OPTION from the rest of DSLOTS, removing duplicates. Lists only (unbound treated as NIL).

Method: coalesce-options OPTION-NAME CLASS DSLOTS (RULE (eql merge))

Merge option OPTION-NAME of all DSLOTS. Lists only (unbound treated as NIL).

Method: coalesce-options OPTION-NAME CLASS DSLOTS (RULE (eql replace-or-inherit))

Inherit option OPTION-NAME from the first of DSLOTS where it’s bound.

Generic Function: coalescence OBJECT
Generic Function: (setf coalescence) NEW-VALUE OBJECT
Package

slot-extra-options

Methods
Method: coalescence (SLOT-OPTION slot-option)

automatically generated reader method

Source

slot-extra-options.lisp (file)

Method: (setf coalescence) NEW-VALUE (SLOT-OPTION slot-option)

automatically generated writer method

Source

slot-extra-options.lisp (file)

Generic Function: initform OBJECT
Generic Function: (setf initform) NEW-VALUE OBJECT
Package

slot-extra-options

Methods
Method: initform (SLOT-OPTION slot-option)

automatically generated reader method

Source

slot-extra-options.lisp (file)

Method: (setf initform) NEW-VALUE (SLOT-OPTION slot-option)

automatically generated writer method

Source

slot-extra-options.lisp (file)

Generic Function: name OBJECT
Generic Function: (setf name) NEW-VALUE OBJECT
Package

slot-extra-options

Methods
Method: name (SLOT-OPTION slot-option)

automatically generated reader method

Source

slot-extra-options.lisp (file)

Method: (setf name) NEW-VALUE (SLOT-OPTION slot-option)

automatically generated writer method

Source

slot-extra-options.lisp (file)

Generic Function: option-type OBJECT
Generic Function: (setf option-type) NEW-VALUE OBJECT
Package

slot-extra-options

Methods
Method: option-type (SLOT-OPTION slot-option)

automatically generated reader method

Source

slot-extra-options.lisp (file)

Method: (setf option-type) NEW-VALUE (SLOT-OPTION slot-option)

automatically generated writer method

Source

slot-extra-options.lisp (file)

Generic Function: options OBJECT
Generic Function: (setf options) NEW-VALUE OBJECT
Package

slot-extra-options

Methods
Method: options (SLOT-EXTRA-OPTIONS-CLASS slot-extra-options-class)

automatically generated reader method

Source

slot-extra-options.lisp (file)

Method: (setf options) NEW-VALUE (SLOT-EXTRA-OPTIONS-CLASS slot-extra-options-class)

automatically generated writer method

Source

slot-extra-options.lisp (file)


Next: , Previous: , Up: Exported definitions   [Contents][Index]

5.1.4 Conditions

Condition: slot-extra-options-error ()
Package

slot-extra-options

Source

error-conditions.lisp (file)

Direct superclasses

error (condition)

Direct methods

message (method)

Direct slots
Slot: message
Initargs

:message

Initform

(quote nil)

Readers

message (generic function)


Previous: , Up: Exported definitions   [Contents][Index]

5.1.5 Classes

Class: slot-extra-options-class ()

A metaclass which lets you define new slot options/keywords for classes. See ‘def-extra-options-metaclass’ for usage details.

Package

slot-extra-options

Source

slot-extra-options.lisp (file)

Direct superclasses

standard-class (class)

Direct methods
  • compute-effective-slot-definition (method)
  • validate-superclass (method)
  • options (method)
  • options (method)
Direct slots
Slot: options
Allocation

:class

Initargs

:options

Readers

options (generic function)

Writers

(setf options) (generic function)

Class: slot-option ()

Contains information that defines an option.

Package

slot-extra-options

Source

slot-extra-options.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: name
Type

symbol

Initargs

:name

Readers

name (generic function)

Writers

(setf name) (generic function)

Slot: initform
Initargs

:initform

Readers

initform (generic function)

Writers

(setf initform) (generic function)

Slot: option-type
Initargs

:type

Readers

option-type (generic function)

Writers

(setf option-type) (generic function)

Slot: coalescence
Type

symbol

Initargs

:coalescence

Readers

coalescence (generic function)

Writers

(setf coalescence) (generic function)


Previous: , Up: Definitions   [Contents][Index]

5.2 Internal definitions


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.1 Macros

Macro: def-slot-option-changed-p NAME FIND-SLOT-F SPEC
Package

slot-extra-options

Source

utils.lisp (file)

Macro: itr &rest REST

Alias for ‘iterate:iterate’.

Package

slot-extra-options

Source

utils.lisp (file)


Next: , Previous: , Up: Internal definitions   [Contents][Index]

5.2.2 Functions

Function: make-slot-option &rest ARGS
Package

slot-extra-options

Source

slot-extra-options.lisp (file)

Function: make-slot-option-from-definition OPTION-DEFINITION

Make ‘slot-option’ from OPTION-DEFINITION.

Package

slot-extra-options

Source

slot-extra-options.lisp (file)

Function: merge-metaclass-options CLASS NEW-OPTIONS
Package

slot-extra-options

Source

slot-extra-options.lisp (file)

Function: merge-slot-options SLOT-A SLOT-B
Package

slot-extra-options

Source

slot-extra-options.lisp (file)

Function: metaclass-options-list-from-inheritence CLASS NEW-OPTIONS
Package

slot-extra-options

Source

slot-extra-options.lisp (file)

Function: remove-from-slot-defs SLOT-DEFS &rest KEYS

Remove all options specified by KEY from slot deifinitions SLOT-DEFS. See ‘remove-from-slot-def’.

Package

slot-extra-options

Source

utils.lisp (file)

Function: set-slot-option-defaults SLOT-OPTION

Fill in the defaults - setting them in ‘slot-option’ directly will screw up inhertiing them: they need to be unbound for that. Destructive.

Package

slot-extra-options

Source

slot-extra-options.lisp (file)


Previous: , Up: Internal definitions   [Contents][Index]

5.2.3 Generic functions

Generic Function: message CONDITION
Package

slot-extra-options

Methods
Method: message (CONDITION slot-extra-options-error)
Source

error-conditions.lisp (file)


Previous: , Up: Top   [Contents][Index]

Appendix A Indexes


Next: , Previous: , Up: Indexes   [Contents][Index]

A.1 Concepts

Jump to:   F   L   S  
Index Entry  Section

F
File, Lisp, slot-extra-options.asd: The slot-extra-options․asd file
File, Lisp, slot-extra-options/coalesce.lisp: The slot-extra-options/coalesce․lisp file
File, Lisp, slot-extra-options/error-conditions.lisp: The slot-extra-options/error-conditions․lisp file
File, Lisp, slot-extra-options/macro.lisp: The slot-extra-options/macro․lisp file
File, Lisp, slot-extra-options/package.lisp: The slot-extra-options/package․lisp file
File, Lisp, slot-extra-options/slot-extra-options.lisp: The slot-extra-options/slot-extra-options․lisp file
File, Lisp, slot-extra-options/utils.lisp: The slot-extra-options/utils․lisp file

L
Lisp File, slot-extra-options.asd: The slot-extra-options․asd file
Lisp File, slot-extra-options/coalesce.lisp: The slot-extra-options/coalesce․lisp file
Lisp File, slot-extra-options/error-conditions.lisp: The slot-extra-options/error-conditions․lisp file
Lisp File, slot-extra-options/macro.lisp: The slot-extra-options/macro․lisp file
Lisp File, slot-extra-options/package.lisp: The slot-extra-options/package․lisp file
Lisp File, slot-extra-options/slot-extra-options.lisp: The slot-extra-options/slot-extra-options․lisp file
Lisp File, slot-extra-options/utils.lisp: The slot-extra-options/utils․lisp file

S
slot-extra-options.asd: The slot-extra-options․asd file
slot-extra-options/coalesce.lisp: The slot-extra-options/coalesce․lisp file
slot-extra-options/error-conditions.lisp: The slot-extra-options/error-conditions․lisp file
slot-extra-options/macro.lisp: The slot-extra-options/macro․lisp file
slot-extra-options/package.lisp: The slot-extra-options/package․lisp file
slot-extra-options/slot-extra-options.lisp: The slot-extra-options/slot-extra-options․lisp file
slot-extra-options/utils.lisp: The slot-extra-options/utils․lisp file

Jump to:   F   L   S  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.2 Functions

Jump to:   (  
A   C   D   E   F   G   I   M   N   O   P   R   S  
Index Entry  Section

(
(setf coalescence): Exported generic functions
(setf coalescence): Exported generic functions
(setf initform): Exported generic functions
(setf initform): Exported generic functions
(setf name): Exported generic functions
(setf name): Exported generic functions
(setf option-type): Exported generic functions
(setf option-type): Exported generic functions
(setf options): Exported generic functions
(setf options): Exported generic functions

A
all-direct-slot-definitions: Exported functions
all-slot-readers: Exported functions
all-slot-writers: Exported functions

C
coalesce-options: Exported generic functions
coalesce-options: Exported generic functions
coalesce-options: Exported generic functions
coalesce-options: Exported generic functions
coalesce-options: Exported generic functions
coalescence: Exported generic functions
coalescence: Exported generic functions

D
def-extra-options-metaclass: Exported macros
def-slot-option-changed-p: Internal macros

E
ensure-finalized-precedence: Exported functions
ensure-option-in-slot-def: Exported functions

F
find-dslot: Exported functions
find-slot: Exported functions
Function, all-direct-slot-definitions: Exported functions
Function, all-slot-readers: Exported functions
Function, all-slot-writers: Exported functions
Function, ensure-finalized-precedence: Exported functions
Function, ensure-option-in-slot-def: Exported functions
Function, find-dslot: Exported functions
Function, find-slot: Exported functions
Function, make-slot-option: Internal functions
Function, make-slot-option-from-definition: Internal functions
Function, merge-metaclass-options: Internal functions
Function, merge-slot-options: Internal functions
Function, metaclass-options-list-from-inheritence: Internal functions
Function, pick-in-slot-def: Exported functions
Function, pick-in-slot-defs: Exported functions
Function, remove-from-slot-def: Exported functions
Function, remove-from-slot-defs: Internal functions
Function, set-slot-option-defaults: Internal functions
Function, slot-exists-and-bound-p: Exported functions
Function, slot-option-direct-changed-p: Exported functions
Function, slot-option-effective-changed-p: Exported functions

G
Generic Function, (setf coalescence): Exported generic functions
Generic Function, (setf initform): Exported generic functions
Generic Function, (setf name): Exported generic functions
Generic Function, (setf option-type): Exported generic functions
Generic Function, (setf options): Exported generic functions
Generic Function, coalesce-options: Exported generic functions
Generic Function, coalescence: Exported generic functions
Generic Function, initform: Exported generic functions
Generic Function, message: Internal generic functions
Generic Function, name: Exported generic functions
Generic Function, option-type: Exported generic functions
Generic Function, options: Exported generic functions

I
initform: Exported generic functions
initform: Exported generic functions
itr: Internal macros

M
Macro, def-extra-options-metaclass: Exported macros
Macro, def-slot-option-changed-p: Internal macros
Macro, itr: Internal macros
make-slot-option: Internal functions
make-slot-option-from-definition: Internal functions
merge-metaclass-options: Internal functions
merge-slot-options: Internal functions
message: Internal generic functions
message: Internal generic functions
metaclass-options-list-from-inheritence: Internal functions
Method, (setf coalescence): Exported generic functions
Method, (setf initform): Exported generic functions
Method, (setf name): Exported generic functions
Method, (setf option-type): Exported generic functions
Method, (setf options): Exported generic functions
Method, coalesce-options: Exported generic functions
Method, coalesce-options: Exported generic functions
Method, coalesce-options: Exported generic functions
Method, coalesce-options: Exported generic functions
Method, coalescence: Exported generic functions
Method, initform: Exported generic functions
Method, message: Internal generic functions
Method, name: Exported generic functions
Method, option-type: Exported generic functions
Method, options: Exported generic functions

N
name: Exported generic functions
name: Exported generic functions

O
option-type: Exported generic functions
option-type: Exported generic functions
options: Exported generic functions
options: Exported generic functions

P
pick-in-slot-def: Exported functions
pick-in-slot-defs: Exported functions

R
remove-from-slot-def: Exported functions
remove-from-slot-defs: Internal functions

S
set-slot-option-defaults: Internal functions
slot-exists-and-bound-p: Exported functions
slot-option-direct-changed-p: Exported functions
slot-option-effective-changed-p: Exported functions

Jump to:   (  
A   C   D   E   F   G   I   M   N   O   P   R   S  

Next: , Previous: , Up: Indexes   [Contents][Index]

A.3 Variables

Jump to:   C   I   M   N   O   S  
Index Entry  Section

C
coalescence: Exported classes

I
initform: Exported classes

M
message: Exported conditions

N
name: Exported classes

O
option-type: Exported classes
options: Exported classes

S
Slot, coalescence: Exported classes
Slot, initform: Exported classes
Slot, message: Exported conditions
Slot, name: Exported classes
Slot, option-type: Exported classes
Slot, options: Exported classes

Jump to:   C   I   M   N   O   S  

Previous: , Up: Indexes   [Contents][Index]

A.4 Data types

Jump to:   C   P   S  
Index Entry  Section

C
Class, slot-extra-options-class: Exported classes
Class, slot-option: Exported classes
Condition, slot-extra-options-error: Exported conditions

P
Package, slot-extra-options: The slot-extra-options package

S
slot-extra-options: The slot-extra-options system
slot-extra-options: The slot-extra-options package
slot-extra-options-class: Exported classes
slot-extra-options-error: Exported conditions
slot-option: Exported classes
System, slot-extra-options: The slot-extra-options system

Jump to:   C   P   S