This is the polymorphic-functions Reference Manual, version 0.4.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Nov 06 14:35:07 2023 GMT+0.
polymorphic-functions/polymorphic-functions.asd
polymorphic-functions/pre-package.lisp
polymorphic-functions/package.lisp
polymorphic-functions/types.lisp
polymorphic-functions/extended-types/parametric-types.lisp
polymorphic-functions/extended-types/ensure-type-form.lisp
polymorphic-functions/extended-types/core.lisp
polymorphic-functions/extended-types/deparameterize-type.lisp
polymorphic-functions/lambda-lists/doc.lisp
polymorphic-functions/lambda-lists/parameters.lisp
polymorphic-functions/lambda-lists/base.lisp
polymorphic-functions/lambda-lists/required.lisp
polymorphic-functions/lambda-lists/required-optional.lisp
polymorphic-functions/lambda-lists/required-key.lisp
polymorphic-functions/lambda-lists/rest.lisp
polymorphic-functions/polymorphic-function.lisp
polymorphic-functions/conditions.lisp
polymorphic-functions/compiler-macro.lisp
polymorphic-functions/sbcl-transform.lisp
polymorphic-functions/dispatch.lisp
polymorphic-functions/misc-tests.lisp
polymorphic-functions/benchmark.lisp
The main system appears first, followed by any subsystem dependency.
polymorphic-functions
Type based dispatch for Common Lisp
MIT
0.4.0
alexandria
(system).
closer-mop
(system).
compiler-macro-notes
(system).
extensible-compound-types
(system).
extensible-compound-types-cl
(system)., for feature :extensible-compound-types
fiveam
(system).
cl-form-types
(system).
ctype
(system).
introspect-environment
(system).
let-plus
(system).
optima
(system).
split-sequence
(system).
trivial-garbage
(system).
pre-package.lisp
(file).
package.lisp
(file).
types.lisp
(file).
extended-types
(module).
lambda-lists
(module).
polymorphic-function.lisp
(file).
conditions.lisp
(file).
compiler-macro.lisp
(file).
sbcl-transform.lisp
(file).
dispatch.lisp
(file).
misc-tests.lisp
(file).
benchmark.lisp
(file).
Modules are listed depth-first from the system components tree.
polymorphic-functions/extended-types
package.lisp
(file).
polymorphic-functions
(system).
parametric-types.lisp
(file).
ensure-type-form.lisp
(file).
core.lisp
(file).
deparameterize-type.lisp
(file).
polymorphic-functions/lambda-lists
extended-types
(module).
types.lisp
(file).
polymorphic-functions
(system).
doc.lisp
(file).
parameters.lisp
(file).
base.lisp
(file).
required.lisp
(file).
required-optional.lisp
(file).
required-key.lisp
(file).
rest.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
polymorphic-functions/polymorphic-functions.asd
polymorphic-functions/pre-package.lisp
polymorphic-functions/package.lisp
polymorphic-functions/types.lisp
polymorphic-functions/extended-types/parametric-types.lisp
polymorphic-functions/extended-types/ensure-type-form.lisp
polymorphic-functions/extended-types/core.lisp
polymorphic-functions/extended-types/deparameterize-type.lisp
polymorphic-functions/lambda-lists/doc.lisp
polymorphic-functions/lambda-lists/parameters.lisp
polymorphic-functions/lambda-lists/base.lisp
polymorphic-functions/lambda-lists/required.lisp
polymorphic-functions/lambda-lists/required-optional.lisp
polymorphic-functions/lambda-lists/required-key.lisp
polymorphic-functions/lambda-lists/rest.lisp
polymorphic-functions/polymorphic-function.lisp
polymorphic-functions/conditions.lisp
polymorphic-functions/compiler-macro.lisp
polymorphic-functions/sbcl-transform.lisp
polymorphic-functions/dispatch.lisp
polymorphic-functions/misc-tests.lisp
polymorphic-functions/benchmark.lisp
polymorphic-functions/polymorphic-functions.asd
polymorphic-functions
(system).
polymorphic-functions/pre-package.lisp
polymorphic-functions
(system).
defpackage
(macro).
polymorphic-functions/package.lisp
pre-package.lisp
(file).
polymorphic-functions
(system).
cl-type-specifier-p
(function).
catch-condition
(macro).
form-type
(function).
function-name
(type).
is-error
(macro).
list-named-lambda
(macro).
macroexpand-all
(function).
nth-form-type
(function).
optim-debug
(symbol macro).
optim-safety
(symbol macro).
optim-slight-speed
(symbol macro).
optim-speed
(symbol macro).
policy-quality
(function).
setf-function-name-p
(function).
typexpand
(function).
polymorphic-functions/types.lisp
package.lisp
(file).
polymorphic-functions
(system).
polymorph
(structure).
polymorphic-function
(class).
print-object
(method).
print-object
(method).
+lambda-list-types+
(constant).
+optimize-speed-or-compilation-speed+
(constant).
copy-polymorph
(function).
copy-polymorph-parameter
(function).
copy-polymorph-parameters
(function).
copy-type-parameter
(function).
extended-type-list-p
(function).
gf-lock
(reader method).
lambda-list-type
(type).
lambda-list-type-p
(function).
make-polymorph
(function).
make-polymorph-parameter
(function).
make-polymorph-parameters
(function).
make-type-parameter
(function).
polymorph-compiler-applicable-p-lambda
(reader).
(setf polymorph-compiler-applicable-p-lambda)
(writer).
polymorph-compiler-macro-lambda
(reader).
(setf polymorph-compiler-macro-lambda)
(writer).
polymorph-compiler-macro-source
(reader).
(setf polymorph-compiler-macro-source)
(writer).
polymorph-documentation
(reader).
(setf polymorph-documentation)
(writer).
polymorph-effective-type-list
(reader).
(setf polymorph-effective-type-list)
(writer).
polymorph-inline-lambda-body
(reader).
(setf polymorph-inline-lambda-body)
(writer).
polymorph-inline-p
(reader).
(setf polymorph-inline-p)
(writer).
polymorph-lambda-list-type
(reader).
(setf polymorph-lambda-list-type)
(writer).
polymorph-more-optimal-type-list
(reader).
(setf polymorph-more-optimal-type-list)
(writer).
polymorph-name
(reader).
(setf polymorph-name)
(writer).
polymorph-p
(function).
polymorph-parameter
(structure).
polymorph-parameter-p
(function).
polymorph-parameters
(reader).
(setf polymorph-parameters)
(writer).
polymorph-parameters
(structure).
polymorph-parameters-keyword
(reader).
(setf polymorph-parameters-keyword)
(writer).
polymorph-parameters-max-args
(reader).
(setf polymorph-parameters-max-args)
(writer).
polymorph-parameters-min-args
(reader).
(setf polymorph-parameters-min-args)
(writer).
polymorph-parameters-optional
(reader).
(setf polymorph-parameters-optional)
(writer).
polymorph-parameters-p
(function).
polymorph-parameters-required
(reader).
(setf polymorph-parameters-required)
(writer).
polymorph-parameters-rest
(reader).
(setf polymorph-parameters-rest)
(writer).
polymorph-parameters-validator-form
(reader).
(setf polymorph-parameters-validator-form)
(writer).
polymorph-return-type
(reader).
(setf polymorph-return-type)
(writer).
polymorph-runtime-applicable-p-form
(reader).
(setf polymorph-runtime-applicable-p-form)
(writer).
polymorph-source
(reader).
(setf polymorph-source)
(writer).
polymorph-static-dispatch-name
(reader).
(setf polymorph-static-dispatch-name)
(writer).
polymorph-suboptimal-note
(reader).
(setf polymorph-suboptimal-note)
(writer).
polymorph-type-list
(reader).
(setf polymorph-type-list)
(writer).
polymorph-typed-lambda-list
(reader).
(setf polymorph-typed-lambda-list)
(writer).
polymorphic-function-default
(reader method).
polymorphic-function-dispatch-declaration
(reader method).
(setf polymorphic-function-dispatch-declaration)
(writer method).
polymorphic-function-documentation
(reader method).
(setf polymorphic-function-documentation)
(writer method).
polymorphic-function-effective-lambda-list
(reader method).
polymorphic-function-invalidated-p
(reader method).
(setf polymorphic-function-invalidated-p)
(writer method).
polymorphic-function-lambda-list
(reader method).
polymorphic-function-lambda-list-type
(reader method).
polymorphic-function-name
(reader method).
polymorphic-function-polymorphs
(reader method).
(setf polymorphic-function-polymorphs)
(writer method).
polymorphic-function-source
(reader method).
pp-default-value-form
(reader).
(setf pp-default-value-form)
(writer).
pp-form-in-pf
(reader).
(setf pp-form-in-pf)
(writer).
pp-local-name
(reader).
(setf pp-local-name)
(writer).
pp-supplied-p-name
(reader).
(setf pp-supplied-p-name)
(writer).
pp-type-parameters
(reader).
(setf pp-type-parameters)
(writer).
pp-value-effective-type
(reader).
(setf pp-value-effective-type)
(writer).
pp-value-type
(reader).
(setf pp-value-type)
(writer).
type-list
(type).
type-list-order-keywords
(function).
type-list-p
(function).
type-parameter
(structure).
type-parameter-compile-time-deparameterizer-lambda
(reader).
(setf type-parameter-compile-time-deparameterizer-lambda)
(writer).
type-parameter-compile-time-deparameterizer-lambda-body
(reader).
(setf type-parameter-compile-time-deparameterizer-lambda-body)
(writer).
type-parameter-name
(reader).
(setf type-parameter-name)
(writer).
type-parameter-p
(function).
type-parameter-run-time-deparameterizer-lambda-body
(reader).
(setf type-parameter-run-time-deparameterizer-lambda-body)
(writer).
typed-lambda-list
(type).
typed-lambda-list-p
(function).
untyped-lambda-list
(type).
untyped-lambda-list-p
(function).
polymorphic-functions/extended-types/parametric-types.lisp
extended-types
(module).
*parametric-type-symbol-predicates*
(special variable).
parametric-type-compile-time-lambda-body
(method).
parametric-type-run-time-lambda-body
(function).
*ocs-run-time-lambda-body-lambda-table*
(special variable).
orthogonally-specializing-type-compile-time-lambda-body
(function).
parametric-type-parameters
(function).
parametric-type-specifier
(type).
parametric-type-specifier-p
(function).
parametric-type-specifiers
(function).
parametric-type-specifiers-are-significant-p
(function).
parametric-type-symbol-p
(function).
search-token-in-equivalent-tree
(function).
type-parameters-from-parametric-type
(function).
polymorphic-functions/extended-types/ensure-type-form.lisp
parametric-types.lisp
(file).
extended-types
(module).
ensure-type-form
(function).
return-type-count-mismatch
(condition).
return-type-count-mismatch/warning
(condition).
return-type-mismatch
(condition).
return-type-mismatch/error
(condition).
return-type-mismatch/warning
(condition).
polymorphic-functions/extended-types/core.lisp
parametric-types.lisp
(file).
extended-types
(module).
*extended-subtypep-functions*
(special variable).
*subtypep-alist*
(special variable).
definitive-subtypep
(function).
extended-type-specifier-p
(function).
subtypep
(compiler macro).
subtypep
(function).
supertypep
(compiler macro).
supertypep
(function).
type-pair-=
(function).
type-specifier-p
(function).
type=
(function).
typep
(compiler macro).
typep
(function).
upgrade-extended-type
(function).
*extended-type-specifiers*
(special variable).
extended-subtypep
(function).
extended-type-specifier
(type).
subtypep-not-known
(condition).
subtypep-using-subtypep-alist
(function).
translate-body
(function).
traverse-tree
(function).
upgraded-extended-type
(generic function).
polymorphic-functions/extended-types/deparameterize-type.lisp
parametric-types.lisp
(file).
extended-types
(module).
%deparameterize-type
(generic function).
*deparameterizer-alist*
(special variable).
deparameterize-type
(function).
simple-deparameterize-type
(function).
polymorphic-functions/lambda-lists/doc.lisp
lambda-lists
(module).
+compute-effective-lambda-list-doc+
(constant).
+compute-polymorphic-function-lambda-body-doc+
(constant).
+effective-lambda-list-doc-helper+
(constant).
+lambda-declarations-doc+
(constant).
+lambda-list-type-doc+
(constant).
+sbcl-transform-arg-lvars-from-lambda-list-form+
(constant).
+type-list-intersection-null-p+
(constant).
+type-list-more-specific-p+
(constant).
polymorphic-functions/lambda-lists/parameters.lisp
lambda-lists
(module).
accepts-argument-of-type-p
(function).
compiler-applicable-p-lambda-body
(function).
enhance-run-time-deparameterizer-lambda-body
(function).
enhanced-lambda-declarations
(function).
ensure-default-form-type
(function).
lambda-declarations
(function).
make-polymorph-parameters-from-lambda-lists
(function).
map-polymorph-parameters
(function).
normalize-typed-lambda-list
(function).
normalize-untyped-lambda-list
(function).
polymorph-effective-lambda-list
(function).
polymorphic-function-make-effective-lambda-list
(function).
run-time-applicable-p-form
(function).
untyped-lambda-list
(function).
polymorphic-functions/lambda-lists/base.lisp
doc.lisp
(file).
parameters.lisp
(file).
lambda-lists
(module).
%lambda-list-type
(generic function).
%sbcl-transform-arg-lvars-from-lambda-list-form
(generic function).
%type-list-compatible-p
(generic function).
%type-list-intersection-null-p
(generic function).
%type-list-more-specific-p
(generic function).
*lambda-list*
(special variable).
*lambda-list-typed-p*
(special variable).
*potential-type*
(special variable).
compute-polymorphic-function-lambda-body
(generic function).
define-lambda-list-helper
(macro).
definitive-intersection-null-p
(function).
ftype-for-static-dispatch
(function).
intersection-null-p
(function).
lambda-list-type
(function).
potential-type-of-lambda-list
(function).
sbcl-transform-arg-lvars-from-lambda-list-form
(function).
type-list-compatible-p
(function).
type-list-intersection-null-p
(function).
type-list-more-specific-p
(function).
valid-parameter-name-p
(function).
polymorphic-functions/lambda-lists/required.lisp
base.lisp
(file).
lambda-lists
(module).
%lambda-list-type
(method).
%sbcl-transform-arg-lvars-from-lambda-list-form
(method).
%type-list-compatible-p
(method).
%type-list-intersection-null-p
(method).
%type-list-more-specific-p
(method).
compute-polymorphic-function-lambda-body
(method).
polymorphic-functions/lambda-lists/required-optional.lisp
base.lisp
(file).
lambda-lists
(module).
%lambda-list-type
(method).
%sbcl-transform-arg-lvars-from-lambda-list-form
(method).
%type-list-compatible-p
(method).
%type-list-intersection-null-p
(method).
%type-list-more-specific-p
(method).
compute-polymorphic-function-lambda-body
(method).
polymorphic-functions/lambda-lists/required-key.lisp
base.lisp
(file).
lambda-lists
(module).
%lambda-list-type
(method).
%sbcl-transform-arg-lvars-from-lambda-list-form
(method).
%type-list-compatible-p
(method).
%type-list-intersection-null-p
(method).
%type-list-more-specific-p
(method).
compute-polymorphic-function-lambda-body
(method).
polymorphic-functions/lambda-lists/rest.lisp
base.lisp
(file).
lambda-lists
(module).
%lambda-list-type
(method).
%sbcl-transform-arg-lvars-from-lambda-list-form
(method).
%type-list-compatible-p
(method).
%type-list-intersection-null-p
(method).
%type-list-intersection-null-p
(method).
%type-list-intersection-null-p
(method).
%type-list-intersection-null-p
(method).
%type-list-intersection-null-p
(method).
%type-list-intersection-null-p
(method).
%type-list-intersection-null-p
(method).
%type-list-more-specific-p
(method).
%type-list-more-specific-p
(method).
%type-list-more-specific-p
(method).
%type-list-more-specific-p
(method).
%type-list-more-specific-p
(method).
%type-list-more-specific-p
(method).
%type-list-more-specific-p
(method).
compute-polymorphic-function-lambda-body
(method).
polymorphic-functions/polymorphic-function.lisp
types.lisp
(file).
extended-types
(module).
lambda-lists
(module).
polymorphic-functions
(system).
*compiler-macro-expanding-p*
(special variable).
find-polymorph
(function).
polymorph-apropos-list-type
(function).
polymorphic-function-type-lists
(function).
*environment*
(special variable).
*name*
(special variable).
add-or-update-polymorph
(function).
blockify-name
(function).
compiler-retrieve-polymorph
(function).
invalidate-polymorphic-function-lambda
(function).
polymorphic-function-effective-type-lists
(function).
register-polymorph
(function).
register-polymorph-compiler-macro
(function).
register-polymorphic-function
(function).
remove-polymorph
(function).
retrieve-polymorph-compiler-macro
(function).
update-polymorphic-function-documentation
(function).
update-polymorphic-function-lambda
(function).
polymorphic-functions/conditions.lisp
extended-types
(module).
polymorphic-functions
(system).
more-optimal-polymorph-inapplicable
(condition).
no-applicable-polymorph
(function).
no-applicable-polymorph
(condition).
suboptimal-polymorph-note
(condition).
arg-types
(reader method).
args
(reader method).
compile-time-return-type-mismatch
(condition).
condition-datum
(reader method).
defpolymorph-note
(condition).
effective-type-lists
(reader method).
form
(reader method).
form-type-failure
(condition).
lambda-list-has-changed
(condition).
more-optimal-type-list
(reader method).
name
(reader method).
name
(reader method).
name
(reader method).
name
(reader method).
new-lambda-list
(reader method).
no-applicable-polymorph/compiler-note
(condition).
no-applicable-polymorph/error
(condition).
not-a-ahp
(condition).
note-no-inline
(function).
note-null-env
(function).
polymorph-has-no-inline-lambda-body
(condition).
type-list
(reader method).
type-list
(reader method).
polymorphic-functions/compiler-macro.lisp
polymorphic-function.lisp
(file).
lambda-lists
(module).
conditions.lisp
(file).
polymorphic-functions
(system).
*disable-static-dispatch*
(special variable).
pflet
(macro).
pflet*
(macro).
pf-compiler-macro
(function).
pf-compiler-macro-function
(function).
polymorphic-functions/sbcl-transform.lisp
polymorphic-function.lisp
(file).
lambda-lists
(module).
conditions.lisp
(file).
polymorphic-functions
(system).
make-sbcl-transform-body
(function).
most-specialized-applicable-transform-p
(function).
polymorphic-functions/dispatch.lisp
polymorphic-function.lisp
(file).
lambda-lists
(module).
conditions.lisp
(file).
compiler-macro.lisp
(file).
sbcl-transform.lisp
(file).
polymorphic-functions
(system).
define-polymorphic-function
(macro).
defpolymorph
(macro).
defpolymorph-compiler-macro
(macro).
undefine-polymorphic-function
(function).
undefpolymorph
(function).
ensure-unambiguous-call
(function).
extract-declarations
(function).
null-env-compilation-warnings
(function).
recursive-function-p
(function).
with-muffled-compilation-warnings
(macro).
polymorphic-functions/misc-tests.lisp
dispatch.lisp
(file).
polymorphic-functions
(system).
define-compiled-function
(macro).
ignoring-error-output
(macro).
polymorphic-functions/benchmark.lisp
misc-tests.lisp
(file).
polymorphic-functions
(system).
time-it
(macro).
time-it/normalize
(macro).
Packages are listed by definition order.
polymorphic-functions.nonuser
polymorphic-functions
polymorphic-functions.extended-types
polymorphic-functions.defpackage
polymorphic-functions.nonuser
Package for internal use by POLYMORPHIC-FUNCTIONS not intended for direct use by users.
polymorphic-functions
alexandria
.
common-lisp
.
%deparameterize-type
(generic function).
*compiler-macro-expanding-p*
(special variable).
*disable-static-dispatch*
(special variable).
*parametric-type-symbol-predicates*
(special variable).
define-polymorphic-function
(macro).
defpolymorph
(macro).
defpolymorph-compiler-macro
(macro).
find-polymorph
(function).
more-optimal-polymorph-inapplicable
(condition).
no-applicable-polymorph
(function).
no-applicable-polymorph
(condition).
parametric-type-compile-time-lambda-body
(generic function).
parametric-type-run-time-lambda-body
(function).
pflet
(macro).
pflet*
(macro).
polymorph
(structure).
polymorph-apropos-list-type
(function).
polymorphic-function
(class).
polymorphic-function-type-lists
(function).
suboptimal-polymorph-note
(condition).
undefine-polymorphic-function
(function).
undefpolymorph
(function).
%lambda-list-type
(generic function).
%sbcl-transform-arg-lvars-from-lambda-list-form
(generic function).
%type-list-compatible-p
(generic function).
%type-list-intersection-null-p
(generic function).
%type-list-more-specific-p
(generic function).
*deparameterizer-alist*
(special variable).
*environment*
(special variable).
*lambda-list*
(special variable).
*lambda-list-typed-p*
(special variable).
*name*
(special variable).
*ocs-run-time-lambda-body-lambda-table*
(special variable).
*potential-type*
(special variable).
+compute-effective-lambda-list-doc+
(constant).
+compute-polymorphic-function-lambda-body-doc+
(constant).
+effective-lambda-list-doc-helper+
(constant).
+lambda-declarations-doc+
(constant).
+lambda-list-type-doc+
(constant).
+lambda-list-types+
(constant).
+optimize-speed-or-compilation-speed+
(constant).
+sbcl-transform-arg-lvars-from-lambda-list-form+
(constant).
+type-list-intersection-null-p+
(constant).
+type-list-more-specific-p+
(constant).
accepts-argument-of-type-p
(function).
add-or-update-polymorph
(function).
arg-types
(generic reader).
args
(generic reader).
blockify-name
(function).
catch-condition
(macro).
compile-time-return-type-mismatch
(condition).
compiler-applicable-p-lambda-body
(function).
compiler-retrieve-polymorph
(function).
compute-polymorphic-function-lambda-body
(generic function).
condition-datum
(generic reader).
copy-polymorph
(function).
copy-polymorph-parameter
(function).
copy-polymorph-parameters
(function).
copy-type-parameter
(function).
define-compiled-function
(macro).
define-lambda-list-helper
(macro).
definitive-intersection-null-p
(function).
defpolymorph-note
(condition).
deparameterize-type
(function).
effective-type-lists
(generic reader).
enhance-run-time-deparameterizer-lambda-body
(function).
enhanced-lambda-declarations
(function).
ensure-default-form-type
(function).
ensure-type-form
(function).
ensure-unambiguous-call
(function).
extended-subtypep
(function).
extended-type-list-p
(function).
extended-type-specifier
(type).
extract-declarations
(function).
form
(generic reader).
form-type
(function).
form-type-failure
(condition).
ftype-for-static-dispatch
(function).
function-name
(type).
ignoring-error-output
(macro).
intersection-null-p
(function).
invalidate-polymorphic-function-lambda
(function).
is-error
(macro).
lambda-declarations
(function).
lambda-list-has-changed
(condition).
lambda-list-type
(function).
lambda-list-type
(type).
lambda-list-type-p
(function).
list-named-lambda
(macro).
macroexpand-all
(function).
make-polymorph
(function).
make-polymorph-parameter
(function).
make-polymorph-parameters
(function).
make-polymorph-parameters-from-lambda-lists
(function).
make-sbcl-transform-body
(function).
make-type-parameter
(function).
map-polymorph-parameters
(function).
more-optimal-type-list
(generic reader).
most-specialized-applicable-transform-p
(function).
name
(generic reader).
new-lambda-list
(generic reader).
no-applicable-polymorph/compiler-note
(condition).
no-applicable-polymorph/error
(condition).
normalize-typed-lambda-list
(function).
normalize-untyped-lambda-list
(function).
not-a-ahp
(condition).
note-no-inline
(function).
note-null-env
(function).
nth-form-type
(function).
null-env-compilation-warnings
(function).
optim-debug
(symbol macro).
optim-safety
(symbol macro).
optim-slight-speed
(symbol macro).
optim-speed
(symbol macro).
orthogonally-specializing-type-compile-time-lambda-body
(function).
parametric-type-parameters
(function).
parametric-type-specifier
(type).
parametric-type-specifier-p
(function).
parametric-type-specifiers
(function).
parametric-type-specifiers-are-significant-p
(function).
parametric-type-symbol-p
(function).
pf-compiler-macro
(function).
pf-compiler-macro-function
(function).
policy-quality
(function).
polymorph-compiler-applicable-p-lambda
(reader).
(setf polymorph-compiler-applicable-p-lambda)
(writer).
polymorph-compiler-macro-lambda
(reader).
(setf polymorph-compiler-macro-lambda)
(writer).
polymorph-compiler-macro-source
(reader).
(setf polymorph-compiler-macro-source)
(writer).
polymorph-documentation
(reader).
(setf polymorph-documentation)
(writer).
polymorph-effective-lambda-list
(function).
polymorph-effective-type-list
(reader).
(setf polymorph-effective-type-list)
(writer).
polymorph-has-no-inline-lambda-body
(condition).
polymorph-inline-lambda-body
(reader).
(setf polymorph-inline-lambda-body)
(writer).
polymorph-inline-p
(reader).
(setf polymorph-inline-p)
(writer).
polymorph-lambda-list-type
(reader).
(setf polymorph-lambda-list-type)
(writer).
polymorph-more-optimal-type-list
(reader).
(setf polymorph-more-optimal-type-list)
(writer).
polymorph-name
(reader).
(setf polymorph-name)
(writer).
polymorph-p
(function).
polymorph-parameter
(structure).
polymorph-parameter-p
(function).
polymorph-parameters
(reader).
(setf polymorph-parameters)
(writer).
polymorph-parameters
(structure).
polymorph-parameters-keyword
(reader).
(setf polymorph-parameters-keyword)
(writer).
polymorph-parameters-max-args
(reader).
(setf polymorph-parameters-max-args)
(writer).
polymorph-parameters-min-args
(reader).
(setf polymorph-parameters-min-args)
(writer).
polymorph-parameters-optional
(reader).
(setf polymorph-parameters-optional)
(writer).
polymorph-parameters-p
(function).
polymorph-parameters-required
(reader).
(setf polymorph-parameters-required)
(writer).
polymorph-parameters-rest
(reader).
(setf polymorph-parameters-rest)
(writer).
polymorph-parameters-validator-form
(reader).
(setf polymorph-parameters-validator-form)
(writer).
polymorph-return-type
(reader).
(setf polymorph-return-type)
(writer).
polymorph-runtime-applicable-p-form
(reader).
(setf polymorph-runtime-applicable-p-form)
(writer).
polymorph-source
(reader).
(setf polymorph-source)
(writer).
polymorph-static-dispatch-name
(reader).
(setf polymorph-static-dispatch-name)
(writer).
polymorph-suboptimal-note
(reader).
(setf polymorph-suboptimal-note)
(writer).
polymorph-type-list
(reader).
(setf polymorph-type-list)
(writer).
polymorph-typed-lambda-list
(reader).
(setf polymorph-typed-lambda-list)
(writer).
polymorphic-function-default
(generic reader).
polymorphic-function-dispatch-declaration
(generic reader).
(setf polymorphic-function-dispatch-declaration)
(generic writer).
polymorphic-function-documentation
(generic reader).
(setf polymorphic-function-documentation)
(generic writer).
polymorphic-function-effective-lambda-list
(generic reader).
polymorphic-function-effective-type-lists
(function).
polymorphic-function-invalidated-p
(generic reader).
(setf polymorphic-function-invalidated-p)
(generic writer).
polymorphic-function-lambda-list
(generic reader).
polymorphic-function-lambda-list-type
(generic reader).
polymorphic-function-make-effective-lambda-list
(function).
polymorphic-function-name
(generic reader).
polymorphic-function-polymorphs
(generic reader).
(setf polymorphic-function-polymorphs)
(generic writer).
polymorphic-function-source
(generic reader).
potential-type-of-lambda-list
(function).
pp-default-value-form
(reader).
(setf pp-default-value-form)
(writer).
pp-form-in-pf
(reader).
(setf pp-form-in-pf)
(writer).
pp-local-name
(reader).
(setf pp-local-name)
(writer).
pp-supplied-p-name
(reader).
(setf pp-supplied-p-name)
(writer).
pp-type-parameters
(reader).
(setf pp-type-parameters)
(writer).
pp-value-effective-type
(reader).
(setf pp-value-effective-type)
(writer).
pp-value-type
(reader).
(setf pp-value-type)
(writer).
recursive-function-p
(function).
register-polymorph
(function).
register-polymorph-compiler-macro
(function).
register-polymorphic-function
(function).
remove-polymorph
(function).
retrieve-polymorph-compiler-macro
(function).
return-type-count-mismatch
(condition).
return-type-count-mismatch/warning
(condition).
return-type-mismatch
(condition).
return-type-mismatch/error
(condition).
return-type-mismatch/warning
(condition).
run-time-applicable-p-form
(function).
sbcl-transform-arg-lvars-from-lambda-list-form
(function).
search-token-in-equivalent-tree
(function).
setf-function-name-p
(function).
simple-deparameterize-type
(function).
subtypep-not-known
(condition).
subtypep-using-subtypep-alist
(function).
time-it
(macro).
time-it/normalize
(macro).
translate-body
(function).
traverse-tree
(function).
type-list
(generic reader).
type-list
(type).
type-list-compatible-p
(function).
type-list-intersection-null-p
(function).
type-list-more-specific-p
(function).
type-list-order-keywords
(function).
type-list-p
(function).
type-parameter
(structure).
type-parameter-compile-time-deparameterizer-lambda
(reader).
(setf type-parameter-compile-time-deparameterizer-lambda)
(writer).
type-parameter-compile-time-deparameterizer-lambda-body
(reader).
(setf type-parameter-compile-time-deparameterizer-lambda-body)
(writer).
type-parameter-name
(reader).
(setf type-parameter-name)
(writer).
type-parameter-p
(function).
type-parameter-run-time-deparameterizer-lambda-body
(reader).
(setf type-parameter-run-time-deparameterizer-lambda-body)
(writer).
type-parameters-from-parametric-type
(function).
typed-lambda-list
(type).
typed-lambda-list-p
(function).
typexpand
(function).
untyped-lambda-list
(function).
untyped-lambda-list
(type).
untyped-lambda-list-p
(function).
update-polymorphic-function-documentation
(function).
update-polymorphic-function-lambda
(function).
valid-parameter-name-p
(function).
with-muffled-compilation-warnings
(macro).
polymorphic-functions.extended-types
common-lisp
.
*extended-subtypep-functions*
(special variable).
*subtypep-alist*
(special variable).
cl-type-specifier-p
(function).
definitive-subtypep
(function).
extended-type-specifier-p
(function).
subtypep
(compiler macro).
subtypep
(function).
supertypep
(compiler macro).
supertypep
(function).
type-pair-=
(function).
type-specifier-p
(function).
type=
(function).
typep
(compiler macro).
typep
(function).
upgrade-extended-type
(function).
*extended-type-specifiers*
(special variable).
upgraded-extended-type
(generic function).
polymorphic-functions.defpackage
alexandria
.
common-lisp
.
defpackage
(macro).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Bound to T inside the DEFINE-COMPILER-MACRO defined in DEFINE-POLYMORPH
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.
A list of function-designators that will be called by EXTENDED-SUBTYPEP.
A type-specifier in the type-list of a polymorph qualifies as parametric-type-specifier if there exists a symbol in the list, which when tested against the functions (predicates) in this list, returns non-NIL for at least one predicate
An ALIST mapping a (CONS TYPE1 TYPE2) to a boolean indicating whether TYPE1 is a subtype of TYPE2.
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.
Like CL:DEFPACKAGE but provides a (:SHADOWING-IMPORT-EXPORTED-SYMBOLS {package}*) option. Expects such package to be already defined.
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 (INLINE T)
STATIC-DISPATCH-NAME
INVALIDATE-PF
MORE-OPTIMAL-TYPE-LIST
SUBOPTIMAL-NOTE)
- Possible values for INLINE are T, NIL and :MAYBE
- 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.
- SUBOPTIMAL-NOTE and MORE-OPTIMAL-TYPE-LIST are useful for signalling that the
POLYMORPH chosen for static-dispatch, inlining, or compiler-macro is
not the most optimal.
It is recommended that SUBOPTIMAL-NOTE should be the name of a subclass of
SUBOPTIMAL-POLYMORPH-NOTE - the condition class should have a slot to
accept the TYPE-LIST of the currently chosen POLYMORPH
**Note**:
- INLINE T or :MAYBE can result in infinite expansions for recursive polymorphs.
Proceed at your own risk.
- Also, because inlining results in type declaration upgradation for purposes
of subtype polymorphism, it is recommended to not mutate the variables used
in the lambda list; the consequences of mutation are undefined.
Example TYPE-LISTs:
(NUMBER NUMBER)
(STRING &OPTIONAL INTEGER)
(STRING &KEY (:ARG INTEGER))
(NUMBER &REST)
Like LET but when expanded inside PF-COMPILER-MACRO, this uses information in *DEPARAMETERIZER-ALIST* to deparameterize types.
Like LET* but when expanded inside PF-COMPILER-MACRO, this uses information in *DEPARAMETERIZER-ALIST* to deparameterize types.
Returns true if TYPE-SPECIFIER is a valid type specfiier.
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.
Returns T if OBJECT is a type specifier implemented using CTYPE and is a tree containing a list starting with an element in *EXTENDED-TYPE-SPECIFIERS*
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.
Like CL:SUBTYPEP but allows PARAMETRIC-TYPE-SPECIFIER as well as EXTENDED-TYPE-SPECIFIERs
COMPILER-MACROEXPANDs to CL:SUBTYPEP if both types are constant objects and
neither is a EXTENDED-TYPE-SPECIFIER.
Each pair is a CONS of two types.
Like CL:TYPEP but allows TYPE to be a PARAMETRIC-TYPE-SPECIFIER or EXTENDED-TYPE-SPECIFIER. COMPILER-MACROEXPANDs to CL:TYPEP if TYPE is a constant object not a EXTENDED-TYPE-SPECIFIER.
Remove the POLYMORPH(-WRAPPER) defined by DEFINE-POLYMORPH CL:FMAKUNBOUND will be insufficient, because polymorphic-functions also have a compiler macro defined for them. Additionally, on SBCL, they may also have transforms associated with them.
Remove the POLYMORPH associated with NAME with TYPE-LIST
%DEPARAMETERIZE-TYPE is called when the argument to DEPARAMETERIZE-TYPE is a list.
(eql function)
) fun-type-specifier &optional env) ¶(eql values)
) type-specifier &optional env) ¶(eql member)
) type-specifier &optional env) ¶(eql eql)
) type-specifier &optional env) ¶(eql or)
) type-specifier &optional env) ¶(eql and)
) type-specifier &optional env) ¶polymorphic-function
) stream) ¶(quote (error "more-optimal-type-list not specified"))
:more-optimal-type-list
This slot is read-only.
condition
.
(quote (error "name not specified"))
:name
name
.
This slot is read-only.
(quote (error "args not specified"))
:args
args
.
This slot is read-only.
(quote (error "effective-type-lists not specified"))
:effective-type-lists
This slot is read-only.
optimization-failure-note
.
- 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
structure-object
.
common-lisp
.
(or null string)
(error "name must be supplied!")
polymorphic-functions::polymorph-parameters
(error "polymorph-parameters must be supplied")
funcallable-standard-object
.
gf-lock
.
polymorphic-function-default
.
(setf polymorphic-function-dispatch-declaration)
.
polymorphic-function-dispatch-declaration
.
(setf polymorphic-function-documentation)
.
polymorphic-function-documentation
.
polymorphic-function-effective-lambda-list
.
(setf polymorphic-function-invalidated-p)
.
polymorphic-function-invalidated-p
.
polymorphic-function-lambda-list
.
polymorphic-function-lambda-list-type
.
polymorphic-function-name
.
(setf polymorphic-function-polymorphs)
.
polymorphic-function-polymorphs
.
polymorphic-function-source
.
print-object
.
(error "name must be supplied.")
:name
This slot is read-only.
:source
This slot is read-only.
list
(error "lambda-list must be supplied.")
:lambda-list
This slot is read-only.
list
(error "effective-lambda-list must be supplied.")
:effective-lambda-list
This slot is read-only.
polymorphic-functions::lambda-list-type
(error "lambda-list-type must be supplied.")
:lambda-list-type
This slot is read-only.
polymorphic-functions::+optimize-speed-or-compilation-speed+
:dispatch-declaration
function
(error ":default must be supplied")
:default
This slot is read-only.
common-lisp
.
(or string null)
:documentation
(Re)Bound in PF-COMPILER-MACRO, modified by ENHANCED-LAMBDA-DECLARATIONS.
Bound inside the DEFINE-COMPILER-MACRO defined in DEFINE-POLYMORPH for use by functions like TYPE-LIST-APPLICABLE-P
LAMBDA-LIST of the typed function being compiled. Bound inside the functions defined by POLYMORPHS::DEFINE-LAMBDA-LIST-HELPER
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
NAME of the typed function being compiled. Bound inside DEFINE-POLYMORPH
POTENTIAL-TYPE of the LAMBDA-LIST of the typed function being compiled. Bound inside the functions defined by POLYMORPHS::DEFINE-LAMBDA-LIST-HELPER
ACTION-FORM should be defined in terms of *POTENTIAL-TYPE* and *LAMBDA-LIST* variables.
Returns T if the POLYMOMRPH with identical effective-type-list existed, otherwise returns NIL.
Returns two values: a form that has ASSERTs with SIMPLE-TYPE-ERROR to check the type as well as the type enhanced using TYPE.
Returns two values: DECLARATIONS and remaining BODY
If DOCUMENTATION is non-NIL, returns three values: DECLARATIONS and remaining BODY and DOC-STRING
Returns two values
- The first value is the declaration for the actual polymorph parameters
- The second value is the IGNORABLE declaration for the type parameters
Returns the type of LAMBDA-LIST from amongst +LAMBDA-LIST-TYPES+. Raises an ERROR otherwise.
Checks whhether the OBJECT is in +LAMBDA-LIST-TYPES+
Returns T if there exist at least two parametric-type-specifiers in the type-list which have type parameters that depend on each other.
Returns 4 values:
- The first value is the LAMBDA-LIST suitable for constructing polymorph’s lambda
- The second value is the TYPE-PARAMETER binding list
- The third value is the TYPE-LIST corresponding to the polymorph
- The fourth value is the EFFECTIVE-TYPE-LIST corresponding to the polymorph
name
.
rest
.
Returns a FORM that can process the parameters of SB-C:DEFTRANSFORM to form an argument lvar alist list suitable for further processing.
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.
Returns T if the given TYPE-LIST is compatible with the given UNTYPED-LAMBDA-LIST.
Returns T if there exist argument lists that are compatible with both TYPE-LIST-1 and 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.
name
.
Returns a list oF TYPE-PARAMETERS
Checks whether LAMBDA-LIST is of type POTENTIAL-LAMBDA-LIST-TYPE
(eql polymorphic-functions::required-key)
) (lambda-list list
)) ¶(eql polymorphic-functions::required-optional)
) (lambda-list list
)) ¶(eql polymorphic-functions::required)
) (lambda-list list
)) ¶Returns a FORM that can process the parameters of SB-C:DEFTRANSFORM to form an argument lvar alist list suitable for further processing.
(eql rest)
) (untyped-lambda-list list
)) ¶(eql polymorphic-functions::required-key)
) (untyped-lambda-list list
)) ¶(eql polymorphic-functions::required-optional)
) (untyped-lambda-list list
)) ¶(eql polymorphic-functions::required)
) (untyped-lambda-list list
)) ¶(eql rest)
) (type-list list
) (untyped-lambda-list list
)) ¶(eql polymorphic-functions::required-key)
) (type-list list
) (untyped-lambda-list list
)) ¶(eql polymorphic-functions::required-optional)
) (type-list list
) (untyped-lambda-list list
)) ¶(eql polymorphic-functions::required)
) (type-list list
) (untyped-lambda-list list
)) ¶Returns T if there exist argument lists that are compatible with both TYPE-LIST-1 and TYPE-LIST-2
(eql polymorphic-functions::required-key)
) (type-2 (eql polymorphic-functions::required)
) list-1 list-2) ¶(eql polymorphic-functions::required-key)
) (type-2 (eql rest)
) list-1 list-2) ¶(eql polymorphic-functions::required)
) (type-2 (eql rest)
) list-1 list-2) ¶(eql polymorphic-functions::required)
) (type-2 (eql polymorphic-functions::required-key)
) list-1 list-2) ¶(eql rest)
) (type-2 (eql polymorphic-functions::required-key)
) list-1 list-2) ¶(eql rest)
) (type-2 (eql polymorphic-functions::required)
) list-1 list-2) ¶(eql rest)
) (type-2 (eql rest)
) list-1 list-2) ¶(eql polymorphic-functions::required-key)
) (type-2 (eql polymorphic-functions::required-key)
) list-1 list-2) ¶(eql polymorphic-functions::required-optional)
) (type-2 (eql polymorphic-functions::required-optional)
) list-1 list-2) ¶(eql polymorphic-functions::required)
) (type-2 (eql polymorphic-functions::required)
) list-1 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.
(eql polymorphic-functions::required)
) (type-2 (eql polymorphic-functions::required-key)
) list-1 list-2) ¶(eql polymorphic-functions::required-key)
) (type-2 (eql polymorphic-functions::required)
) list-1 list-2) ¶(eql polymorphic-functions::required-key)
) (type-2 (eql rest)
) list-1 list-2) ¶(eql rest)
) (type-2 (eql polymorphic-functions::required-key)
) list-1 list-2) ¶(eql polymorphic-functions::required)
) (type-2 (eql rest)
) list-1 list-2) ¶(eql rest)
) (type-2 (eql polymorphic-functions::required)
) list-1 list-2) ¶(eql rest)
) (type-2 (eql rest)
) list-1 list-2) ¶(eql polymorphic-functions::required-key)
) (type-2 (eql polymorphic-functions::required-key)
) list-1 list-2) ¶(eql polymorphic-functions::required-optional)
) (type-2 (eql polymorphic-functions::required-optional)
) list-1 list-2) ¶(eql polymorphic-functions::required)
) (type-2 (eql polymorphic-functions::required)
) list-1 list-2) ¶no-applicable-polymorph
)) ¶no-applicable-polymorph
)) ¶args
.
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.
(eql rest)
) (untyped-lambda-list list
) declaration &optional invalidated-p) ¶(eql polymorphic-functions::required-key)
) (untyped-lambda-list list
) declaration &optional invalidated-p) ¶(eql polymorphic-functions::required-optional)
) (effective-lambda-list list
) declaration &optional invalidated-p) ¶(eql polymorphic-functions::required)
) (untyped-lambda-list list
) declaration &optional invalidated-p) ¶defpolymorph-note
)) ¶no-applicable-polymorph
)) ¶form-type-failure
)) ¶form
.
more-optimal-polymorph-inapplicable
)) ¶polymorph-has-no-inline-lambda-body
)) ¶name
.
no-applicable-polymorph
)) ¶name
.
lambda-list-has-changed
)) ¶name
.
lambda-list-has-changed
)) ¶polymorphic-function
)) ¶automatically generated reader method
polymorphic-function
)) ¶automatically generated reader method
polymorphic-function
)) ¶automatically generated writer method
polymorphic-function
)) ¶automatically generated reader method
polymorphic-function
)) ¶automatically generated writer method
polymorphic-function
)) ¶automatically generated reader method
polymorphic-function
)) ¶automatically generated reader method
polymorphic-function
)) ¶automatically generated writer method
polymorphic-function
)) ¶automatically generated reader method
polymorphic-function
)) ¶automatically generated reader method
polymorphic-function
)) ¶automatically generated reader method
name
.
polymorphic-function
)) ¶automatically generated reader method
polymorphic-function
)) ¶automatically generated writer method
polymorphic-function
)) ¶automatically generated reader method
suboptimal-polymorph-note
)) ¶polymorph-has-no-inline-lambda-body
)) ¶Used within POLYMORPHIC-FUNCTIONS to prepare a (CL:DECLARE (CL:TYPE ...)) statement for further type-based optimization by the compiler. This is similar to CL:UPGRADED-ARRAY-ELEMENT-TYPE.
(eql polymorphic-functions::type-like)
)) ¶polymorphic-function
)) ¶automatically generated reader method
sb-pcl
.
note
.
:datum
This slot is read-only.
optimization-failure-note
.
form
.
error
.
(quote (error "name must be supplied!"))
:name
name
.
This slot is read-only.
(quote (error "new lambda list must be supplied!"))
:new-lambda-list
This slot is read-only.
no-applicable-polymorph
.
note
.
error
.
no-applicable-polymorph
.
return-type-count-mismatch
.
warning
.
error
.
return-type-mismatch
.
:expected
return-type-mismatch
.
warning
.
:declared
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
structure-object
.
structure-object
.
common-lisp
.
common-lisp
.
RUN-TIME-DEPARAMETERIZERS-LAMBDA-BODY :
A lambda *expression*, which when compiled produces a one argument function.
The function is called at run-time with the value bound to the parameter
(not type-parameter) to obtain the value of the TYPE-PARAMETER.
COMPILE-TIME-DEPARAMETERIZER-LAMBDA-BODY :
A lambda *expression*, which when compiled produces a one argument function.
The function is called at compile-time with the type of the value bound
to the parameter (not type-parameter) to obtain the value of the TYPE-PARAMETER.
These type specifiers are implemented using CTYPE and are a tree containing a list starting with an element in *EXTENDED-TYPE-SPECIFIERS*
Ref: http://www.lispworks.com/documentation/HyperSpec/Body/26_glo_f.htm#function_name
Examples:
((a integer) (b integer))
((a integer) &optional ((b integer) 0 b-supplied-p))
Examples:
(a b)
(a b &optional c)
Non-examples:
((a string))
Jump to: | %
(
A B C D E F G I L M N O P R S T U V W |
---|
Jump to: | %
(
A B C D E F G I L M N O P R S T U V W |
---|
Jump to: | %
*
+
A C D E F I K L M N O P R S T V |
---|
Jump to: | %
*
+
A C D E F I K L M N O P R S T V |
---|
Jump to: | B C D E F L M N P R S T U |
---|
Jump to: | B C D E F L M N P R S T U |
---|