The polymorphic-functions-lite Reference Manual

This is the polymorphic-functions-lite Reference Manual, version 0.5.2, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 07:19:00 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 polymorphic-functions-lite

Variant of polymorphic-functions with no support for static dispatch. This lets it have minimal dependencies.

Author

<>

License

MIT

Version

0.5.2

Dependencies
  • alexandria (system).
  • fiveam (system).
  • introspect-environment (system).
  • optima (system).
Source

polymorphic-functions-lite.asd.

Child Components

3 Modules

Modules are listed depth-first from the system components tree.


3.1 polymorphic-functions-lite/lambda-lists

Dependencies
Source

polymorphic-functions-lite.asd.

Parent Component

polymorphic-functions-lite (system).

Child Components

4 Files

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


4.1 Lisp


4.1.1 polymorphic-functions-lite/polymorphic-functions-lite.asd

Source

polymorphic-functions-lite.asd.

Parent Component

polymorphic-functions-lite (system).

ASDF Systems

polymorphic-functions-lite.


4.1.3 polymorphic-functions-lite/utils.lisp

Dependency

package.lisp (file).

Source

polymorphic-functions-lite.asd.

Parent Component

polymorphic-functions-lite (system).

Internals

4.1.4 polymorphic-functions-lite/types.lisp

Dependency

utils.lisp (file).

Source

polymorphic-functions-lite.asd.

Parent Component

polymorphic-functions-lite (system).

Public Interface
Internals

4.1.5 polymorphic-functions-lite/type-tools.lisp

Dependency

utils.lisp (file).

Source

polymorphic-functions-lite.asd.

Parent Component

polymorphic-functions-lite (system).

Internals

4.1.6 polymorphic-functions-lite/ensure-type-form.lisp

Dependency

utils.lisp (file).

Source

polymorphic-functions-lite.asd.

Parent Component

polymorphic-functions-lite (system).

Internals

4.1.9 polymorphic-functions-lite/lambda-lists/base.lisp

Dependencies
Source

polymorphic-functions-lite.asd.

Parent Component

lambda-lists (module).

Internals

4.1.14 polymorphic-functions-lite/polymorphic-function.lisp

Dependency

lambda-lists (module).

Source

polymorphic-functions-lite.asd.

Parent Component

polymorphic-functions-lite (system).

Public Interface
Internals

4.1.15 polymorphic-functions-lite/conditions.lisp

Dependency

package.lisp (file).

Source

polymorphic-functions-lite.asd.

Parent Component

polymorphic-functions-lite (system).

Public Interface
Internals

4.1.16 polymorphic-functions-lite/dispatch.lisp

Dependencies
Source

polymorphic-functions-lite.asd.

Parent Component

polymorphic-functions-lite (system).

Public Interface
Internals

4.1.17 polymorphic-functions-lite/misc-tests.lisp

Dependency

dispatch.lisp (file).

Source

polymorphic-functions-lite.asd.

Parent Component

polymorphic-functions-lite (system).

Internals

ignoring-error-output (macro).


5 Packages

Packages are listed by definition order.


5.1 polymorphic-functions.nonuser

Package for internal use by POLYMORPHIC-FUNCTIONS not intended for direct use by users.

Source

package.lisp.


5.2 polymorphic-functions

Source

package.lisp.

Use List
  • alexandria.
  • common-lisp.
Public Interface
Internals

6 Definitions

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


6.1 Public Interface


6.1.1 Macros

Macro: define-polymorphic-function (name untyped-lambda-list &key overwrite documentation default dispatch-declaration)

Define a function named NAME that can then be used for DEFPOLYMORPH
for specializing on various argument types.

If OVERWRITE is T, all the existing polymorphs associated with NAME are deleted, and new polymorphs will be ready to be installed.
If OVERWRITE is NIL, a continuable error is raised if the LAMBDA-LIST has changed.

DEFAULT should be a FUNCTION that can be called with two arguments at run-time and compile-time in case no polymorph is applicable.
- the first of these arguments is the NAME, while
- the second argument is the argument list with which the polymorphic-function was called or compiled.
At compile-time *COMPILER-MACRO-EXPANDING-P* is bound to non-NIL.

Package

polymorphic-functions.

Source

dispatch.lisp.

Macro: defpolymorph (name typed-lambda-list return-type &body body)

Expects OPTIONAL or KEY args to be in the form

((A TYPE) DEFAULT-VALUE) or ((A TYPE) DEFAULT-VALUE AP).

- NAME could also be
(NAME
&KEY
STATIC-DISPATCH-NAME
INVALIDATE-PF)

- STATIC-DISPATCH-NAME could be useful for tracing or profiling

- If INVALIDATE-PF is non-NIL then the associated polymorphic-function is forced to recompute its dispatching after this polymorph is defined.

Package

polymorphic-functions.

Source

dispatch.lisp.


6.1.2 Ordinary functions

Function: find-polymorph (name type-list)

Returns two values:
If a POLYMORPHIC-FUNCTION by NAME does not exist, returns NIL NIL.
If it exists, the second value is T and the first value is a possibly empty list of POLYMORPHs associated with NAME.

Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Function: no-applicable-polymorph (name env args &optional arg-types)
Package

polymorphic-functions.

Source

conditions.lisp.

Function: polymorph-apropos-list-type (type &key name package)
Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Function: polymorphic-function-type-lists (polymorphic-function)
Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Function: undefine-polymorphic-function (name)

Remove the POLYMORPH(-WRAPPER) defined by DEFINE-POLYMORPH

Package

polymorphic-functions.

Source

dispatch.lisp.

Function: undefpolymorph (name type-list)

Remove the POLYMORPH associated with NAME with TYPE-LIST

Package

polymorphic-functions.

Source

dispatch.lisp.


6.1.3 Standalone methods

Method: print-object ((o polymorph) stream)
Source

types.lisp.

Method: print-object ((o polymorphic-function) stream)
Source

types.lisp.

Method: print-object ((o polymorph-parameters) s)
Source

types.lisp.


6.1.4 Conditions

Condition: no-applicable-polymorph
Package

polymorphic-functions.

Source

conditions.lisp.

Direct superclasses

condition.

Direct subclasses

no-applicable-polymorph/error.

Direct methods
Direct slots
Slot: name
Initform

(quote (error "name not specified"))

Initargs

:name

Readers

name.

Writers

This slot is read-only.

Slot: args
Initform

(quote (error "args not specified"))

Initargs

:args

Readers

args.

Writers

This slot is read-only.

Slot: arg-types
Initargs

:arg-types

Readers

arg-types.

Writers

This slot is read-only.

Slot: effective-type-lists
Initform

(quote (error "effective-type-lists not specified"))

Initargs

:effective-type-lists

Readers

effective-type-lists.

Writers

This slot is read-only.


6.1.5 Structures

Structure: polymorph

- If RUNTIME-APPLICABLE-P-FORM returns true when evaluated inside the lexical environment of the polymorphic-function, then the dispatch is done on LAMBDA. The prioritization
is done by ADD-OR-UPDATE-POLYMORPH so that a more specialized polymorph is checked
for compatibility before a less specialized polymorph.
- The PF-COMPILER-MACRO calls the COMPILER-APPLICABLE-P-LAMBDA with the FORM-TYPEs
of the arguments derived at compile time. The compiler macro dispatches on the polymorph at compile time if the COMPILER-APPLICABLE-P-LAMBDA returns true.

- If this POLYMORPH is used for INLINE-ing or STATIC-DISPATCH and if MORE-OPTIMAL-TYPE-LIST or SUBOPTIMAL-NOTE is non-NIL, then emits a OPTIMIZATION-FAILURE-NOTE

Package

polymorphic-functions.

Source

types.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: documentation
Package

common-lisp.

Type

(or null string)

Readers

polymorph-documentation.

Writers

(setf polymorph-documentation).

Slot: name
Initform

(error "name must be supplied!")

Readers

polymorph-name.

Writers

(setf polymorph-name).

Slot: source
Readers

polymorph-source.

Writers

(setf polymorph-source).

Slot: return-type
Readers

polymorph-return-type.

Writers

(setf polymorph-return-type).

Slot: type-list
Readers

polymorph-type-list.

Writers

(setf polymorph-type-list).

Slot: lambda-list-type
Readers

polymorph-lambda-list-type.

Writers

(setf polymorph-lambda-list-type).

Slot: typed-lambda-list
Readers

polymorph-typed-lambda-list.

Writers

(setf polymorph-typed-lambda-list).

Slot: effective-type-list
Readers

polymorph-effective-type-list.

Writers

(setf polymorph-effective-type-list).

Slot: more-optimal-type-list
Readers

polymorph-more-optimal-type-list.

Writers

(setf polymorph-more-optimal-type-list).

Slot: suboptimal-note
Readers

polymorph-suboptimal-note.

Writers

(setf polymorph-suboptimal-note).

Slot: compiler-applicable-p-lambda
Readers

polymorph-compiler-applicable-p-lambda.

Writers

(setf polymorph-compiler-applicable-p-lambda).

Slot: runtime-applicable-p-form
Readers

polymorph-runtime-applicable-p-form.

Writers

(setf polymorph-runtime-applicable-p-form).

Slot: inline-p
Readers

polymorph-inline-p.

Writers

(setf polymorph-inline-p).

Slot: inline-lambda-body
Readers

polymorph-inline-lambda-body.

Writers

(setf polymorph-inline-lambda-body).

Slot: static-dispatch-name
Readers

polymorph-static-dispatch-name.

Writers

(setf polymorph-static-dispatch-name).

Slot: compiler-macro-lambda
Readers

polymorph-compiler-macro-lambda.

Writers

(setf polymorph-compiler-macro-lambda).

Slot: compiler-macro-source
Readers

polymorph-compiler-macro-source.

Writers

(setf polymorph-compiler-macro-source).

Slot: parameters
Type

polymorphic-functions::polymorph-parameters

Initform

(error "polymorph-parameters must be supplied")

Readers

polymorph-parameters.

Writers

(setf polymorph-parameters).


6.1.6 Classes

Class: polymorphic-function
Package

polymorphic-functions.

Source

types.lisp.

Direct superclasses

funcallable-standard-object.

Direct methods
Direct slots
Slot: name
Initform

(error "name must be supplied.")

Initargs

:name

Readers

polymorphic-function-name.

Writers

This slot is read-only.

Slot: source
Initargs

:source

Readers

polymorphic-function-source.

Writers

This slot is read-only.

Slot: lambda-list
Type

list

Initform

(error "lambda-list must be supplied.")

Initargs

:lambda-list

Readers

polymorphic-function-lambda-list.

Writers

This slot is read-only.

Slot: effective-lambda-list
Type

list

Initform

(error "effective-lambda-list must be supplied.")

Initargs

:effective-lambda-list

Readers

polymorphic-function-effective-lambda-list.

Writers

This slot is read-only.

Slot: lambda-list-type
Type

polymorphic-functions::lambda-list-type

Initform

(error "lambda-list-type must be supplied.")

Initargs

:lambda-list-type

Readers

polymorphic-function-lambda-list-type.

Writers

This slot is read-only.

Slot: dispatch-declaration
Initform

polymorphic-functions::+optimize-speed-or-compilation-speed+

Initargs

:dispatch-declaration

Readers

polymorphic-function-dispatch-declaration.

Writers

(setf polymorphic-function-dispatch-declaration).

Slot: default
Type

function

Initform

(error ":default must be supplied")

Initargs

:default

Readers

polymorphic-function-default.

Writers

This slot is read-only.

Slot: polymorphs
Readers

polymorphic-function-polymorphs.

Writers

(setf polymorphic-function-polymorphs).

Slot: documentation
Package

common-lisp.

Type

(or string null)

Initargs

:documentation

Readers

polymorphic-function-documentation.

Writers

(setf polymorphic-function-documentation).

Slot: invalidated-p
Readers

polymorphic-function-invalidated-p.

Writers

(setf polymorphic-function-invalidated-p).

Slot: %lock
Initform

(sb-thread:make-mutex :name "gf lock")

Readers

gf-lock.

Writers

This slot is read-only.


6.2 Internals


6.2.1 Constants

Constant: +compute-effective-lambda-list-doc+
Package

polymorphic-functions.

Source

doc.lisp.

Constant: +compute-polymorphic-function-lambda-body-doc+
Package

polymorphic-functions.

Source

doc.lisp.

Constant: +effective-lambda-list-doc-helper+
Package

polymorphic-functions.

Source

doc.lisp.

Constant: +lambda-declarations-doc+
Package

polymorphic-functions.

Source

doc.lisp.

Constant: +lambda-list-type-doc+
Package

polymorphic-functions.

Source

doc.lisp.

Constant: +lambda-list-types+
Package

polymorphic-functions.

Source

types.lisp.

Constant: +optimize-speed-or-compilation-speed+
Package

polymorphic-functions.

Source

types.lisp.

Constant: +sbcl-transform-arg-lvars-from-lambda-list-form+
Package

polymorphic-functions.

Source

doc.lisp.

Constant: +type-list-intersection-null-p+
Package

polymorphic-functions.

Source

doc.lisp.

Constant: +type-list-more-specific-p+
Package

polymorphic-functions.

Source

doc.lisp.


6.2.2 Special variables

Special Variable: *compiler-macro-expanding-p*

Bound to T inside the DEFINE-COMPILER-MACRO defined in DEFINE-POLYMORPH

Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Special Variable: *disable-static-dispatch*

If value at the time of compilation of the call-site is non-NIL,
the polymorphic-function being called at the call-site is dispatched dynamically.

Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Special Variable: *environment*

Bound inside the DEFINE-COMPILER-MACRO defined in DEFINE-POLYMORPH for use by functions like TYPE-LIST-APPLICABLE-P

Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Special Variable: *extended-subtypep-functions*

A list of function-designators that will be called by EXTENDED-SUBTYPEP.

Package

polymorphic-functions.

Source

type-tools.lisp.

Special Variable: *lambda-list*

LAMBDA-LIST of the typed function being compiled. Bound inside the functions defined by POLYMORPHS::DEFINE-LAMBDA-LIST-HELPER

Package

polymorphic-functions.

Source

base.lisp.

Special Variable: *lambda-list-typed-p*

Is T if the *LAMBDA-LIST* being processed is to be treated as if it had type specifiers. Bound inside the functions defined by POLYMORPHS::DEFINE-LAMBDA-LIST-HELPER

Package

polymorphic-functions.

Source

base.lisp.

Special Variable: *name*

NAME of the typed function being compiled. Bound inside DEFINE-POLYMORPH

Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Special Variable: *potential-type*

POTENTIAL-TYPE of the LAMBDA-LIST of the typed function being compiled. Bound inside the functions defined by POLYMORPHS::DEFINE-LAMBDA-LIST-HELPER

Package

polymorphic-functions.

Source

base.lisp.

Special Variable: *subtypep-alist*

An ALIST mapping a (CONS TYPE1 TYPE2) to a boolean indicating whether TYPE1 is a subtype of TYPE2.

Package

polymorphic-functions.

Source

type-tools.lisp.


6.2.3 Symbol macros

Symbol Macro: optim-debug
Package

polymorphic-functions.

Source

utils.lisp.

Symbol Macro: optim-safety
Package

polymorphic-functions.

Source

utils.lisp.

Symbol Macro: optim-slight-speed
Package

polymorphic-functions.

Source

utils.lisp.

Symbol Macro: optim-speed
Package

polymorphic-functions.

Source

utils.lisp.


6.2.4 Macros

Macro: catch-condition (form)
Package

polymorphic-functions.

Source

utils.lisp.

Macro: define-lambda-list-helper ((outer-name outer-documentation) (inner-name inner-documentation) &body action-form)

ACTION-FORM should be defined in terms of *POTENTIAL-TYPE* and *LAMBDA-LIST* variables.

Package

polymorphic-functions.

Source

base.lisp.

Macro: ignoring-error-output (&body body)
Package

polymorphic-functions.

Source

misc-tests.lisp.

Macro: is-error (form)
Package

polymorphic-functions.

Source

utils.lisp.

Macro: let+ (bindings &body body)
Package

polymorphic-functions.

Source

utils.lisp.

Macro: list-named-lambda (name package lambda-list &body body)
Package

polymorphic-functions.

Source

utils.lisp.

Macro: named-lambda (name lambda-list &body body)
Package

polymorphic-functions.

Source

utils.lisp.

Macro: with-eval-always (&body body)
Package

polymorphic-functions.

Source

utils.lisp.

Macro: with-return-type (return-type &body body)
Package

polymorphic-functions.

Source

ensure-type-form.lisp.


6.2.5 Ordinary functions

Function: accepts-argument-of-type-p (polymorph-parameters type)
Package

polymorphic-functions.

Source

parameters.lisp.

Function: add-or-update-polymorph (polymorphic-function polymorph)

Returns T if the POLYMOMRPH with identical effective-type-list existed, otherwise returns NIL.

Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Function: blockify-name (name)
Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Function: compiler-applicable-p-lambda-body (polymorph-parameters)
Package

polymorphic-functions.

Source

parameters.lisp.

Function: copy-polymorph (instance)
Package

polymorphic-functions.

Source

types.lisp.

Function: copy-polymorph-parameter (instance)
Package

polymorphic-functions.

Source

types.lisp.

Function: copy-polymorph-parameters (instance)
Package

polymorphic-functions.

Source

types.lisp.

Function: definitive-intersection-null-p (type1 type2 &optional env)
Package

polymorphic-functions.

Source

base.lisp.

Function: definitive-subtypep (type1 type2 &optional environment)

Like POLYMORPHIC-FUNCTIONS.EXTENDED-TYPES:SUBTYPEP but uses *SUBTYPEP-ALIST* and *EXTENDED-SUBTYPEP-FUNCTIONS* and when the second value is NIL raises a restartable error to allow the user to specify whether the TYPE1 is
a definite subtype of TYPE2.

While using non-interactively, recommended way is to modify *SUBTYPEP-ALIST* and *EXTENDED-SUBTYPEP-FUNCTIONS* rather than invoking-restarts.

The function-order for determining the SUBTYPEP functions is undefined.

Package

polymorphic-functions.

Source

type-tools.lisp.

Function: enhance-run-time-deparameterizer-lambda-body (lambda-body local-name)
Package

polymorphic-functions.

Source

parameters.lisp.

Function: enhanced-lambda-declarations (polymorph-parameters arg-types)
Package

polymorphic-functions.

Source

parameters.lisp.

Function: ensure-type-form (type block-name body &key variable declare)

Returns two values: a form that has ASSERTs with SIMPLE-TYPE-ERROR to check the type as well as the type enhanced using TYPE.

Package

polymorphic-functions.

Source

ensure-type-form.lisp.

Function: ensure-unambiguous-call (name type-list effective-type-list)
Package

polymorphic-functions.

Source

dispatch.lisp.

Function: expand-defpolymorph-lite (name typed-lambda-list return-type body env)
Package

polymorphic-functions.

Source

dispatch.lisp.

Function: extended-subtypep (type1 type2 &optional environment)
Package

polymorphic-functions.

Source

type-tools.lisp.

Function: extract-declarations (body &key documentation)

Returns two values: DECLARATIONS and remaining BODY
If DOCUMENTATION is non-NIL, returns three values: DECLARATIONS and remaining BODY and DOC-STRING

Package

polymorphic-functions.

Source

dispatch.lisp.

Function: find-class (name &optional errorp environment)
Package

polymorphic-functions.

Source

utils.lisp.

Function: ftype-for-static-dispatch (static-dispatch-name effective-type-list return-type env)
Package

polymorphic-functions.

Source

base.lisp.

Function: ftype-proclaimation (static-dispatch-name effective-type-list return-type env)
Package

polymorphic-functions.

Source

base.lisp.

Function: intersection-null-p (env &rest types)
Package

polymorphic-functions.

Source

base.lisp.

Function: invalidate-polymorphic-function-lambda (polymorphic-function)
Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Function: lambda-declarations (polymorph-parameters)

Returns the declaration for the actual polymorph parameters

Package

polymorphic-functions.

Source

parameters.lisp.

Function: lambda-list-type (lambda-list &key typed)

Returns the type of LAMBDA-LIST from amongst +LAMBDA-LIST-TYPES+. Raises an ERROR otherwise.

Package

polymorphic-functions.

Source

base.lisp.

Function: lambda-list-type-p (object)

Checks whhether the OBJECT is in +LAMBDA-LIST-TYPES+

Package

polymorphic-functions.

Source

types.lisp.

Function: make-or-retrieve-static-dispatch-name (name type-list)
Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Function: make-polymorph (&key documentation name source return-type type-list lambda-list-type typed-lambda-list effective-type-list more-optimal-type-list suboptimal-note compiler-applicable-p-lambda runtime-applicable-p-form inline-p inline-lambda-body static-dispatch-name compiler-macro-lambda compiler-macro-source parameters)
Package

polymorphic-functions.

Source

types.lisp.

Function: make-polymorph-parameter (&key local-name form-in-pf value-type default-value-form supplied-p-name value-effective-type)
Package

polymorphic-functions.

Source

types.lisp.

Function: make-polymorph-parameters (&key required optional rest keyword min-args max-args validator-form)
Package

polymorphic-functions.

Source

types.lisp.

Function: make-polymorph-parameters-from-lambda-lists (polymorphic-function-lambda-list polymorph-lambda-list)
Package

polymorphic-functions.

Source

parameters.lisp.

Function: map-polymorph-parameters (polymorph-parameters &key required optional keyword rest default)
Package

polymorphic-functions.

Source

parameters.lisp.

Function: may-be-pf-lambda-list (name untyped-lambda-list)
Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Function: normalize-typed-lambda-list (typed-lambda-list)
Package

polymorphic-functions.

Source

parameters.lisp.

Function: normalize-untyped-lambda-list (untyped-lambda-list)
Package

polymorphic-functions.

Source

parameters.lisp.

Function: note-no-inline (form datum &rest arguments)
Package

polymorphic-functions.

Source

conditions.lisp.

Function: note-null-env (form datum &rest arguments)
Package

polymorphic-functions.

Source

conditions.lisp.

Reader: polymorph-compiler-applicable-p-lambda (instance)
Writer: (setf polymorph-compiler-applicable-p-lambda) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

compiler-applicable-p-lambda.

Reader: polymorph-compiler-macro-lambda (instance)
Writer: (setf polymorph-compiler-macro-lambda) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

compiler-macro-lambda.

Reader: polymorph-compiler-macro-source (instance)
Writer: (setf polymorph-compiler-macro-source) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

compiler-macro-source.

Reader: polymorph-documentation (instance)
Writer: (setf polymorph-documentation) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

documentation.

Function: polymorph-effective-lambda-list (polymorph-parameters)

Returns 3 values:
- The first value is the LAMBDA-LIST suitable for constructing polymorph’s lambda - The second value is the TYPE-LIST corresponding to the polymorph
- The third value is the EFFECTIVE-TYPE-LIST corresponding to the polymorph

Package

polymorphic-functions.

Source

parameters.lisp.

Reader: polymorph-effective-type-list (instance)
Writer: (setf polymorph-effective-type-list) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

effective-type-list.

Reader: polymorph-inline-lambda-body (instance)
Writer: (setf polymorph-inline-lambda-body) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

inline-lambda-body.

Reader: polymorph-inline-p (instance)
Writer: (setf polymorph-inline-p) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

inline-p.

Reader: polymorph-lambda-list-type (instance)
Writer: (setf polymorph-lambda-list-type) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

lambda-list-type.

Reader: polymorph-more-optimal-type-list (instance)
Writer: (setf polymorph-more-optimal-type-list) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

more-optimal-type-list.

Reader: polymorph-name (instance)
Writer: (setf polymorph-name) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

name.

Function: polymorph-p (object)
Package

polymorphic-functions.

Source

types.lisp.

Function: polymorph-parameter-p (object)
Package

polymorphic-functions.

Source

types.lisp.

Reader: polymorph-parameters (instance)
Writer: (setf polymorph-parameters) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

parameters.

Reader: polymorph-parameters-keyword (instance)
Writer: (setf polymorph-parameters-keyword) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

keyword.

Reader: polymorph-parameters-max-args (instance)
Writer: (setf polymorph-parameters-max-args) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

max-args.

Reader: polymorph-parameters-min-args (instance)
Writer: (setf polymorph-parameters-min-args) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

min-args.

Reader: polymorph-parameters-optional (instance)
Writer: (setf polymorph-parameters-optional) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

optional.

Function: polymorph-parameters-p (object)
Package

polymorphic-functions.

Source

types.lisp.

Reader: polymorph-parameters-required (instance)
Writer: (setf polymorph-parameters-required) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

required.

Reader: polymorph-parameters-rest (instance)
Writer: (setf polymorph-parameters-rest) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

rest.

Reader: polymorph-parameters-validator-form (instance)
Writer: (setf polymorph-parameters-validator-form) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

validator-form.

Reader: polymorph-return-type (instance)
Writer: (setf polymorph-return-type) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

return-type.

Reader: polymorph-runtime-applicable-p-form (instance)
Writer: (setf polymorph-runtime-applicable-p-form) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

runtime-applicable-p-form.

Reader: polymorph-source (instance)
Writer: (setf polymorph-source) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

source.

Reader: polymorph-static-dispatch-name (instance)
Writer: (setf polymorph-static-dispatch-name) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

static-dispatch-name.

Reader: polymorph-suboptimal-note (instance)
Writer: (setf polymorph-suboptimal-note) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

suboptimal-note.

Reader: polymorph-type-list (instance)
Writer: (setf polymorph-type-list) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

type-list.

Reader: polymorph-typed-lambda-list (instance)
Writer: (setf polymorph-typed-lambda-list) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

typed-lambda-list.

Function: polymorphic-function-effective-type-lists (polymorphic-function)
Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Function: polymorphic-function-make-effective-lambda-list (untyped-lambda-list)
Package

polymorphic-functions.

Source

parameters.lisp.

Function: potential-type-of-lambda-list (lambda-list)
Package

polymorphic-functions.

Source

base.lisp.

Reader: pp-default-value-form (instance)
Writer: (setf pp-default-value-form) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

default-value-form.

Reader: pp-form-in-pf (instance)
Writer: (setf pp-form-in-pf) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

form-in-pf.

Reader: pp-local-name (instance)
Writer: (setf pp-local-name) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

local-name.

Reader: pp-supplied-p-name (instance)
Writer: (setf pp-supplied-p-name) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

supplied-p-name.

Reader: pp-value-effective-type (instance)
Writer: (setf pp-value-effective-type) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

value-effective-type.

Reader: pp-value-type (instance)
Writer: (setf pp-value-type) (instance)
Package

polymorphic-functions.

Source

types.lisp.

Target Slot

value-type.

Function: recursive-function-p (name body)
Package

polymorphic-functions.

Source

dispatch.lisp.

Function: register-polymorph (name inline-p documentation typed-lambda-list type-list effective-type-list more-optimal-type-list suboptimal-note return-type inline-lambda-body static-dispatch-name lambda-list-type runtime-applicable-p-form compiler-applicable-p-lambda &optional source-location)
Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Function: register-polymorphic-function (name untyped-lambda-list documentation default &key overwrite source declaration)
Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Function: remove-polymorph (name type-list)
Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Function: run-time-applicable-p-form (polymorph-parameters)
Package

polymorphic-functions.

Source

parameters.lisp.

Function: sbcl-transform-arg-lvars-from-lambda-list-form (lambda-list &key typed)

Returns a FORM that can process the parameters of SB-C:DEFTRANSFORM to form an argument lvar alist list suitable for further processing.

Package

polymorphic-functions.

Source

base.lisp.

Function: sbcl-version-spec-integer (&optional version)
Package

polymorphic-functions.

Source

types.lisp.

Function: sbcl-version-spec-list (&optional version)
Package

polymorphic-functions.

Source

types.lisp.

Function: sort-typed-lambda-list (typed-lambda-list)

Sorts keyword arguments (if any) according to STRING<

Package

polymorphic-functions.

Source

parameters.lisp.

Function: sort-untyped-lambda-list (untyped-lambda-list)

Sorts keyword arguments (if any) according to STRING<

Package

polymorphic-functions.

Source

parameters.lisp.

Function: subtypep-using-subtypep-alist (type1 type2 &optional environment)
Package

polymorphic-functions.

Source

type-tools.lisp.

Function: translate-body (body translation-alist)
Package

polymorphic-functions.

Source

type-tools.lisp.

Function: traverse-tree (tree &optional function)

Traverses TREE and calls function on each subtree and node of TREE. If FUNCTION returns a list, then traversing the list can be avoided if the second return value is non-NIL. If FUNCTION returns a list, traverses the list only if the second return value is NIL.

Package

polymorphic-functions.

Source

utils.lisp.

Function: type-list-compatible-p (lambda-list-type type-list effective-untyped-lambda-list)

Returns T if the given TYPE-LIST is compatible with the given UNTYPED-LAMBDA-LIST.

Package

polymorphic-functions.

Source

base.lisp.

Function: type-list-intersection-null-p (type-list-1 type-list-2)

Returns T if there exist argument lists that are compatible with both TYPE-LIST-1 and TYPE-LIST-2

Package

polymorphic-functions.

Source

base.lisp.

Function: type-list-more-specific-p (type-list-1 type-list-2)

Returns T if TYPE-LIST-1 is more specialized than TYPE-LIST-2.
If TYPE-LIST-1 is more specialized than TYPE-LIST-2, then that means
that *if* both the type lists were applicable, then the polymorph
with TYPE-LIST-1 list will be chosen over the polymorph with TYPE-LIST-2. More specialized does not mean all the types in TYPE-LIST-1
are SUBTYPEP of the corresponding types in TYPE-LIST-2.

For instance, (STRING ARRAY) is more specialized than (ARRAY STRING).

See the tests under the suite POLYMORPHIC-FUNCTIONS::TYPE-LIST-MORE-SPECIFIC-P for more examples.

Package

polymorphic-functions.

Source

base.lisp.

Function: type-list-order-keywords (type-list)
Package

polymorphic-functions.

Source

types.lisp.

Function: type-list-p (list)
Package

polymorphic-functions.

Source

types.lisp.

Function: type-pair-= (type-pair-1 type-pair-2 &optional env)

Each pair is a CONS of two types.

Package

polymorphic-functions.

Source

type-tools.lisp.

Function: type-specifier-p (type-specifier)

Returns true if TYPE-SPECIFIER is a valid type specfiier.

Package

polymorphic-functions.

Source

utils.lisp.

Function: typed-lambda-list-p (lambda-list)
Package

polymorphic-functions.

Source

types.lisp.

Function: untyped-lambda-list (normalized-typed-lambda-list)
Package

polymorphic-functions.

Source

parameters.lisp.

Function: untyped-lambda-list-p (lambda-list)
Package

polymorphic-functions.

Source

types.lisp.

Function: update-polymorphic-function-documentation (name)
Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Function: update-polymorphic-function-lambda (polymorphic-function &optional invalidate)
Package

polymorphic-functions.

Source

polymorphic-function.lisp.

Function: valid-parameter-name-p (name)
Package

polymorphic-functions.

Source

base.lisp.


6.2.6 Generic functions

Generic Function: %lambda-list-type (potential-lambda-list-type lambda-list)

Checks whether LAMBDA-LIST is of type POTENTIAL-LAMBDA-LIST-TYPE

Package

polymorphic-functions.

Source

base.lisp.

Methods
Method: %lambda-list-type ((type (eql rest)) (lambda-list list))
Source

rest.lisp.

Method: %lambda-list-type ((type (eql polymorphic-functions::required-key)) (lambda-list list))
Source

required-key.lisp.

Method: %lambda-list-type ((type (eql polymorphic-functions::required-optional)) (lambda-list list))
Source

required-optional.lisp.

Method: %lambda-list-type ((type (eql polymorphic-functions::required)) (lambda-list list))
Source

required.lisp.

Method: %lambda-list-type (type lambda-list)
Generic Function: %sbcl-transform-arg-lvars-from-lambda-list-form (potential-lambda-list-type lambda-list)

Returns a FORM that can process the parameters of SB-C:DEFTRANSFORM to form an argument lvar alist list suitable for further processing.

Package

polymorphic-functions.

Source

base.lisp.

Methods
Method: %sbcl-transform-arg-lvars-from-lambda-list-form ((type (eql rest)) (untyped-lambda-list list))
Source

rest.lisp.

Method: %sbcl-transform-arg-lvars-from-lambda-list-form ((type (eql polymorphic-functions::required-key)) (untyped-lambda-list list))
Source

required-key.lisp.

Method: %sbcl-transform-arg-lvars-from-lambda-list-form ((type (eql polymorphic-functions::required-optional)) (untyped-lambda-list list))
Source

required-optional.lisp.

Method: %sbcl-transform-arg-lvars-from-lambda-list-form ((type (eql polymorphic-functions::required)) (untyped-lambda-list list))
Source

required.lisp.

Method: %sbcl-transform-arg-lvars-from-lambda-list-form (type lambda-list)
Generic Function: %type-list-compatible-p (potential-lambda-list-type type-list untyped-lambda-list)
Package

polymorphic-functions.

Source

base.lisp.

Methods
Method: %type-list-compatible-p ((type (eql rest)) (type-list list) (untyped-lambda-list list))
Source

rest.lisp.

Method: %type-list-compatible-p ((type (eql polymorphic-functions::required-key)) (type-list list) (untyped-lambda-list list))
Source

required-key.lisp.

Method: %type-list-compatible-p ((type (eql polymorphic-functions::required-optional)) (type-list list) (untyped-lambda-list list))
Source

required-optional.lisp.

Method: %type-list-compatible-p ((type (eql polymorphic-functions::required)) (type-list list) (untyped-lambda-list list))
Source

required.lisp.

Method: %type-list-compatible-p (type type-list untyped-lambda-list)
Generic Function: %type-list-intersection-null-p (type-1 type-2 type-list-1 type-list-2)

Returns T if there exist argument lists that are compatible with both TYPE-LIST-1 and TYPE-LIST-2

Package

polymorphic-functions.

Source

base.lisp.

Methods
Method: %type-list-intersection-null-p ((type-1 (eql polymorphic-functions::required-key)) (type-2 (eql polymorphic-functions::required)) list-1 list-2)
Source

rest.lisp.

Method: %type-list-intersection-null-p ((type-1 (eql polymorphic-functions::required-key)) (type-2 (eql rest)) list-1 list-2)
Source

rest.lisp.

Method: %type-list-intersection-null-p ((type-1 (eql polymorphic-functions::required)) (type-2 (eql rest)) list-1 list-2)
Source

rest.lisp.

Method: %type-list-intersection-null-p ((type-1 (eql polymorphic-functions::required)) (type-2 (eql polymorphic-functions::required-key)) list-1 list-2)
Source

rest.lisp.

Method: %type-list-intersection-null-p ((type-1 (eql rest)) (type-2 (eql polymorphic-functions::required-key)) list-1 list-2)
Source

rest.lisp.

Method: %type-list-intersection-null-p ((type-1 (eql rest)) (type-2 (eql polymorphic-functions::required)) list-1 list-2)
Source

rest.lisp.

Method: %type-list-intersection-null-p ((type-1 (eql rest)) (type-2 (eql rest)) list-1 list-2)
Source

rest.lisp.

Method: %type-list-intersection-null-p ((type-1 (eql polymorphic-functions::required-key)) (type-2 (eql polymorphic-functions::required-key)) list-1 list-2)
Source

required-key.lisp.

Method: %type-list-intersection-null-p ((type-1 (eql polymorphic-functions::required-optional)) (type-2 (eql polymorphic-functions::required-optional)) list-1 list-2)
Source

required-optional.lisp.

Method: %type-list-intersection-null-p ((type-1 (eql polymorphic-functions::required)) (type-2 (eql polymorphic-functions::required)) list-1 list-2)
Source

required.lisp.

Generic Function: %type-list-more-specific-p (type-1 type-2 type-list-1 type-list-2)

Returns T if TYPE-LIST-1 is more specialized than TYPE-LIST-2.
If TYPE-LIST-1 is more specialized than TYPE-LIST-2, then that means
that *if* both the type lists were applicable, then the polymorph
with TYPE-LIST-1 list will be chosen over the polymorph with TYPE-LIST-2. More specialized does not mean all the types in TYPE-LIST-1
are SUBTYPEP of the corresponding types in TYPE-LIST-2.

For instance, (STRING ARRAY) is more specialized than (ARRAY STRING).

See the tests under the suite POLYMORPHIC-FUNCTIONS::TYPE-LIST-MORE-SPECIFIC-P for more examples.

Package

polymorphic-functions.

Source

base.lisp.

Methods
Method: %type-list-more-specific-p ((type-1 (eql polymorphic-functions::required)) (type-2 (eql polymorphic-functions::required-key)) list-1 list-2)
Source

rest.lisp.

Method: %type-list-more-specific-p ((type-1 (eql polymorphic-functions::required-key)) (type-2 (eql polymorphic-functions::required)) list-1 list-2)
Source

rest.lisp.

Method: %type-list-more-specific-p ((type-1 (eql polymorphic-functions::required-key)) (type-2 (eql rest)) list-1 list-2)
Source

rest.lisp.

Method: %type-list-more-specific-p ((type-1 (eql rest)) (type-2 (eql polymorphic-functions::required-key)) list-1 list-2)
Source

rest.lisp.

Method: %type-list-more-specific-p ((type-1 (eql polymorphic-functions::required)) (type-2 (eql rest)) list-1 list-2)
Source

rest.lisp.

Method: %type-list-more-specific-p ((type-1 (eql rest)) (type-2 (eql polymorphic-functions::required)) list-1 list-2)
Source

rest.lisp.

Method: %type-list-more-specific-p ((type-1 (eql rest)) (type-2 (eql rest)) list-1 list-2)
Source

rest.lisp.

Method: %type-list-more-specific-p ((type-1 (eql polymorphic-functions::required-key)) (type-2 (eql polymorphic-functions::required-key)) list-1 list-2)
Source

required-key.lisp.

Method: %type-list-more-specific-p ((type-1 (eql polymorphic-functions::required-optional)) (type-2 (eql polymorphic-functions::required-optional)) list-1 list-2)
Source

required-optional.lisp.

Method: %type-list-more-specific-p ((type-1 (eql polymorphic-functions::required)) (type-2 (eql polymorphic-functions::required)) list-1 list-2)
Source

required.lisp.

Generic Reader: arg-types (condition)
Package

polymorphic-functions.

Methods
Reader Method: arg-types ((condition no-applicable-polymorph))
Source

conditions.lisp.

Target Slot

arg-types.

Generic Reader: args (condition)
Package

polymorphic-functions.

Methods
Reader Method: args ((condition no-applicable-polymorph))
Source

conditions.lisp.

Target Slot

args.

Generic Function: compute-polymorphic-function-lambda-body (lambda-list-type effective-untyped-lambda-list declaration &optional invalidated-p)

Processes LAMBDA-LIST to return the body for the lambda constructed in UPDATE-POLYMORPHIC-FUNCTION-LAMBDA.
Raises an error if %LAMBDA-LIST-TYPE fails on *POTENTIAL-TYPE*.
If INVALIDATED-P is non-NIL, then emits a dummy body that will first call UPDATE-POLYMORPHIC-FUNCTION-LAMBDA with INVALIDATE as NIL, and then recall the function. Can contain CTYPE::CTYPE objects that are not expected dumped.

Package

polymorphic-functions.

Source

base.lisp.

Methods
Method: compute-polymorphic-function-lambda-body ((type (eql rest)) (untyped-lambda-list list) declaration &optional invalidated-p)
Source

rest.lisp.

Method: compute-polymorphic-function-lambda-body ((type (eql polymorphic-functions::required-key)) (untyped-lambda-list list) declaration &optional invalidated-p)
Source

required-key.lisp.

Method: compute-polymorphic-function-lambda-body ((type (eql polymorphic-functions::required-optional)) (effective-lambda-list list) declaration &optional invalidated-p)
Source

required-optional.lisp.

Method: compute-polymorphic-function-lambda-body ((type (eql polymorphic-functions::required)) (untyped-lambda-list list) declaration &optional invalidated-p)
Source

required.lisp.

Generic Reader: effective-type-lists (condition)
Package

polymorphic-functions.

Methods
Reader Method: effective-type-lists ((condition no-applicable-polymorph))
Source

conditions.lisp.

Target Slot

effective-type-lists.

Generic Reader: name (condition)
Package

polymorphic-functions.

Methods
Reader Method: name ((condition no-applicable-polymorph))
Source

conditions.lisp.

Target Slot

name.

Reader Method: name ((condition not-a-ahp))
Source

conditions.lisp.

Target Slot

name.

Reader Method: name ((condition lambda-list-has-changed))
Source

conditions.lisp.

Target Slot

name.

Generic Reader: new-lambda-list (condition)
Package

polymorphic-functions.

Methods
Reader Method: new-lambda-list ((condition lambda-list-has-changed))
Source

conditions.lisp.

Target Slot

new-lambda-list.

Generic Reader: polymorphic-function-default (object)
Package

polymorphic-functions.

Methods
Reader Method: polymorphic-function-default ((polymorphic-function polymorphic-function))

automatically generated reader method

Source

types.lisp.

Target Slot

default.

Generic Reader: polymorphic-function-dispatch-declaration (object)
Package

polymorphic-functions.

Methods
Reader Method: polymorphic-function-dispatch-declaration ((polymorphic-function polymorphic-function))

automatically generated reader method

Source

types.lisp.

Target Slot

dispatch-declaration.

Generic Writer: (setf polymorphic-function-dispatch-declaration) (object)
Package

polymorphic-functions.

Methods
Writer Method: (setf polymorphic-function-dispatch-declaration) ((polymorphic-function polymorphic-function))

automatically generated writer method

Source

types.lisp.

Target Slot

dispatch-declaration.

Generic Reader: polymorphic-function-documentation (object)
Package

polymorphic-functions.

Methods
Reader Method: polymorphic-function-documentation ((polymorphic-function polymorphic-function))

automatically generated reader method

Source

types.lisp.

Target Slot

documentation.

Generic Writer: (setf polymorphic-function-documentation) (object)
Package

polymorphic-functions.

Methods
Writer Method: (setf polymorphic-function-documentation) ((polymorphic-function polymorphic-function))

automatically generated writer method

Source

types.lisp.

Target Slot

documentation.

Generic Reader: polymorphic-function-effective-lambda-list (object)
Package

polymorphic-functions.

Methods
Reader Method: polymorphic-function-effective-lambda-list ((polymorphic-function polymorphic-function))

automatically generated reader method

Source

types.lisp.

Target Slot

effective-lambda-list.

Generic Reader: polymorphic-function-invalidated-p (object)
Package

polymorphic-functions.

Methods
Reader Method: polymorphic-function-invalidated-p ((polymorphic-function polymorphic-function))

automatically generated reader method

Source

types.lisp.

Target Slot

invalidated-p.

Generic Writer: (setf polymorphic-function-invalidated-p) (object)
Package

polymorphic-functions.

Methods
Writer Method: (setf polymorphic-function-invalidated-p) ((polymorphic-function polymorphic-function))

automatically generated writer method

Source

types.lisp.

Target Slot

invalidated-p.

Generic Reader: polymorphic-function-lambda-list (object)
Package

polymorphic-functions.

Methods
Reader Method: polymorphic-function-lambda-list ((polymorphic-function polymorphic-function))

automatically generated reader method

Source

types.lisp.

Target Slot

lambda-list.

Generic Reader: polymorphic-function-lambda-list-type (object)
Package

polymorphic-functions.

Methods
Reader Method: polymorphic-function-lambda-list-type ((polymorphic-function polymorphic-function))

automatically generated reader method

Source

types.lisp.

Target Slot

lambda-list-type.

Generic Reader: polymorphic-function-name (object)
Package

polymorphic-functions.

Methods
Reader Method: polymorphic-function-name ((polymorphic-function polymorphic-function))

automatically generated reader method

Source

types.lisp.

Target Slot

name.

Generic Reader: polymorphic-function-polymorphs (object)
Package

polymorphic-functions.

Methods
Reader Method: polymorphic-function-polymorphs ((polymorphic-function polymorphic-function))

automatically generated reader method

Source

types.lisp.

Target Slot

polymorphs.

Generic Writer: (setf polymorphic-function-polymorphs) (object)
Package

polymorphic-functions.

Methods
Writer Method: (setf polymorphic-function-polymorphs) ((polymorphic-function polymorphic-function))

automatically generated writer method

Source

types.lisp.

Target Slot

polymorphs.

Generic Reader: polymorphic-function-source (object)
Package

polymorphic-functions.

Methods
Reader Method: polymorphic-function-source ((polymorphic-function polymorphic-function))

automatically generated reader method

Source

types.lisp.

Target Slot

source.


6.2.7 Standalone methods

Reader Method: gf-lock ((polymorphic-function polymorphic-function))

automatically generated reader method

Package

sb-pcl.

Source

types.lisp.

Target Slot

%lock.


6.2.8 Conditions

Condition: lambda-list-has-changed
Package

polymorphic-functions.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods
Direct slots
Slot: name
Initform

(quote (error "name must be supplied!"))

Initargs

:name

Readers

name.

Writers

This slot is read-only.

Slot: new-lambda-list
Initform

(quote (error "new lambda list must be supplied!"))

Initargs

:new-lambda-list

Readers

new-lambda-list.

Writers

This slot is read-only.

Condition: no-applicable-polymorph/error
Package

polymorphic-functions.

Source

conditions.lisp.

Direct superclasses
Condition: not-a-ahp
Package

polymorphic-functions.

Source

conditions.lisp.

Direct superclasses

error.

Direct methods

name.

Direct slots
Slot: name
Initform

(quote (error "name must be supplied!"))

Initargs

:name

Readers

name.

Writers

This slot is read-only.

Condition: return-type-count-mismatch
Package

polymorphic-functions.

Source

ensure-type-form.lisp.

Direct superclasses

condition.

Direct subclasses

return-type-count-mismatch/warning.

Direct slots
Slot: min
Package

common-lisp.

Initargs

:min

Slot: max
Package

common-lisp.

Initargs

:max

Slot: actual
Initargs

:actual

Condition: return-type-count-mismatch/warning
Package

polymorphic-functions.

Source

ensure-type-form.lisp.

Direct superclasses
Condition: return-type-mismatch
Package

polymorphic-functions.

Source

ensure-type-form.lisp.

Direct superclasses

condition.

Direct subclasses
Direct slots
Slot: actual
Initargs

:actual

Slot: index
Initargs

:index

Condition: return-type-mismatch/error
Package

polymorphic-functions.

Source

ensure-type-form.lisp.

Direct superclasses
Direct slots
Slot: expected
Initargs

:expected

Condition: return-type-mismatch/warning
Package

polymorphic-functions.

Source

ensure-type-form.lisp.

Direct superclasses
Direct slots
Slot: declared
Initargs

:declared

Condition: subtypep-not-known
Package

polymorphic-functions.

Source

type-tools.lisp.

Direct superclasses

condition.

Direct slots
Slot: type1
Initargs

:type1

Slot: type2
Initargs

:type2


6.2.9 Structures

Structure: polymorph-parameter

LOCAL-NAME : Name inside the body of the polymorph
FORM-IN-PF : The form which yields the parameter’s value inside the lexical environment of the polymorphic-function

Note: Only LOCAL-NAME and FORM-IN-PF are relevant for &REST parameter

Package

polymorphic-functions.

Source

types.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: local-name
Readers

pp-local-name.

Writers

(setf pp-local-name).

Slot: form-in-pf
Readers

pp-form-in-pf.

Writers

(setf pp-form-in-pf).

Slot: value-type
Readers

pp-value-type.

Writers

(setf pp-value-type).

Slot: default-value-form
Readers

pp-default-value-form.

Writers

(setf pp-default-value-form).

Slot: supplied-p-name
Readers

pp-supplied-p-name.

Writers

(setf pp-supplied-p-name).

Slot: value-effective-type
Readers

pp-value-effective-type.

Writers

(setf pp-value-effective-type).

Structure: polymorph-parameters
Package

polymorphic-functions.

Source

types.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: required
Readers

polymorph-parameters-required.

Writers

(setf polymorph-parameters-required).

Slot: optional
Readers

polymorph-parameters-optional.

Writers

(setf polymorph-parameters-optional).

Slot: rest
Package

common-lisp.

Readers

polymorph-parameters-rest.

Writers

(setf polymorph-parameters-rest).

Slot: keyword
Package

common-lisp.

Readers

polymorph-parameters-keyword.

Writers

(setf polymorph-parameters-keyword).

Slot: min-args
Readers

polymorph-parameters-min-args.

Writers

(setf polymorph-parameters-min-args).

Slot: max-args
Readers

polymorph-parameters-max-args.

Writers

(setf polymorph-parameters-max-args).

Slot: validator-form
Readers

polymorph-parameters-validator-form.

Writers

(setf polymorph-parameters-validator-form).


6.2.10 Types

Type: function-name ()
Package

polymorphic-functions.

Source

utils.lisp.

Type: lambda-list-type ()
Package

polymorphic-functions.

Source

types.lisp.

Type: type-list ()
Package

polymorphic-functions.

Source

types.lisp.

Type: typed-lambda-list ()

Examples:
((a integer) (b integer))
((a integer) &optional ((b integer) 0 b-supplied-p))

Package

polymorphic-functions.

Source

types.lisp.

Type: untyped-lambda-list ()

Examples:
(a b)
(a b &optional c) Non-examples: ((a string))

Package

polymorphic-functions.

Source

types.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   %   (  
A   B   C   D   E   F   G   I   L   M   N   P   R   S   T   U   V   W  
Index Entry  Section

%
%lambda-list-type: Private generic functions
%lambda-list-type: Private generic functions
%lambda-list-type: Private generic functions
%lambda-list-type: Private generic functions
%lambda-list-type: Private generic functions
%lambda-list-type: Private generic functions
%sbcl-transform-arg-lvars-from-lambda-list-form: Private generic functions
%sbcl-transform-arg-lvars-from-lambda-list-form: Private generic functions
%sbcl-transform-arg-lvars-from-lambda-list-form: Private generic functions
%sbcl-transform-arg-lvars-from-lambda-list-form: Private generic functions
%sbcl-transform-arg-lvars-from-lambda-list-form: Private generic functions
%sbcl-transform-arg-lvars-from-lambda-list-form: Private generic functions
%type-list-compatible-p: Private generic functions
%type-list-compatible-p: Private generic functions
%type-list-compatible-p: Private generic functions
%type-list-compatible-p: Private generic functions
%type-list-compatible-p: Private generic functions
%type-list-compatible-p: Private generic functions
%type-list-intersection-null-p: Private generic functions
%type-list-intersection-null-p: Private generic functions
%type-list-intersection-null-p: Private generic functions
%type-list-intersection-null-p: Private generic functions
%type-list-intersection-null-p: Private generic functions
%type-list-intersection-null-p: Private generic functions
%type-list-intersection-null-p: Private generic functions
%type-list-intersection-null-p: Private generic functions
%type-list-intersection-null-p: Private generic functions
%type-list-intersection-null-p: Private generic functions
%type-list-intersection-null-p: Private generic functions
%type-list-more-specific-p: Private generic functions
%type-list-more-specific-p: Private generic functions
%type-list-more-specific-p: Private generic functions
%type-list-more-specific-p: Private generic functions
%type-list-more-specific-p: Private generic functions
%type-list-more-specific-p: Private generic functions
%type-list-more-specific-p: Private generic functions
%type-list-more-specific-p: Private generic functions
%type-list-more-specific-p: Private generic functions
%type-list-more-specific-p: Private generic functions
%type-list-more-specific-p: Private generic functions

(
(setf polymorph-compiler-applicable-p-lambda): Private ordinary functions
(setf polymorph-compiler-macro-lambda): Private ordinary functions
(setf polymorph-compiler-macro-source): Private ordinary functions
(setf polymorph-documentation): Private ordinary functions
(setf polymorph-effective-type-list): Private ordinary functions
(setf polymorph-inline-lambda-body): Private ordinary functions
(setf polymorph-inline-p): Private ordinary functions
(setf polymorph-lambda-list-type): Private ordinary functions
(setf polymorph-more-optimal-type-list): Private ordinary functions
(setf polymorph-name): Private ordinary functions
(setf polymorph-parameters): Private ordinary functions
(setf polymorph-parameters-keyword): Private ordinary functions
(setf polymorph-parameters-max-args): Private ordinary functions
(setf polymorph-parameters-min-args): Private ordinary functions
(setf polymorph-parameters-optional): Private ordinary functions
(setf polymorph-parameters-required): Private ordinary functions
(setf polymorph-parameters-rest): Private ordinary functions
(setf polymorph-parameters-validator-form): Private ordinary functions
(setf polymorph-return-type): Private ordinary functions
(setf polymorph-runtime-applicable-p-form): Private ordinary functions
(setf polymorph-source): Private ordinary functions
(setf polymorph-static-dispatch-name): Private ordinary functions
(setf polymorph-suboptimal-note): Private ordinary functions
(setf polymorph-type-list): Private ordinary functions
(setf polymorph-typed-lambda-list): Private ordinary functions
(setf polymorphic-function-dispatch-declaration): Private generic functions
(setf polymorphic-function-dispatch-declaration): Private generic functions
(setf polymorphic-function-documentation): Private generic functions
(setf polymorphic-function-documentation): Private generic functions
(setf polymorphic-function-invalidated-p): Private generic functions
(setf polymorphic-function-invalidated-p): Private generic functions
(setf polymorphic-function-polymorphs): Private generic functions
(setf polymorphic-function-polymorphs): Private generic functions
(setf pp-default-value-form): Private ordinary functions
(setf pp-form-in-pf): Private ordinary functions
(setf pp-local-name): Private ordinary functions
(setf pp-supplied-p-name): Private ordinary functions
(setf pp-value-effective-type): Private ordinary functions
(setf pp-value-type): Private ordinary functions

A
accepts-argument-of-type-p: Private ordinary functions
add-or-update-polymorph: Private ordinary functions
arg-types: Private generic functions
arg-types: Private generic functions
args: Private generic functions
args: Private generic functions

B
blockify-name: Private ordinary functions

C
catch-condition: Private macros
compiler-applicable-p-lambda-body: Private ordinary functions
compute-polymorphic-function-lambda-body: Private generic functions
compute-polymorphic-function-lambda-body: Private generic functions
compute-polymorphic-function-lambda-body: Private generic functions
compute-polymorphic-function-lambda-body: Private generic functions
compute-polymorphic-function-lambda-body: Private generic functions
copy-polymorph: Private ordinary functions
copy-polymorph-parameter: Private ordinary functions
copy-polymorph-parameters: Private ordinary functions

D
define-lambda-list-helper: Private macros
define-polymorphic-function: Public macros
definitive-intersection-null-p: Private ordinary functions
definitive-subtypep: Private ordinary functions
defpolymorph: Public macros

E
effective-type-lists: Private generic functions
effective-type-lists: Private generic functions
enhance-run-time-deparameterizer-lambda-body: Private ordinary functions
enhanced-lambda-declarations: Private ordinary functions
ensure-type-form: Private ordinary functions
ensure-unambiguous-call: Private ordinary functions
expand-defpolymorph-lite: Private ordinary functions
extended-subtypep: Private ordinary functions
extract-declarations: Private ordinary functions

F
find-class: Private ordinary functions
find-polymorph: Public ordinary functions
ftype-for-static-dispatch: Private ordinary functions
ftype-proclaimation: Private ordinary functions
Function, (setf polymorph-compiler-applicable-p-lambda): Private ordinary functions
Function, (setf polymorph-compiler-macro-lambda): Private ordinary functions
Function, (setf polymorph-compiler-macro-source): Private ordinary functions
Function, (setf polymorph-documentation): Private ordinary functions
Function, (setf polymorph-effective-type-list): Private ordinary functions
Function, (setf polymorph-inline-lambda-body): Private ordinary functions
Function, (setf polymorph-inline-p): Private ordinary functions
Function, (setf polymorph-lambda-list-type): Private ordinary functions
Function, (setf polymorph-more-optimal-type-list): Private ordinary functions
Function, (setf polymorph-name): Private ordinary functions
Function, (setf polymorph-parameters): Private ordinary functions
Function, (setf polymorph-parameters-keyword): Private ordinary functions
Function, (setf polymorph-parameters-max-args): Private ordinary functions
Function, (setf polymorph-parameters-min-args): Private ordinary functions
Function, (setf polymorph-parameters-optional): Private ordinary functions
Function, (setf polymorph-parameters-required): Private ordinary functions
Function, (setf polymorph-parameters-rest): Private ordinary functions
Function, (setf polymorph-parameters-validator-form): Private ordinary functions
Function, (setf polymorph-return-type): Private ordinary functions
Function, (setf polymorph-runtime-applicable-p-form): Private ordinary functions
Function, (setf polymorph-source): Private ordinary functions
Function, (setf polymorph-static-dispatch-name): Private ordinary functions
Function, (setf polymorph-suboptimal-note): Private ordinary functions
Function, (setf polymorph-type-list): Private ordinary functions
Function, (setf polymorph-typed-lambda-list): Private ordinary functions
Function, (setf pp-default-value-form): Private ordinary functions
Function, (setf pp-form-in-pf): Private ordinary functions
Function, (setf pp-local-name): Private ordinary functions
Function, (setf pp-supplied-p-name): Private ordinary functions
Function, (setf pp-value-effective-type): Private ordinary functions
Function, (setf pp-value-type): Private ordinary functions
Function, accepts-argument-of-type-p: Private ordinary functions
Function, add-or-update-polymorph: Private ordinary functions
Function, blockify-name: Private ordinary functions
Function, compiler-applicable-p-lambda-body: Private ordinary functions
Function, copy-polymorph: Private ordinary functions
Function, copy-polymorph-parameter: Private ordinary functions
Function, copy-polymorph-parameters: Private ordinary functions
Function, definitive-intersection-null-p: Private ordinary functions
Function, definitive-subtypep: Private ordinary functions
Function, enhance-run-time-deparameterizer-lambda-body: Private ordinary functions
Function, enhanced-lambda-declarations: Private ordinary functions
Function, ensure-type-form: Private ordinary functions
Function, ensure-unambiguous-call: Private ordinary functions
Function, expand-defpolymorph-lite: Private ordinary functions
Function, extended-subtypep: Private ordinary functions
Function, extract-declarations: Private ordinary functions
Function, find-class: Private ordinary functions
Function, find-polymorph: Public ordinary functions
Function, ftype-for-static-dispatch: Private ordinary functions
Function, ftype-proclaimation: Private ordinary functions
Function, intersection-null-p: Private ordinary functions
Function, invalidate-polymorphic-function-lambda: Private ordinary functions
Function, lambda-declarations: Private ordinary functions
Function, lambda-list-type: Private ordinary functions
Function, lambda-list-type-p: Private ordinary functions
Function, make-or-retrieve-static-dispatch-name: Private ordinary functions
Function, make-polymorph: Private ordinary functions
Function, make-polymorph-parameter: Private ordinary functions
Function, make-polymorph-parameters: Private ordinary functions
Function, make-polymorph-parameters-from-lambda-lists: Private ordinary functions
Function, map-polymorph-parameters: Private ordinary functions
Function, may-be-pf-lambda-list: Private ordinary functions
Function, no-applicable-polymorph: Public ordinary functions
Function, normalize-typed-lambda-list: Private ordinary functions
Function, normalize-untyped-lambda-list: Private ordinary functions
Function, note-no-inline: Private ordinary functions
Function, note-null-env: Private ordinary functions
Function, polymorph-apropos-list-type: Public ordinary functions
Function, polymorph-compiler-applicable-p-lambda: Private ordinary functions
Function, polymorph-compiler-macro-lambda: Private ordinary functions
Function, polymorph-compiler-macro-source: Private ordinary functions
Function, polymorph-documentation: Private ordinary functions
Function, polymorph-effective-lambda-list: Private ordinary functions
Function, polymorph-effective-type-list: Private ordinary functions
Function, polymorph-inline-lambda-body: Private ordinary functions
Function, polymorph-inline-p: Private ordinary functions
Function, polymorph-lambda-list-type: Private ordinary functions
Function, polymorph-more-optimal-type-list: Private ordinary functions
Function, polymorph-name: Private ordinary functions
Function, polymorph-p: Private ordinary functions
Function, polymorph-parameter-p: Private ordinary functions
Function, polymorph-parameters: Private ordinary functions
Function, polymorph-parameters-keyword: Private ordinary functions
Function, polymorph-parameters-max-args: Private ordinary functions
Function, polymorph-parameters-min-args: Private ordinary functions
Function, polymorph-parameters-optional: Private ordinary functions
Function, polymorph-parameters-p: Private ordinary functions
Function, polymorph-parameters-required: Private ordinary functions
Function, polymorph-parameters-rest: Private ordinary functions
Function, polymorph-parameters-validator-form: Private ordinary functions
Function, polymorph-return-type: Private ordinary functions
Function, polymorph-runtime-applicable-p-form: Private ordinary functions
Function, polymorph-source: Private ordinary functions
Function, polymorph-static-dispatch-name: Private ordinary functions
Function, polymorph-suboptimal-note: Private ordinary functions
Function, polymorph-type-list: Private ordinary functions
Function, polymorph-typed-lambda-list: Private ordinary functions
Function, polymorphic-function-effective-type-lists: Private ordinary functions
Function, polymorphic-function-make-effective-lambda-list: Private ordinary functions
Function, polymorphic-function-type-lists: Public ordinary functions
Function, potential-type-of-lambda-list: Private ordinary functions
Function, pp-default-value-form: Private ordinary functions
Function, pp-form-in-pf: Private ordinary functions
Function, pp-local-name: Private ordinary functions
Function, pp-supplied-p-name: Private ordinary functions
Function, pp-value-effective-type: Private ordinary functions
Function, pp-value-type: Private ordinary functions
Function, recursive-function-p: Private ordinary functions
Function, register-polymorph: Private ordinary functions
Function, register-polymorphic-function: Private ordinary functions
Function, remove-polymorph: Private ordinary functions
Function, run-time-applicable-p-form: Private ordinary functions
Function, sbcl-transform-arg-lvars-from-lambda-list-form: Private ordinary functions
Function, sbcl-version-spec-integer: Private ordinary functions
Function, sbcl-version-spec-list: Private ordinary functions
Function, sort-typed-lambda-list: Private ordinary functions
Function, sort-untyped-lambda-list: Private ordinary functions
Function, subtypep-using-subtypep-alist: Private ordinary functions
Function, translate-body: Private ordinary functions
Function, traverse-tree: Private ordinary functions
Function, type-list-compatible-p: Private ordinary functions
Function, type-list-intersection-null-p: Private ordinary functions
Function, type-list-more-specific-p: Private ordinary functions
Function, type-list-order-keywords: Private ordinary functions
Function, type-list-p: Private ordinary functions
Function, type-pair-=: Private ordinary functions
Function, type-specifier-p: Private ordinary functions
Function, typed-lambda-list-p: Private ordinary functions
Function, undefine-polymorphic-function: Public ordinary functions
Function, undefpolymorph: Public ordinary functions
Function, untyped-lambda-list: Private ordinary functions
Function, untyped-lambda-list-p: Private ordinary functions
Function, update-polymorphic-function-documentation: Private ordinary functions
Function, update-polymorphic-function-lambda: Private ordinary functions
Function, valid-parameter-name-p: Private ordinary functions

G
Generic Function, %lambda-list-type: Private generic functions
Generic Function, %sbcl-transform-arg-lvars-from-lambda-list-form: Private generic functions
Generic Function, %type-list-compatible-p: Private generic functions
Generic Function, %type-list-intersection-null-p: Private generic functions
Generic Function, %type-list-more-specific-p: Private generic functions
Generic Function, (setf polymorphic-function-dispatch-declaration): Private generic functions
Generic Function, (setf polymorphic-function-documentation): Private generic functions
Generic Function, (setf polymorphic-function-invalidated-p): Private generic functions
Generic Function, (setf polymorphic-function-polymorphs): Private generic functions
Generic Function, arg-types: Private generic functions
Generic Function, args: Private generic functions
Generic Function, compute-polymorphic-function-lambda-body: Private generic functions
Generic Function, effective-type-lists: Private generic functions
Generic Function, name: Private generic functions
Generic Function, new-lambda-list: Private generic functions
Generic Function, polymorphic-function-default: Private generic functions
Generic Function, polymorphic-function-dispatch-declaration: Private generic functions
Generic Function, polymorphic-function-documentation: Private generic functions
Generic Function, polymorphic-function-effective-lambda-list: Private generic functions
Generic Function, polymorphic-function-invalidated-p: Private generic functions
Generic Function, polymorphic-function-lambda-list: Private generic functions
Generic Function, polymorphic-function-lambda-list-type: Private generic functions
Generic Function, polymorphic-function-name: Private generic functions
Generic Function, polymorphic-function-polymorphs: Private generic functions
Generic Function, polymorphic-function-source: Private generic functions
gf-lock: Private standalone methods

I
ignoring-error-output: Private macros
intersection-null-p: Private ordinary functions
invalidate-polymorphic-function-lambda: Private ordinary functions
is-error: Private macros

L
lambda-declarations: Private ordinary functions
lambda-list-type: Private ordinary functions
lambda-list-type-p: Private ordinary functions
let+: Private macros
list-named-lambda: Private macros

M
Macro, catch-condition: Private macros
Macro, define-lambda-list-helper: Private macros
Macro, define-polymorphic-function: Public macros
Macro, defpolymorph: Public macros
Macro, ignoring-error-output: Private macros
Macro, is-error: Private macros
Macro, let+: Private macros
Macro, list-named-lambda: Private macros
Macro, named-lambda: Private macros
Macro, with-eval-always: Private macros
Macro, with-return-type: Private macros
make-or-retrieve-static-dispatch-name: Private ordinary functions
make-polymorph: Private ordinary functions
make-polymorph-parameter: Private ordinary functions
make-polymorph-parameters: Private ordinary functions
make-polymorph-parameters-from-lambda-lists: Private ordinary functions
map-polymorph-parameters: Private ordinary functions
may-be-pf-lambda-list: Private ordinary functions
Method, %lambda-list-type: Private generic functions
Method, %lambda-list-type: Private generic functions
Method, %lambda-list-type: Private generic functions
Method, %lambda-list-type: Private generic functions
Method, %lambda-list-type: Private generic functions
Method, %sbcl-transform-arg-lvars-from-lambda-list-form: Private generic functions
Method, %sbcl-transform-arg-lvars-from-lambda-list-form: Private generic functions
Method, %sbcl-transform-arg-lvars-from-lambda-list-form: Private generic functions
Method, %sbcl-transform-arg-lvars-from-lambda-list-form: Private generic functions
Method, %sbcl-transform-arg-lvars-from-lambda-list-form: Private generic functions
Method, %type-list-compatible-p: Private generic functions
Method, %type-list-compatible-p: Private generic functions
Method, %type-list-compatible-p: Private generic functions
Method, %type-list-compatible-p: Private generic functions
Method, %type-list-compatible-p: Private generic functions
Method, %type-list-intersection-null-p: Private generic functions
Method, %type-list-intersection-null-p: Private generic functions
Method, %type-list-intersection-null-p: Private generic functions
Method, %type-list-intersection-null-p: Private generic functions
Method, %type-list-intersection-null-p: Private generic functions
Method, %type-list-intersection-null-p: Private generic functions
Method, %type-list-intersection-null-p: Private generic functions
Method, %type-list-intersection-null-p: Private generic functions
Method, %type-list-intersection-null-p: Private generic functions
Method, %type-list-intersection-null-p: Private generic functions
Method, %type-list-more-specific-p: Private generic functions
Method, %type-list-more-specific-p: Private generic functions
Method, %type-list-more-specific-p: Private generic functions
Method, %type-list-more-specific-p: Private generic functions
Method, %type-list-more-specific-p: Private generic functions
Method, %type-list-more-specific-p: Private generic functions
Method, %type-list-more-specific-p: Private generic functions
Method, %type-list-more-specific-p: Private generic functions
Method, %type-list-more-specific-p: Private generic functions
Method, %type-list-more-specific-p: Private generic functions
Method, (setf polymorphic-function-dispatch-declaration): Private generic functions
Method, (setf polymorphic-function-documentation): Private generic functions
Method, (setf polymorphic-function-invalidated-p): Private generic functions
Method, (setf polymorphic-function-polymorphs): Private generic functions
Method, arg-types: Private generic functions
Method, args: Private generic functions
Method, compute-polymorphic-function-lambda-body: Private generic functions
Method, compute-polymorphic-function-lambda-body: Private generic functions
Method, compute-polymorphic-function-lambda-body: Private generic functions
Method, compute-polymorphic-function-lambda-body: Private generic functions
Method, effective-type-lists: Private generic functions
Method, gf-lock: Private standalone methods
Method, name: Private generic functions
Method, name: Private generic functions
Method, name: Private generic functions
Method, new-lambda-list: Private generic functions
Method, polymorphic-function-default: Private generic functions
Method, polymorphic-function-dispatch-declaration: Private generic functions
Method, polymorphic-function-documentation: Private generic functions
Method, polymorphic-function-effective-lambda-list: Private generic functions
Method, polymorphic-function-invalidated-p: Private generic functions
Method, polymorphic-function-lambda-list: Private generic functions
Method, polymorphic-function-lambda-list-type: Private generic functions
Method, polymorphic-function-name: Private generic functions
Method, polymorphic-function-polymorphs: Private generic functions
Method, polymorphic-function-source: Private generic functions
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods
Method, print-object: Public standalone methods

N
name: Private generic functions
name: Private generic functions
name: Private generic functions
name: Private generic functions
named-lambda: Private macros
new-lambda-list: Private generic functions
new-lambda-list: Private generic functions
no-applicable-polymorph: Public ordinary functions
normalize-typed-lambda-list: Private ordinary functions
normalize-untyped-lambda-list: Private ordinary functions
note-no-inline: Private ordinary functions
note-null-env: Private ordinary functions

P
polymorph-apropos-list-type: Public ordinary functions
polymorph-compiler-applicable-p-lambda: Private ordinary functions
polymorph-compiler-macro-lambda: Private ordinary functions
polymorph-compiler-macro-source: Private ordinary functions
polymorph-documentation: Private ordinary functions
polymorph-effective-lambda-list: Private ordinary functions
polymorph-effective-type-list: Private ordinary functions
polymorph-inline-lambda-body: Private ordinary functions
polymorph-inline-p: Private ordinary functions
polymorph-lambda-list-type: Private ordinary functions
polymorph-more-optimal-type-list: Private ordinary functions
polymorph-name: Private ordinary functions
polymorph-p: Private ordinary functions
polymorph-parameter-p: Private ordinary functions
polymorph-parameters: Private ordinary functions
polymorph-parameters-keyword: Private ordinary functions
polymorph-parameters-max-args: Private ordinary functions
polymorph-parameters-min-args: Private ordinary functions
polymorph-parameters-optional: Private ordinary functions
polymorph-parameters-p: Private ordinary functions
polymorph-parameters-required: Private ordinary functions
polymorph-parameters-rest: Private ordinary functions
polymorph-parameters-validator-form: Private ordinary functions
polymorph-return-type: Private ordinary functions
polymorph-runtime-applicable-p-form: Private ordinary functions
polymorph-source: Private ordinary functions
polymorph-static-dispatch-name: Private ordinary functions
polymorph-suboptimal-note: Private ordinary functions
polymorph-type-list: Private ordinary functions
polymorph-typed-lambda-list: Private ordinary functions
polymorphic-function-default: Private generic functions
polymorphic-function-default: Private generic functions
polymorphic-function-dispatch-declaration: Private generic functions
polymorphic-function-dispatch-declaration: Private generic functions
polymorphic-function-documentation: Private generic functions
polymorphic-function-documentation: Private generic functions
polymorphic-function-effective-lambda-list: Private generic functions
polymorphic-function-effective-lambda-list: Private generic functions
polymorphic-function-effective-type-lists: Private ordinary functions
polymorphic-function-invalidated-p: Private generic functions
polymorphic-function-invalidated-p: Private generic functions
polymorphic-function-lambda-list: Private generic functions
polymorphic-function-lambda-list: Private generic functions
polymorphic-function-lambda-list-type: Private generic functions
polymorphic-function-lambda-list-type: Private generic functions
polymorphic-function-make-effective-lambda-list: Private ordinary functions
polymorphic-function-name: Private generic functions
polymorphic-function-name: Private generic functions
polymorphic-function-polymorphs: Private generic functions
polymorphic-function-polymorphs: Private generic functions
polymorphic-function-source: Private generic functions
polymorphic-function-source: Private generic functions
polymorphic-function-type-lists: Public ordinary functions
potential-type-of-lambda-list: Private ordinary functions
pp-default-value-form: Private ordinary functions
pp-form-in-pf: Private ordinary functions
pp-local-name: Private ordinary functions
pp-supplied-p-name: Private ordinary functions
pp-value-effective-type: Private ordinary functions
pp-value-type: Private ordinary functions
print-object: Public standalone methods
print-object: Public standalone methods
print-object: Public standalone methods

R
recursive-function-p: Private ordinary functions
register-polymorph: Private ordinary functions
register-polymorphic-function: Private ordinary functions
remove-polymorph: Private ordinary functions
run-time-applicable-p-form: Private ordinary functions

S
sbcl-transform-arg-lvars-from-lambda-list-form: Private ordinary functions
sbcl-version-spec-integer: Private ordinary functions
sbcl-version-spec-list: Private ordinary functions
sort-typed-lambda-list: Private ordinary functions
sort-untyped-lambda-list: Private ordinary functions
subtypep-using-subtypep-alist: Private ordinary functions

T
translate-body: Private ordinary functions
traverse-tree: Private ordinary functions
type-list-compatible-p: Private ordinary functions
type-list-intersection-null-p: Private ordinary functions
type-list-more-specific-p: Private ordinary functions
type-list-order-keywords: Private ordinary functions
type-list-p: Private ordinary functions
type-pair-=: Private ordinary functions
type-specifier-p: Private ordinary functions
typed-lambda-list-p: Private ordinary functions

U
undefine-polymorphic-function: Public ordinary functions
undefpolymorph: Public ordinary functions
untyped-lambda-list: Private ordinary functions
untyped-lambda-list-p: Private ordinary functions
update-polymorphic-function-documentation: Private ordinary functions
update-polymorphic-function-lambda: Private ordinary functions

V
valid-parameter-name-p: Private ordinary functions

W
with-eval-always: Private macros
with-return-type: Private macros


A.3 Variables

Jump to:   %   *   +  
A   C   D   E   F   I   K   L   M   N   O   P   R   S   T   V  
Index Entry  Section

%
%lock: Public classes

*
*compiler-macro-expanding-p*: Private special variables
*disable-static-dispatch*: Private special variables
*environment*: Private special variables
*extended-subtypep-functions*: Private special variables
*lambda-list*: Private special variables
*lambda-list-typed-p*: Private special variables
*name*: Private special variables
*potential-type*: Private special variables
*subtypep-alist*: Private special variables

+
+compute-effective-lambda-list-doc+: Private constants
+compute-polymorphic-function-lambda-body-doc+: Private constants
+effective-lambda-list-doc-helper+: Private constants
+lambda-declarations-doc+: Private constants
+lambda-list-type-doc+: Private constants
+lambda-list-types+: Private constants
+optimize-speed-or-compilation-speed+: Private constants
+sbcl-transform-arg-lvars-from-lambda-list-form+: Private constants
+type-list-intersection-null-p+: Private constants
+type-list-more-specific-p+: Private constants

A
actual: Private conditions
actual: Private conditions
arg-types: Public conditions
args: Public conditions

C
compiler-applicable-p-lambda: Public structures
compiler-macro-lambda: Public structures
compiler-macro-source: Public structures
Constant, +compute-effective-lambda-list-doc+: Private constants
Constant, +compute-polymorphic-function-lambda-body-doc+: Private constants
Constant, +effective-lambda-list-doc-helper+: Private constants
Constant, +lambda-declarations-doc+: Private constants
Constant, +lambda-list-type-doc+: Private constants
Constant, +lambda-list-types+: Private constants
Constant, +optimize-speed-or-compilation-speed+: Private constants
Constant, +sbcl-transform-arg-lvars-from-lambda-list-form+: Private constants
Constant, +type-list-intersection-null-p+: Private constants
Constant, +type-list-more-specific-p+: Private constants

D
declared: Private conditions
default: Public classes
default-value-form: Private structures
dispatch-declaration: Public classes
documentation: Public structures
documentation: Public classes

E
effective-lambda-list: Public classes
effective-type-list: Public structures
effective-type-lists: Public conditions
expected: Private conditions

F
form-in-pf: Private structures

I
index: Private conditions
inline-lambda-body: Public structures
inline-p: Public structures
invalidated-p: Public classes

K
keyword: Private structures

L
lambda-list: Public classes
lambda-list-type: Public structures
lambda-list-type: Public classes
local-name: Private structures

M
max: Private conditions
max-args: Private structures
min: Private conditions
min-args: Private structures
more-optimal-type-list: Public structures

N
name: Public conditions
name: Public structures
name: Public classes
name: Private conditions
name: Private conditions
new-lambda-list: Private conditions

O
optim-debug: Private symbol macros
optim-safety: Private symbol macros
optim-slight-speed: Private symbol macros
optim-speed: Private symbol macros
optional: Private structures

P
parameters: Public structures
polymorphs: Public classes

R
required: Private structures
rest: Private structures
return-type: Public structures
runtime-applicable-p-form: Public structures

S
Slot, %lock: Public classes
Slot, actual: Private conditions
Slot, actual: Private conditions
Slot, arg-types: Public conditions
Slot, args: Public conditions
Slot, compiler-applicable-p-lambda: Public structures
Slot, compiler-macro-lambda: Public structures
Slot, compiler-macro-source: Public structures
Slot, declared: Private conditions
Slot, default: Public classes
Slot, default-value-form: Private structures
Slot, dispatch-declaration: Public classes
Slot, documentation: Public structures
Slot, documentation: Public classes
Slot, effective-lambda-list: Public classes
Slot, effective-type-list: Public structures
Slot, effective-type-lists: Public conditions
Slot, expected: Private conditions
Slot, form-in-pf: Private structures
Slot, index: Private conditions
Slot, inline-lambda-body: Public structures
Slot, inline-p: Public structures
Slot, invalidated-p: Public classes
Slot, keyword: Private structures
Slot, lambda-list: Public classes
Slot, lambda-list-type: Public structures
Slot, lambda-list-type: Public classes
Slot, local-name: Private structures
Slot, max: Private conditions
Slot, max-args: Private structures
Slot, min: Private conditions
Slot, min-args: Private structures
Slot, more-optimal-type-list: Public structures
Slot, name: Public conditions
Slot, name: Public structures
Slot, name: Public classes
Slot, name: Private conditions
Slot, name: Private conditions
Slot, new-lambda-list: Private conditions
Slot, optional: Private structures
Slot, parameters: Public structures
Slot, polymorphs: Public classes
Slot, required: Private structures
Slot, rest: Private structures
Slot, return-type: Public structures
Slot, runtime-applicable-p-form: Public structures
Slot, source: Public structures
Slot, source: Public classes
Slot, static-dispatch-name: Public structures
Slot, suboptimal-note: Public structures
Slot, supplied-p-name: Private structures
Slot, type-list: Public structures
Slot, type1: Private conditions
Slot, type2: Private conditions
Slot, typed-lambda-list: Public structures
Slot, validator-form: Private structures
Slot, value-effective-type: Private structures
Slot, value-type: Private structures
source: Public structures
source: Public classes
Special Variable, *compiler-macro-expanding-p*: Private special variables
Special Variable, *disable-static-dispatch*: Private special variables
Special Variable, *environment*: Private special variables
Special Variable, *extended-subtypep-functions*: Private special variables
Special Variable, *lambda-list*: Private special variables
Special Variable, *lambda-list-typed-p*: Private special variables
Special Variable, *name*: Private special variables
Special Variable, *potential-type*: Private special variables
Special Variable, *subtypep-alist*: Private special variables
static-dispatch-name: Public structures
suboptimal-note: Public structures
supplied-p-name: Private structures
Symbol Macro, optim-debug: Private symbol macros
Symbol Macro, optim-safety: Private symbol macros
Symbol Macro, optim-slight-speed: Private symbol macros
Symbol Macro, optim-speed: Private symbol macros

T
type-list: Public structures
type1: Private conditions
type2: Private conditions
typed-lambda-list: Public structures

V
validator-form: Private structures
value-effective-type: Private structures
value-type: Private structures


A.4 Data types

Jump to:   B   C   D   E   F   L   M   N   P   R   S   T   U  
Index Entry  Section

B
base.lisp: The polymorphic-functions-lite/lambda-lists/base․lisp file

C
Class, polymorphic-function: Public classes
Condition, lambda-list-has-changed: Private conditions
Condition, no-applicable-polymorph: Public conditions
Condition, no-applicable-polymorph/error: Private conditions
Condition, not-a-ahp: Private conditions
Condition, return-type-count-mismatch: Private conditions
Condition, return-type-count-mismatch/warning: Private conditions
Condition, return-type-mismatch: Private conditions
Condition, return-type-mismatch/error: Private conditions
Condition, return-type-mismatch/warning: Private conditions
Condition, subtypep-not-known: Private conditions
conditions.lisp: The polymorphic-functions-lite/conditions․lisp file

D
dispatch.lisp: The polymorphic-functions-lite/dispatch․lisp file
doc.lisp: The polymorphic-functions-lite/lambda-lists/doc․lisp file

E
ensure-type-form.lisp: The polymorphic-functions-lite/ensure-type-form․lisp file

F
File, base.lisp: The polymorphic-functions-lite/lambda-lists/base․lisp file
File, conditions.lisp: The polymorphic-functions-lite/conditions․lisp file
File, dispatch.lisp: The polymorphic-functions-lite/dispatch․lisp file
File, doc.lisp: The polymorphic-functions-lite/lambda-lists/doc․lisp file
File, ensure-type-form.lisp: The polymorphic-functions-lite/ensure-type-form․lisp file
File, misc-tests.lisp: The polymorphic-functions-lite/misc-tests․lisp file
File, package.lisp: The polymorphic-functions-lite/package․lisp file
File, parameters.lisp: The polymorphic-functions-lite/lambda-lists/parameters․lisp file
File, polymorphic-function.lisp: The polymorphic-functions-lite/polymorphic-function․lisp file
File, polymorphic-functions-lite.asd: The polymorphic-functions-lite/polymorphic-functions-lite․asd file
File, required-key.lisp: The polymorphic-functions-lite/lambda-lists/required-key․lisp file
File, required-optional.lisp: The polymorphic-functions-lite/lambda-lists/required-optional․lisp file
File, required.lisp: The polymorphic-functions-lite/lambda-lists/required․lisp file
File, rest.lisp: The polymorphic-functions-lite/lambda-lists/rest․lisp file
File, type-tools.lisp: The polymorphic-functions-lite/type-tools․lisp file
File, types.lisp: The polymorphic-functions-lite/types․lisp file
File, utils.lisp: The polymorphic-functions-lite/utils․lisp file
function-name: Private types

L
lambda-list-has-changed: Private conditions
lambda-list-type: Private types
lambda-lists: The polymorphic-functions-lite/lambda-lists module

M
misc-tests.lisp: The polymorphic-functions-lite/misc-tests․lisp file
Module, lambda-lists: The polymorphic-functions-lite/lambda-lists module

N
no-applicable-polymorph: Public conditions
no-applicable-polymorph/error: Private conditions
not-a-ahp: Private conditions

P
Package, polymorphic-functions: The polymorphic-functions package
Package, polymorphic-functions.nonuser: The polymorphic-functions․nonuser package
package.lisp: The polymorphic-functions-lite/package․lisp file
parameters.lisp: The polymorphic-functions-lite/lambda-lists/parameters․lisp file
polymorph: Public structures
polymorph-parameter: Private structures
polymorph-parameters: Private structures
polymorphic-function: Public classes
polymorphic-function.lisp: The polymorphic-functions-lite/polymorphic-function․lisp file
polymorphic-functions: The polymorphic-functions package
polymorphic-functions-lite: The polymorphic-functions-lite system
polymorphic-functions-lite.asd: The polymorphic-functions-lite/polymorphic-functions-lite․asd file
polymorphic-functions.nonuser: The polymorphic-functions․nonuser package

R
required-key.lisp: The polymorphic-functions-lite/lambda-lists/required-key․lisp file
required-optional.lisp: The polymorphic-functions-lite/lambda-lists/required-optional․lisp file
required.lisp: The polymorphic-functions-lite/lambda-lists/required․lisp file
rest.lisp: The polymorphic-functions-lite/lambda-lists/rest․lisp file
return-type-count-mismatch: Private conditions
return-type-count-mismatch/warning: Private conditions
return-type-mismatch: Private conditions
return-type-mismatch/error: Private conditions
return-type-mismatch/warning: Private conditions

S
Structure, polymorph: Public structures
Structure, polymorph-parameter: Private structures
Structure, polymorph-parameters: Private structures
subtypep-not-known: Private conditions
System, polymorphic-functions-lite: The polymorphic-functions-lite system

T
Type, function-name: Private types
Type, lambda-list-type: Private types
Type, type-list: Private types
Type, typed-lambda-list: Private types
Type, untyped-lambda-list: Private types
type-list: Private types
type-tools.lisp: The polymorphic-functions-lite/type-tools․lisp file
typed-lambda-list: Private types
types.lisp: The polymorphic-functions-lite/types․lisp file

U
untyped-lambda-list: Private types
utils.lisp: The polymorphic-functions-lite/utils․lisp file