The type-templates Reference Manual

This is the type-templates Reference Manual, version 4.0.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 07:58:40 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 type-templates

A library for defining and expanding templated functions

Maintainer

Yukari Hafner <>

Author

Yukari Hafner <>

Home Page

https://Shinmera.github.io/type-templates/

Source Control

(GIT https://github.com/Shinmera/type-templates.git)

Bug Tracker

https://github.com/Shinmera/type-templates/issues

License

zlib

Version

4.0.0

Dependencies
  • documentation-utils (system).
  • alexandria (system).
  • form-fiddle (system).
Source

type-templates.asd.

Child Components

3 Files

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


3.1 Lisp


3.1.1 type-templates/type-templates.asd

Source

type-templates.asd.

Parent Component

type-templates (system).

ASDF Systems

type-templates.


3.1.2 type-templates/package.lisp

Source

type-templates.asd.

Parent Component

type-templates (system).

Packages

org.shirakumo.type-templates.


3.1.3 type-templates/toolkit.lisp

Dependency

package.lisp (file).

Source

type-templates.asd.

Parent Component

type-templates (system).

Public Interface
Internals

3.1.4 type-templates/type.lisp

Dependency

toolkit.lisp (file).

Source

type-templates.asd.

Parent Component

type-templates (system).

Public Interface
Internals

3.1.5 type-templates/template.lisp

Dependency

type.lisp (file).

Source

type-templates.asd.

Parent Component

type-templates (system).

Public Interface
Internals

3.1.6 type-templates/documentation.lisp

Dependency

template.lisp (file).

Source

type-templates.asd.

Parent Component

type-templates (system).


4 Packages

Packages are listed by definition order.


4.1 org.shirakumo.type-templates

Source

package.lisp.

Use List

common-lisp.

Public Interface
Internals

5 Definitions

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


5.1 Public Interface


5.1.1 Macros

Macro: define-alias (fun args &body expansion)

Define a simple alias function.

EXPANSION should evaluate to a form that is used in the function body. This is similar to defining a compiler-macro, except that it tries to automatically define both a compiler macro and a regular function definition at once.

Package

org.shirakumo.type-templates.

Source

template.lisp.

Macro: define-dependent-dispatch-type (name (type-list i &rest args) &body body)

Defines a function that can be used to compute more complex dependent types in templated dispatch function definitions.

TYPE-LIST is bound to the list of ARGTYPEs in the expansion. I is
bound to the index of the current dependent dispatch type to
expand. ARGS are bound to the respective arguments of the call.

BODY should return a concrete type to use in place of the dependent
type expression, or NIL if there is no dependent type and the
expansion should be eliminated.

See DEFINE-TEMPLATED-DISPATCH

Package

org.shirakumo.type-templates.

Source

template.lisp.

Macro: define-slot-accessor (template-type name slot)

Shorthand to define a dispatcher for an accessor of a given slot of a template type.

See DEFINE-TYPE-DISPATCH
See TEMPLATE-TYPE (type)
See INSTANCES
See SLOT

Package

org.shirakumo.type-templates.

Source

template.lisp.

Macro: define-template (name &rest args)

Define a new template function.

NAME will be used as the prefix for all emitted template instances. NAME will be concatenated together with DEFINE- to name the macro that is used to emit template instances.

The structure of a DEFINE-TEMPLATE use should be as follows:

(define-template NAME TEMPLATE-ARGUMENT+ INSTANCE-LAMBDA-LIST BODY*)

TEMPLATE-ARGUMENTS should be symbols naming the variables bound to the template arguments during BODY. INSTANCE-LAMBDA-LIST should be the lambda-list of an emitted function instance. BODY should be any number of forms which return a list of body forms to emit into the resulting function instance.

The first of those forms may be a DECLARE expression, with the following special declarations:

TYPE — Used to declare types of the function instance’s arguments. Together with the RETURN-TYPE these will be used to create an FTYPE declaration for the function instance. RETURN-TYPE — The function instance will declare this as the type of the return value.
INLINE — The function instance will be declared inline

The resulting definition macro will take the template arguments as arguments as well as an optional name for the resulting function instance. If no name is given, the name is automatically composed out off the template name and the template arguments, separated by a slash.

A local function is bound during evaluation of BODY named TEMPLATE-UNFULFILLABLE. When called, a TEMPLATE-UNFULFILLABLE error is signalled to signify that the given template arguments are not a valid combination.

See COMPOSE-NAME
See DEFINE-TEMPLATED-DISPATCH

Package

org.shirakumo.type-templates.

Source

template.lisp.

Macro: define-template-type (name template-args name-constructor &body body)

Define a new template type.

NAME will be concatenated together with -TYPE and interned into the local package to produce the name of the template type.
NAME will also be concatenated together with DEFINE- to name a macro used to define instances of the template type.

TEMPLATE-ARGS should be a list of arguments the template accepts. NAME-CONSTRUCTOR should be a form that, when evaluated, returns a symbol naming the type instance for the given template arguments.

BODY may accept the following keyword arguments:
:INCLUDE — Specify another template-type to use as the supertype. This is done via a list that should be composed out of the template-type name and the template arguments to supply for that supertype. You may use the name of local template arguments.

The rest of the BODY should be a number of forms. The forms are evaluated in an environment where the FIELD function is bound and should use it to emit information about the slots on the resulting type instance.

See FIELD
See TEMPLATE-TYPE (type)
See DEFINE-TYPE-INSTANCE

Package

org.shirakumo.type-templates.

Source

type.lisp.

Macro: define-templated-dispatch (name args &body body)

Define a dispatcher function using type template information.

BODY accepts the following keyword arguments: :IGNORE-TEMPLATE-TYPES — A list of template type names that should be ignored for the resulting template invocation’s template arguments.

The rest of the body should have the following structure:

EXPANSIONS ::= EXPANSION*
EXPANSION ::= ((ARGTYPE*) TEMPLATE TEMPLATE-ARG*)
| ((ARGTYPE*) (TEMPLATE TEMPLATE-ARG*) ARG*) ARGTYPE ::= TEMPLATE-TYPE
| REFERENCE
| DEPENDENT
| REF-ARGUMENT
TEMPLATE-TYPE — The name of a template-type, for each of the instances of which this expansion will be instantiated. REFERENCE — A number duplicating the concrete type at that position of the ARGTYPE list.
DEPENDENT ::= #’(DEPENDENT-NAME ARG*)
ALIAS-NAME — The name of a dependent dispatch type function. REF-ARGUMENT — A vector of two elements, the first being the position of the template type instance to reference in the ARGTYPE list, and the second being the number of the template argument of that template type instance to use.
TEMPLATE — The name of the template to call.
TEMPLATE-ARG — Additional template arguments that will be prepended before the combined template arguments of the TEMPLATE-TYPE instance expanded for this EXPANSION. Note that this includes *all* template arguments of all template-type instances in the ARGTYPES list that aren’t excluded via the IGNORE-TEMPLATE-TYPES option above.
ARG — An argument to pass to the function call.

The effective function call will be computed based on the template name and the template arguments, inserting a slash between each as per the standard naming convention.

See DEFINE-TEMPLATE
See DEFINE-TYPE-DISPATCH
See DEFINE-DEPENDENT-DISPATCH-TYPE
See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

template.lisp.

Macro: define-type-alias (name &rest types)

Define an alias for a number of template type instances.

NAME will name a lisp-type of NAME.
NAME will also be concatenated together with -TYPE to name a TEMPLATE-TYPE that holds the type instances.

See TYPE-ALIAS

Package

org.shirakumo.type-templates.

Source

type.lisp.

Macro: define-type-dispatch (name args &body expansions)

Define a dispatcher function.

EXPANSIONS should have the following structure:

EXPANSIONS ::= EXPANSION*
EXPANSION ::= ((ARGTYPE*) RETTYPE EXPANSION)
ARGTYPE — A lisp-type for the corresponding lambda-list variable. If the number of argtypes is shorter than the number of variables in the lambda-list, the remainder are automatically bound to NULL.
RETTYPE — A lisp-type for the type of the value returned in this expansion.
EXPANSION — A form that the type dispatcher will expand into should this branch of argument types match.

See DEFINE-TEMPLATED-DISPATCH

Package

org.shirakumo.type-templates.

Source

template.lisp.

Macro: define-type-instance ((template-type name) &body args)

Define an instance of a template type using the specified name and template arguments.

See COMPUTE-TYPE-INSTANCE-DEFINITION
See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Macro: define-type-with-converter (name base-type (value) &body conversion)

Define an alias for a longer lisp type with a conversion function to coerce values to fit within that type.

BASE-TYPE should be the type this is an alias for, and CONVERSION the
body of the function used to coerce any value to the requested type.

Package

org.shirakumo.type-templates.

Source

toolkit.lisp.

Macro: do-combinations (template &rest argument-combinations)

Expand all possible combinations of arguments into forms.

This will try to expand into all permutations off template arguments for the given template-type for which the template does not signal a TEMPLATE-UNFULFILLABLE error.

See DEFINE-TEMPLATE
See TEMPLATE-UNFULFILLABLE
See ENUMERATE-COMBINATIONS

Package

org.shirakumo.type-templates.

Source

template.lisp.

Macro: do-instance-combinations (template &rest type-templates)

Expand all lisp-type names for instances of the given template-types.

This is useful if the template accepts type instance names for template-arguments.

See TEMPLATE-TYPE (type)
See DO-COMBINATIONS

Package

org.shirakumo.type-templates.

Source

template.lisp.

Macro: do-type-combinations (type template &rest other-template-args)

Expand all possible type arguments for instances of the given template-type.

OTHER-TEMPLATE-ARGS can be further permutation lists that precede the arguments of the template type instances.

This is useful if the template accepts the same template arguments as the template type.

See TEMPLATE-TYPE (type)
See DO-COMBINATIONS

Package

org.shirakumo.type-templates.

Source

template.lisp.


5.1.2 Ordinary functions

Function: compose-name (separator &rest parts)

Compose a symbol out of parts.

The symbol will be interned in the current package.
Separator should be a string designator that will be injected between each part. Each part otherwise is added to the symbol name via PRINC-TO-STRING.

See CL:*PACKAGE*
See FORMAT-NAME

Package

org.shirakumo.type-templates.

Source

toolkit.lisp.

Function: enumerate-combinations (&rest combinations)

Returns a list of all possible permutations of the given sets of items.

Eg: (enumerate-combinations ’(a b) ’(1 2))
=> ((a 1) (a 2) (b 1) (b 2))

Package

org.shirakumo.type-templates.

Source

toolkit.lisp.

Function: format-name (format &rest args)

Format a new symbol.

The symbol will be interned in the current package.
The name is case-shuffled to the current readtable case after formatting.

See CL:*PACKAGE*
See CL:FORMAT
See COMPOSE-NAME

Package

org.shirakumo.type-templates.

Source

toolkit.lisp.

Function: realized-slot-p (slot)

Returns true if the slot is realised on the structure and holds a value, and isn’t constant.

See SLOT (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.


5.1.3 Generic functions

Generic Reader: accessor (object)

Returns the name of the accessor function for the slot.

See SLOT (type)

Package

org.shirakumo.type-templates.

Methods
Reader Method: accessor ((slot slot))

automatically generated reader method

Source

type.lisp.

Target Slot

accessor.

Generic Function: compute-slots (template-type)

Returns a list of all SLOT instances for the type instance.

This returns all slots, including inherited ones.

See SLOT (type)
See SLOTS
See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Method Combination

append.

Options

:most-specific-last

Generic Function: compute-type-instance-definition (template-type)

Computes the form used to define a type instance of the template type.

Users may add methods to this that include the results of CALL-NEXT-METHOD in their return value, in order to append extra definitions, such as for PRINT-OBJECT.

See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Methods
Method: compute-type-instance-definition ((type template-type))
Generic Reader: constructor (template-type)

Returns the name of the constructor function for the type instance.

See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Methods
Reader Method: constructor ((template-type template-type))

automatically generated reader method

Target Slot

constructor.

Generic Function: direct-slots (template-type)

Returns the list of SLOT instances for the type instance.

This only returns slots that were defined directly for this instance, excluding inherited slots.

See SLOT (type)
See SLOTS
See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Generic Function: instances (template-type)

Returns a list of all instances of the template type.

See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Methods
Reader Method: instances ((type-alias type-alias))

automatically generated reader method

Target Slot

instances.

Method: instances ((type symbol))
Method: instances ((type class))
Generic Writer: (setf instances) (object)
Package

org.shirakumo.type-templates.

Methods
Writer Method: (setf instances) ((type-alias type-alias))

automatically generated writer method

Source

type.lisp.

Target Slot

instances.

Generic Function: lisp-type (template-type)

Returns the name of the lisp-type for the type instance.

See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Methods
Reader Method: lisp-type ((template-type template-type))

automatically generated reader method

Target Slot

lisp-type.

Reader Method: lisp-type ((slot slot))

automatically generated reader method

Target Slot

lisp-type.

Method: lisp-type (type)
Generic Reader: names (object)

Returns the list of alternate names for the slot.

See SLOT (type)

Package

org.shirakumo.type-templates.

Methods
Reader Method: names ((slot slot))

automatically generated reader method

Source

type.lisp.

Target Slot

names.

Generic Function: place (template-type qualifier)

Returns the name of the place for the given slot.

QUALIFIER can either be a SLOT instance or the name of a slot on the TEMPLATE-TYPE.

See SLOT
See PLACE-FORM
See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Methods
Method: place ((type template-type) qualifier)
Generic Function: place-form (template-type qualifier var)

Returns an accessor form of the place for the given slot.

This form can be used to read or SETF the value off the slot on the instance bound to the symbol passed in VAR.

See SLOT
See PLACE
See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Methods
Method: place-form ((type template-type) qualifier var)
Method: place-form ((type template-type) (slot slot) var)
Generic Function: place-type (template-type qualifier)

Returns the lisp-type of the value stored in the slot.

See SLOT
See PLACE
See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Methods
Method: place-type ((type template-type) qualifier)
Method: place-type ((type template-type) (slot slot))
Generic Reader: read-only (object)

Returns true if the slot can only be read, but not set.

See SLOT (type)

Package

org.shirakumo.type-templates.

Methods
Reader Method: read-only ((slot slot))

automatically generated reader method

Source

type.lisp.

Target Slot

read-only.

Generic Function: slot (template-type qualifier)

Find a slot with the given qualifier on the type instance.

If the slot does not exist, an error of type NO-SUCH-SLOT is signalled.

See NO-SUCH-SLOT (type)
See SLOT (type)
See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Methods
Method: slot ((type template-type) qualifier)
Generic Reader: slots (template-type)

Returns the list of SLOT instances for the type instance.

This returns all slots, including inherited ones.

See SLOT (type)
See DIRECT-SLOTS
See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Methods
Reader Method: slots ((template-type template-type))

automatically generated reader method

Target Slot

slots.

Generic Function: template-arguments (template-type)

Returns the arguments of the template instance or template type.

See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Methods
Method: template-arguments ((alias type-alias))
Method: template-arguments ((object type-object))
Method: template-arguments ((name symbol))
Method: template-arguments ((type template-type))
Generic Function: template-type (type)

Returns the TEMPLATE-TYPE named by the given symbol.

See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Methods
Method: template-type ((object type-object))
Source

type.lisp.

Method: template-type ((name symbol))
Source

type.lisp.

Method: template-type ((type template-type))
Source

type.lisp.

Generic Function: type-instance (base-type &rest template-args)

Returns an instance of the given template type that fulfils the given template arguments.

If no such instance exists, an error of type NO-SUCH-INSTANCE is
signalled.

See NO-SUCH-INSTANCE
See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Methods
Method: type-instance ((object type-object) &rest args)
Method: type-instance ((base symbol) &rest template-args)
Method: type-instance ((type template-type) &rest targs)
Generic Reader: value (object)

Returns the constant value form for the slot.

If the slot is realised and does not have a constant value, an error is signalled.

See SLOT (type)
See REALIZED-SLOT-P

Package

org.shirakumo.type-templates.

Methods
Reader Method: value ((slot slot))

automatically generated reader method

Source

type.lisp.

Target Slot

value.


5.1.4 Standalone methods

Method: initialize-instance :after ((slot slot) &key)
Source

type.lisp.

Method: print-object ((type template-type) stream)
Source

type.lisp.

Method: shared-initialize :after ((type template-type) slots &key)
Source

type.lisp.


5.1.5 Conditions

Condition: no-such-instance

Error signalled when trying to fetch a type instance that does not exist.

See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Direct superclasses

error.

Direct slots
Slot: template
Initargs

:template

Slot: arguments
Initargs

:arguments

Condition: no-such-slot

Error signalled when trying to fetch a slot that does not exist.

See SLOT

Package

org.shirakumo.type-templates.

Source

type.lisp.

Direct superclasses

error.

Direct slots
Slot: qualifier
Initargs

:qualifier

Slot: type
Package

common-lisp.

Initargs

:type

Condition: not-a-template-type

Error signalled when trying to coerce a type that does not name a template-type.

See TEMPLATE-TYPE (type)

Package

org.shirakumo.type-templates.

Source

type.lisp.

Direct superclasses

error.

Direct slots
Slot: type
Package

common-lisp.

Initargs

:type

Condition: template-unfulfillable

Error signalled to notify that the template cannot be expanded for the given arguments.

This is also available as a local function of the same name within
DEFINE-TEMPLATE, to allow you to easily signal the condition.

See DEFINE-TEMPLATE

Package

org.shirakumo.type-templates.

Source

type.lisp.

Direct superclasses

error.

Direct slots
Slot: template
Initargs

:template

Slot: arguments
Initargs

:arguments


5.1.6 Structures

Structure: type-object

Supertype for all structures derived from template-types.

See TEMPLATE-TYPE (type)
See TEMPLATE-TYPE
See TYPE-INSTANCE
See TEMPLATE-ARGUMENTS

Package

org.shirakumo.type-templates.

Source

type.lisp.

Direct superclasses

structure-object.

Direct methods

5.1.7 Classes

Class: slot

Represents the metadata of a slot on a template type.

See TEMPLATE-TYPE
See NAMES
See ACCESSOR
See LISP-TYPE
See VALUE
See READ-ONLY
See COMPUTED
See REALIZED-SLOT-P

Package

org.shirakumo.type-templates.

Source

type.lisp.

Direct methods
Direct slots
Slot: names
Initargs

:names

Readers

names.

Writers

This slot is read-only.

Slot: accessor
Initargs

:accessor

Readers

accessor.

Writers

This slot is read-only.

Slot: lisp-type
Initform

t

Initargs

:lisp-type

Readers

lisp-type.

Writers

This slot is read-only.

Slot: value
Initargs

:value

Readers

value.

Writers

This slot is read-only.

Slot: read-only
Initargs

:read-only

Readers

read-only.

Writers

This slot is read-only.

Slot: computed
Initargs

:computed

Readers

computed.

Writers

This slot is read-only.

Class: template-type

Represents an instantiable type definition.

See LISP-TYPE
See PARENT
See CONSTRUCTOR
See SLOTS
See INSTANCES
See TYPE-INSTANCE
See SLOT
See PLACE
See PLACE-FORM
See PLACE-TYPE
See TEMPLATE-ARGUMENTS
See DEFINE-TEMPLATE-TYPE
See DEFINE-TYPE-INSTANCE

Package

org.shirakumo.type-templates.

Source

type.lisp.

Direct subclasses

type-alias.

Direct methods
Direct slots
Slot: lisp-type
Initform

(error "lisp-type argument missing.")

Initargs

:lisp-type

Readers

lisp-type.

Writers

This slot is read-only.

Slot: parent
Initargs

:parent

Readers

parent.

Writers

This slot is read-only.

Slot: constructor
Initform

(error "constructor argument missing.")

Initargs

:constructor

Readers

constructor.

Writers

This slot is read-only.

Slot: slots
Initargs

:slots

Readers

slots.

Writers

This slot is read-only.

Class: type-alias

Representation of an alias of another template-type.

See TEMPLATE-TYPE (type)
See DEFINE-TYPE-ALIAS

Package

org.shirakumo.type-templates.

Source

type.lisp.

Direct superclasses

template-type.

Direct methods
Direct slots
Slot: instances
Allocation

:class

Readers

instances.

Writers

(setf instances).

Slot: constructor
Slot: slots

5.2 Internals


5.2.1 Macros

Macro: define-type-instance-struct (template-type type-name)
Package

org.shirakumo.type-templates.

Source

type.lisp.


5.2.2 Ordinary functions

Function: dbg (format &rest values)
Package

org.shirakumo.type-templates.

Source

toolkit.lisp.

Function: declaration-p (thing)
Package

org.shirakumo.type-templates.

Source

toolkit.lisp.

Function: declarations (forms)
Package

org.shirakumo.type-templates.

Source

toolkit.lisp.

Function: declared-return-type (forms)
Package

org.shirakumo.type-templates.

Source

toolkit.lisp.

Function: declared-variable-types (forms)
Package

org.shirakumo.type-templates.

Source

toolkit.lisp.

Function: determine-template-arguments (types)
Package

org.shirakumo.type-templates.

Source

template.lisp.

Function: duplicate-subtype-branches (branches)
Package

org.shirakumo.type-templates.

Source

template.lisp.

Function: emit-template-type (parent name template-args include)
Package

org.shirakumo.type-templates.

Source

type.lisp.

Function: emit-transform-dispatch (args parts)
Package

org.shirakumo.type-templates.

Source

template.lisp.

Function: emit-type-dispatch (args parts)
Package

org.shirakumo.type-templates.

Source

template.lisp.

Function: enlist (list-ish &rest els)
Package

org.shirakumo.type-templates.

Source

toolkit.lisp.

Function: enumerate-template-type-combinations (types)
Package

org.shirakumo.type-templates.

Source

template.lisp.

Function: lambda-list-variables (arglist)
Package

org.shirakumo.type-templates.

Source

toolkit.lisp.

Function: merge-identical-branches (branches)
Package

org.shirakumo.type-templates.

Source

template.lisp.

Function: prefix-tree (combinations)
Package

org.shirakumo.type-templates.

Source

toolkit.lisp.

Function: union* (&rest lists)
Package

org.shirakumo.type-templates.

Source

toolkit.lisp.


5.2.3 Generic functions

Generic Reader: computed (object)
Package

org.shirakumo.type-templates.

Methods
Reader Method: computed ((slot slot))

automatically generated reader method

Source

type.lisp.

Target Slot

computed.

Generic Reader: parent (object)
Package

org.shirakumo.type-templates.

Methods
Reader Method: parent ((template-type template-type))

automatically generated reader method

Source

type.lisp.

Target Slot

parent.


Appendix A Indexes


A.1 Concepts


A.2 Functions

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

(
(setf instances): Public generic functions
(setf instances): Public generic functions

A
accessor: Public generic functions
accessor: Public generic functions

C
compose-name: Public ordinary functions
compute-slots: Public generic functions
compute-type-instance-definition: Public generic functions
compute-type-instance-definition: Public generic functions
computed: Private generic functions
computed: Private generic functions
constructor: Public generic functions
constructor: Public generic functions

D
dbg: Private ordinary functions
declaration-p: Private ordinary functions
declarations: Private ordinary functions
declared-return-type: Private ordinary functions
declared-variable-types: Private ordinary functions
define-alias: Public macros
define-dependent-dispatch-type: Public macros
define-slot-accessor: Public macros
define-template: Public macros
define-template-type: Public macros
define-templated-dispatch: Public macros
define-type-alias: Public macros
define-type-dispatch: Public macros
define-type-instance: Public macros
define-type-instance-struct: Private macros
define-type-with-converter: Public macros
determine-template-arguments: Private ordinary functions
direct-slots: Public generic functions
do-combinations: Public macros
do-instance-combinations: Public macros
do-type-combinations: Public macros
duplicate-subtype-branches: Private ordinary functions

E
emit-template-type: Private ordinary functions
emit-transform-dispatch: Private ordinary functions
emit-type-dispatch: Private ordinary functions
enlist: Private ordinary functions
enumerate-combinations: Public ordinary functions
enumerate-template-type-combinations: Private ordinary functions

F
format-name: Public ordinary functions
Function, compose-name: Public ordinary functions
Function, dbg: Private ordinary functions
Function, declaration-p: Private ordinary functions
Function, declarations: Private ordinary functions
Function, declared-return-type: Private ordinary functions
Function, declared-variable-types: Private ordinary functions
Function, determine-template-arguments: Private ordinary functions
Function, duplicate-subtype-branches: Private ordinary functions
Function, emit-template-type: Private ordinary functions
Function, emit-transform-dispatch: Private ordinary functions
Function, emit-type-dispatch: Private ordinary functions
Function, enlist: Private ordinary functions
Function, enumerate-combinations: Public ordinary functions
Function, enumerate-template-type-combinations: Private ordinary functions
Function, format-name: Public ordinary functions
Function, lambda-list-variables: Private ordinary functions
Function, merge-identical-branches: Private ordinary functions
Function, prefix-tree: Private ordinary functions
Function, realized-slot-p: Public ordinary functions
Function, union*: Private ordinary functions

G
Generic Function, (setf instances): Public generic functions
Generic Function, accessor: Public generic functions
Generic Function, compute-slots: Public generic functions
Generic Function, compute-type-instance-definition: Public generic functions
Generic Function, computed: Private generic functions
Generic Function, constructor: Public generic functions
Generic Function, direct-slots: Public generic functions
Generic Function, instances: Public generic functions
Generic Function, lisp-type: Public generic functions
Generic Function, names: Public generic functions
Generic Function, parent: Private generic functions
Generic Function, place: Public generic functions
Generic Function, place-form: Public generic functions
Generic Function, place-type: Public generic functions
Generic Function, read-only: Public generic functions
Generic Function, slot: Public generic functions
Generic Function, slots: Public generic functions
Generic Function, template-arguments: Public generic functions
Generic Function, template-type: Public generic functions
Generic Function, type-instance: Public generic functions
Generic Function, value: Public generic functions

I
initialize-instance: Public standalone methods
instances: Public generic functions
instances: Public generic functions
instances: Public generic functions
instances: Public generic functions

L
lambda-list-variables: Private ordinary functions
lisp-type: Public generic functions
lisp-type: Public generic functions
lisp-type: Public generic functions
lisp-type: Public generic functions

M
Macro, define-alias: Public macros
Macro, define-dependent-dispatch-type: Public macros
Macro, define-slot-accessor: Public macros
Macro, define-template: Public macros
Macro, define-template-type: Public macros
Macro, define-templated-dispatch: Public macros
Macro, define-type-alias: Public macros
Macro, define-type-dispatch: Public macros
Macro, define-type-instance: Public macros
Macro, define-type-instance-struct: Private macros
Macro, define-type-with-converter: Public macros
Macro, do-combinations: Public macros
Macro, do-instance-combinations: Public macros
Macro, do-type-combinations: Public macros
merge-identical-branches: Private ordinary functions
Method, (setf instances): Public generic functions
Method, accessor: Public generic functions
Method, compute-type-instance-definition: Public generic functions
Method, computed: Private generic functions
Method, constructor: Public generic functions
Method, initialize-instance: Public standalone methods
Method, instances: Public generic functions
Method, instances: Public generic functions
Method, instances: Public generic functions
Method, lisp-type: Public generic functions
Method, lisp-type: Public generic functions
Method, lisp-type: Public generic functions
Method, names: Public generic functions
Method, parent: Private generic functions
Method, place: Public generic functions
Method, place-form: Public generic functions
Method, place-form: Public generic functions
Method, place-type: Public generic functions
Method, place-type: Public generic functions
Method, print-object: Public standalone methods
Method, read-only: Public generic functions
Method, shared-initialize: Public standalone methods
Method, slot: Public generic functions
Method, slots: Public generic functions
Method, template-arguments: Public generic functions
Method, template-arguments: Public generic functions
Method, template-arguments: Public generic functions
Method, template-arguments: Public generic functions
Method, template-type: Public generic functions
Method, template-type: Public generic functions
Method, template-type: Public generic functions
Method, type-instance: Public generic functions
Method, type-instance: Public generic functions
Method, type-instance: Public generic functions
Method, value: Public generic functions

N
names: Public generic functions
names: Public generic functions

P
parent: Private generic functions
parent: Private generic functions
place: Public generic functions
place: Public generic functions
place-form: Public generic functions
place-form: Public generic functions
place-form: Public generic functions
place-type: Public generic functions
place-type: Public generic functions
place-type: Public generic functions
prefix-tree: Private ordinary functions
print-object: Public standalone methods

R
read-only: Public generic functions
read-only: Public generic functions
realized-slot-p: Public ordinary functions

S
shared-initialize: Public standalone methods
slot: Public generic functions
slot: Public generic functions
slots: Public generic functions
slots: Public generic functions

T
template-arguments: Public generic functions
template-arguments: Public generic functions
template-arguments: Public generic functions
template-arguments: Public generic functions
template-arguments: Public generic functions
template-type: Public generic functions
template-type: Public generic functions
template-type: Public generic functions
template-type: Public generic functions
type-instance: Public generic functions
type-instance: Public generic functions
type-instance: Public generic functions
type-instance: Public generic functions

U
union*: Private ordinary functions

V
value: Public generic functions
value: Public generic functions


A.4 Data types

Jump to:   C   D   F   N   O   P   S   T  
Index Entry  Section

C
Class, slot: Public classes
Class, template-type: Public classes
Class, type-alias: Public classes
Condition, no-such-instance: Public conditions
Condition, no-such-slot: Public conditions
Condition, not-a-template-type: Public conditions
Condition, template-unfulfillable: Public conditions

D
documentation.lisp: The type-templates/documentation․lisp file

F
File, documentation.lisp: The type-templates/documentation․lisp file
File, package.lisp: The type-templates/package․lisp file
File, template.lisp: The type-templates/template․lisp file
File, toolkit.lisp: The type-templates/toolkit․lisp file
File, type-templates.asd: The type-templates/type-templates․asd file
File, type.lisp: The type-templates/type․lisp file

N
no-such-instance: Public conditions
no-such-slot: Public conditions
not-a-template-type: Public conditions

O
org.shirakumo.type-templates: The org․shirakumo․type-templates package

P
Package, org.shirakumo.type-templates: The org․shirakumo․type-templates package
package.lisp: The type-templates/package․lisp file

S
slot: Public classes
Structure, type-object: Public structures
System, type-templates: The type-templates system

T
template-type: Public classes
template-unfulfillable: Public conditions
template.lisp: The type-templates/template․lisp file
toolkit.lisp: The type-templates/toolkit․lisp file
type-alias: Public classes
type-object: Public structures
type-templates: The type-templates system
type-templates.asd: The type-templates/type-templates․asd file
type.lisp: The type-templates/type․lisp file