The com.clearly-useful.protocols Reference Manual

Table of Contents

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

The com.clearly-useful.protocols Reference Manual

This is the com.clearly-useful.protocols Reference Manual, version 0.1.2, generated automatically by Declt version 2.4 "Will Decker" on Wed Jun 20 11:37:41 2018 GMT+0.


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

1 Introduction

simple clojure-style protocols for common lisp

see test.lisp for simple (if somewhat silly) examples.
real usage can be seen in the com.clearly-useful.generic-sequence-interface
system.

* overview:
  this system provides a simple implementation of protcols for common
  lisp inspired by clojure. the interface to this package is
  intentionally minimal and exports four symbols:

** defprotocol
   /macro/
   defprotocol name [docstring] (option | method-declaration)+

   where name is a symbol
         docstring a docstring
         option is one of:
	   (:require protocol)
	   (:base-method ...)
	   (:eponymous-method t | nil)
	   (:eponymous-generic t | nil)
	 method-declaration is
	   a simple lambda list with
	   an optional docstring (see below)
   
   of the options, :require is the most straightforward.
   the others are a little funky, but have come in handy
   for me in practice.
   options:
     - :require other-protocol
       this option will check at compile time
       that any object implementing this protocol
       already implements other-protocol
     - :eponymous-generic bool
       when true, defprotocol will generate a generic
       function of one argument with the same name as
       the protocol. default is nil.
     - :eponymous-method bool
       when true, extend-type will generate a method
       with the same name as the protocol specializing
       on the implementing type. the method generated
       functions as identity. this is just a convenience
       option. useage implies (:eponymous-generic t)
       defaults to nil.
     - :base-method ((param) body)
       when supplied, generates an unspecialized method
       with the same name as the protocol, with the form
       (:method (param) body). implies (:eponymous-generic t)
       defaults to nil.
       
   example:
   (defprotocol printable
     "an object which can be printed my way"
     (:base-method (object) (error "oops!"))
     (:require stringable)
     (my-package::print-special (object stream) "print object to stream"))

   this results in the following:
     - definition of the generic function printable, which will
       function as identity for any object implementing this
       protocol. any object which does not implement this protocol
       will raise the error "oops!"  had a :base-method not been
       supplied, a generic not-implemented error would be raised by
       objects not implementing the protocol.
     - a requirement that any object implementing this protocol
       already implement stringable
     - definition of the generic function printable-p which tests
       whether an object implements the protocol printable
     - definition of the type printable, which satisfies printable-p
       with the documentation "an object which can be printed my way"
     - definition of the generic function my-package::print-special
       with the documentation "print object to stream"
       
    note that the lambda list for a protocol method is restricted to
    symbols, and may not contain &optional &key
    &allow-other-keys. this is to simplify the validation of protocol
    definitions & implementations at compile time, and may be changed
    in the future.

    note also that methods defined with extend-type only specialize on
    their first parameter, which is of the type implementing the
    protocol (see below). this is in line with clojure's
    implementation, but may not be neccessary for common lisp, as
    methods are more flexible.  a more complex style of definition &
    implementation of protocols may be implemented in the future to
    take full advantage of generic function dispatch, but the current
    simple implementation will continue to work.

** extend-type
   /macro/
   extend-type class-name [protocol-name, method-definition+]+

   example:
   (extend-type string
     foo
     (bar (self other) (frob other self))
     quux
     (svelte (self) etc))

   performs simple validation at compile time.
     
   this will result in method definitions for the generic functions
   bar and svelte specialized on class string for the first parameter.

   lambda-lists for method implementations in extend-type may only contain
   symbols, and do not support &optional &key &allow-other-keys. this
   is a limitation of the current implementation that may change in
   the future. they do, however allow the use of the special symbol _
   to indicate ignored parameters. the symbol _ may be used multiple
   times in an implementation, e.g.

   (extend-type frobnicator
     music:instrument
     (music:play-with-orchestra (_ _ _)
        ;;frobnicators only know one note.
        (music:play-note :b-flat 1.0)))



** protocol-extends-class-p
   /function/
   protocol-extends-class-p protocol-name class-or-class-name
   true if class-or-class-name has implemented the protcol
   named by protocol-name

** class-implements-protocol-p
   /function/
   class-implements-protocol-p class-or-class-name protocol-name
   same as above.

** notes & todo's
   there is currently no way to undefine a protocol, as I don't know
   of a portable way to undefine types in common lisp.

   if you redefine a protocol in the current implementation, it does
   not invalidate existing implementors of the protocol, which would
   be helpful. This will be fixed.

*** TODO fix protocol redefinition  

*** TODO add extend-protocol

*** TODO [#A] add ability to extend objects as well as types 
*** DONE error messages are less helpful than they could be at the moment. 
*** TODO migrate to a proper test framework 


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

2 Systems

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


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

2.1 com.clearly-useful.protocols

Author

Jason Aeschliman <j.aeschliman@gmail.com>

License

revised BSD

Description

Simple protocol implementation for Common Lisp inspired by clojure.

Version

0.1.2

Dependency

iterate

Source

com.clearly-useful.protocols.asd (file)

Components

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

3 Files

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


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

3.1 Lisp


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

3.1.1 com.clearly-useful.protocols.asd

Location

com.clearly-useful.protocols.asd

Systems

com.clearly-useful.protocols (system)


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

3.1.2 com.clearly-useful.protocols/package.lisp

Parent

com.clearly-useful.protocols (system)

Location

package.lisp

Packages

com.clearly-useful.protocols


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

3.1.3 com.clearly-useful.protocols/compile-time.lisp

Dependency

package.lisp (file)

Parent

com.clearly-useful.protocols (system)

Location

compile-time.lisp

Internal Definitions

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

3.1.4 com.clearly-useful.protocols/load-time.lisp

Dependency

compile-time.lisp (file)

Parent

com.clearly-useful.protocols (system)

Location

load-time.lisp

Internal Definitions

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

3.1.5 com.clearly-useful.protocols/validation.lisp

Dependency

load-time.lisp (file)

Parent

com.clearly-useful.protocols (system)

Location

validation.lisp

Internal Definitions

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

3.1.6 com.clearly-useful.protocols/parse.lisp

Dependency

validation.lisp (file)

Parent

com.clearly-useful.protocols (system)

Location

parse.lisp

Internal Definitions

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

3.1.7 com.clearly-useful.protocols/codegen.lisp

Dependency

parse.lisp (file)

Parent

com.clearly-useful.protocols (system)

Location

codegen.lisp

Internal Definitions

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

3.1.8 com.clearly-useful.protocols/interface.lisp

Dependency

codegen.lisp (file)

Parent

com.clearly-useful.protocols (system)

Location

interface.lisp


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

3.1.9 com.clearly-useful.protocols/protocols.lisp

Dependency

interface.lisp (file)

Parent

com.clearly-useful.protocols (system)

Location

protocols.lisp

Exported Definitions
Internal Definitions

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

4 Packages

Packages are listed by definition order.


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

4.1 com.clearly-useful.protocols

Source

package.lisp (file)

Use List
Exported Definitions
Internal Definitions

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

5 Definitions

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


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

5.1 Exported definitions


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

5.1.1 Macros

Macro: defprotocol NAME &body METHODS
Package

com.clearly-useful.protocols

Source

protocols.lisp (file)

Macro: extend-object OBJECT &body METHODS
Package

com.clearly-useful.protocols

Source

protocols.lisp (file)

Macro: extend-type CLASS &body METHODS
Package

com.clearly-useful.protocols

Source

protocols.lisp (file)

Macro: reify &body METHODS
Package

com.clearly-useful.protocols

Source

protocols.lisp (file)


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

5.1.2 Functions

Function: class-implements-protocol-p CLASS PROTOCOL
Package

com.clearly-useful.protocols

Source

protocols.lisp (file)

Function: protocol-extends-class-p PROTOCOL CLASS
Package

com.clearly-useful.protocols

Source

protocols.lisp (file)


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

5.2 Internal definitions


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

5.2.1 Special variables

Special Variable: %protocol-compilation-notes%
Package

com.clearly-useful.protocols

Source

compile-time.lisp (file)

Special Variable: %protocols%
Package

com.clearly-useful.protocols

Source

load-time.lisp (file)


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

5.2.2 Macros

Macro: all &body BODY

(all x1 y1 x2 y2 ...) -> (and (or x1 y1) (or x2 y2) ...)

Package

com.clearly-useful.protocols

Source

validation.lisp (file)


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

5.2.3 Functions

Function: %bool O
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: %build-protocol-object PROTOCOL METHODS
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: %compile-time-implements? TYPENAME PROTOCOLNAME
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: %defprotocol NAME BODY
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: %ensure-protocol-compilation-note NAME
Package

com.clearly-useful.protocols

Source

compile-time.lisp (file)

Function: %extend-type CLASS METHODS
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: %find-protocol-compilation-note NAME
Function: (setf %find-protocol-compilation-note) VALUE NAME
Package

com.clearly-useful.protocols

Source

compile-time.lisp (file)

Function: %implement-protocol-for-object OBJ METHODS
Package

com.clearly-useful.protocols

Source

protocols.lisp (file)

Function: %implements? TYPENAME PROTOCOLNAME
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: copy-protocol-body INSTANCE
Package

com.clearly-useful.protocols

Source

parse.lisp (file)

Function: ensure-protocol NAME
Package

com.clearly-useful.protocols

Source

load-time.lisp (file)

Function: find-protocol NAME
Function: (setf find-protocol) VALUE NAME
Package

com.clearly-useful.protocols

Source

load-time.lisp (file)

Function: generate-compile-time-requires REQUIRES CLASS NAME
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: generate-implements? SPECIALIZER NAME
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: generate-requires REQUIRES CLASS NAME
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: make-protocol-body &key (PROPERTIES PROPERTIES) (METHODS METHODS)
Package

com.clearly-useful.protocols

Source

parse.lisp (file)

Function: method-implementations NAME PROTOCOL SPECIALIZER METHODS
Package

com.clearly-useful.protocols

Source

protocols.lisp (file)

Function: parse-protocol-body METHODS
Package

com.clearly-useful.protocols

Source

parse.lisp (file)

Function: partition-methods LIST
Package

com.clearly-useful.protocols

Source

parse.lisp (file)

Function: protocol-body-methods INSTANCE
Function: (setf protocol-body-methods) VALUE INSTANCE
Package

com.clearly-useful.protocols

Source

parse.lisp (file)

Function: protocol-body-p OBJECT
Package

com.clearly-useful.protocols

Source

parse.lisp (file)

Function: protocol-body-properties INSTANCE
Function: (setf protocol-body-properties) VALUE INSTANCE
Package

com.clearly-useful.protocols

Source

parse.lisp (file)

Function: protocol-definition PROTOCOL UNPARSED-BODY
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: protocol-definition-defgeneric-forms PROTOCOL-NAME METHODS PROPERTIES
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: protocol-definition-eponymous-generic NAME PROPERTIES
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: protocol-deftype NAME DOCUMENTATION
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: protocol-implementation PROTOCOL THING METHODS

protocol, implementation type name, method list

Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: protocol-implementation-base-method PROTOCOL TYPE
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: protocol-implementation-compile-time PROTOCOL TYPE METHODS
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: protocol-implementation-register PROTOCOL SPECIALIZER
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: protocol-test-function NAME
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: protocol-test-name NAME
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: transform-arglist ARGLIST SPECIALIZER
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: transform-method SPEC SPECIALIZER
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: transform-method-to-defgeneric PROTOCOL-NAME METHOD
Package

com.clearly-useful.protocols

Source

codegen.lisp (file)

Function: valid-protocol-lambda-list-p PARAMS
Package

com.clearly-useful.protocols

Source

validation.lisp (file)

Function: valid-protocol-method-name-p THING
Package

com.clearly-useful.protocols

Source

validation.lisp (file)

Function: validate-defprotocol-option LIST
Package

com.clearly-useful.protocols

Source

validation.lisp (file)

Function: validate-protocol-definition-methods NAME METHODS
Package

com.clearly-useful.protocols

Source

validation.lisp (file)

Function: validate-protocol-implementation-methods PROTOCOL TYPE METHODS
Package

com.clearly-useful.protocols

Source

validation.lisp (file)


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

5.2.4 Generic functions

Generic Function: implements-protocol? OBJECT PROTOCOL
Package

com.clearly-useful.protocols

Source

protocols.lisp (file)

Methods
Method: implements-protocol? OBJECT (NAME symbol)
Method: implements-protocol? OBJECT (PROTOCOL protocol)
Generic Function: methods OBJECT
Generic Function: (setf methods) NEW-VALUE OBJECT
Package

com.clearly-useful.protocols

Methods
Method: methods (PROTOCOL protocol)

automatically generated reader method

Source

load-time.lisp (file)

Method: (setf methods) NEW-VALUE (PROTOCOL protocol)

automatically generated writer method

Source

load-time.lisp (file)

Method: methods (%PROTOCOL-COMPILATION-NOTE %protocol-compilation-note)

automatically generated reader method

Source

compile-time.lisp (file)

Method: (setf methods) NEW-VALUE (%PROTOCOL-COMPILATION-NOTE %protocol-compilation-note)

automatically generated writer method

Source

compile-time.lisp (file)

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

com.clearly-useful.protocols

Methods
Method: name (PROTOCOL protocol)

automatically generated reader method

Source

load-time.lisp (file)

Method: (setf name) NEW-VALUE (PROTOCOL protocol)

automatically generated writer method

Source

load-time.lisp (file)

Method: name (%PROTOCOL-COMPILATION-NOTE %protocol-compilation-note)

automatically generated reader method

Source

compile-time.lisp (file)

Method: (setf name) NEW-VALUE (%PROTOCOL-COMPILATION-NOTE %protocol-compilation-note)

automatically generated writer method

Source

compile-time.lisp (file)

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

com.clearly-useful.protocols

Methods
Method: properties (PROTOCOL protocol)

automatically generated reader method

Source

load-time.lisp (file)

Method: (setf properties) NEW-VALUE (PROTOCOL protocol)

automatically generated writer method

Source

load-time.lisp (file)

Method: properties (%PROTOCOL-COMPILATION-NOTE %protocol-compilation-note)

automatically generated reader method

Source

compile-time.lisp (file)

Method: (setf properties) NEW-VALUE (%PROTOCOL-COMPILATION-NOTE %protocol-compilation-note)

automatically generated writer method

Source

compile-time.lisp (file)

Generic Function: protocol-documentation OBJECT
Generic Function: (setf protocol-documentation) NEW-VALUE OBJECT
Package

com.clearly-useful.protocols

Methods
Method: protocol-documentation (PROTOCOL protocol)

automatically generated reader method

Source

load-time.lisp (file)

Method: (setf protocol-documentation) NEW-VALUE (PROTOCOL protocol)

automatically generated writer method

Source

load-time.lisp (file)

Method: protocol-documentation (%PROTOCOL-COMPILATION-NOTE %protocol-compilation-note)

automatically generated reader method

Source

compile-time.lisp (file)

Method: (setf protocol-documentation) NEW-VALUE (%PROTOCOL-COMPILATION-NOTE %protocol-compilation-note)

automatically generated writer method

Source

compile-time.lisp (file)

Generic Function: protocol-includes-generic-pun OBJECT
Generic Function: (setf protocol-includes-generic-pun) NEW-VALUE OBJECT
Package

com.clearly-useful.protocols

Methods
Method: protocol-includes-generic-pun (PROTOCOL protocol)

automatically generated reader method

Source

load-time.lisp (file)

Method: (setf protocol-includes-generic-pun) NEW-VALUE (PROTOCOL protocol)

automatically generated writer method

Source

load-time.lisp (file)

Method: protocol-includes-generic-pun (%PROTOCOL-COMPILATION-NOTE %protocol-compilation-note)

automatically generated reader method

Source

compile-time.lisp (file)

Method: (setf protocol-includes-generic-pun) NEW-VALUE (%PROTOCOL-COMPILATION-NOTE %protocol-compilation-note)

automatically generated writer method

Source

compile-time.lisp (file)

Generic Function: protocol-includes-method-pun OBJECT
Generic Function: (setf protocol-includes-method-pun) NEW-VALUE OBJECT
Package

com.clearly-useful.protocols

Methods
Method: protocol-includes-method-pun (PROTOCOL protocol)

automatically generated reader method

Source

load-time.lisp (file)

Method: (setf protocol-includes-method-pun) NEW-VALUE (PROTOCOL protocol)

automatically generated writer method

Source

load-time.lisp (file)

Method: protocol-includes-method-pun (%PROTOCOL-COMPILATION-NOTE %protocol-compilation-note)

automatically generated reader method

Source

compile-time.lisp (file)

Method: (setf protocol-includes-method-pun) NEW-VALUE (%PROTOCOL-COMPILATION-NOTE %protocol-compilation-note)

automatically generated writer method

Source

compile-time.lisp (file)


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

5.2.5 Structures

Structure: protocol-body ()
Package

com.clearly-useful.protocols

Source

parse.lisp (file)

Direct superclasses

structure-object (structure)

Direct slots
Slot: properties
Readers

protocol-body-properties (function)

Writers

(setf protocol-body-properties) (function)

Slot: methods
Readers

protocol-body-methods (function)

Writers

(setf protocol-body-methods) (function)


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

5.2.6 Classes

Class: %protocol-compilation-note ()
Package

com.clearly-useful.protocols

Source

compile-time.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

name (generic function)

Writers

(setf name) (generic function)

Slot: methods
Initform

(list)

Readers

methods (generic function)

Writers

(setf methods) (generic function)

Slot: properties
Readers

properties (generic function)

Writers

(setf properties) (generic function)

Slot: documentation
Readers

protocol-documentation (generic function)

Writers

(setf protocol-documentation) (generic function)

Slot: includes-generic-pun
Readers

protocol-includes-generic-pun (generic function)

Writers

(setf protocol-includes-generic-pun) (generic function)

Slot: includes-method-pun
Readers

protocol-includes-method-pun (generic function)

Writers

(setf protocol-includes-method-pun) (generic function)

Slot: implementors
Initform

(list)

Class: %reified% ()
Package

com.clearly-useful.protocols

Source

protocols.lisp (file)

Direct superclasses

standard-object (class)

Class: protocol ()
Package

com.clearly-useful.protocols

Source

load-time.lisp (file)

Direct superclasses

standard-object (class)

Direct methods
Direct slots
Slot: name
Initargs

:name

Readers

name (generic function)

Writers

(setf name) (generic function)

Slot: methods
Initform

(list)

Readers

methods (generic function)

Writers

(setf methods) (generic function)

Slot: properties
Readers

properties (generic function)

Writers

(setf properties) (generic function)

Slot: documentation
Readers

protocol-documentation (generic function)

Writers

(setf protocol-documentation) (generic function)

Slot: includes-generic-pun
Readers

protocol-includes-generic-pun (generic function)

Writers

(setf protocol-includes-generic-pun) (generic function)

Slot: includes-method-pun
Readers

protocol-includes-method-pun (generic function)

Writers

(setf protocol-includes-method-pun) (generic function)

Slot: implementors
Initform

(list)


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

Appendix A Indexes


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

A.1 Concepts

Jump to:   C   F   L  
Index Entry  Section

C
com.clearly-useful.protocols.asd: The com<dot>clearly-useful<dot>protocols<dot>asd file
com.clearly-useful.protocols/codegen.lisp: The com<dot>clearly-useful<dot>protocols/codegen<dot>lisp file
com.clearly-useful.protocols/compile-time.lisp: The com<dot>clearly-useful<dot>protocols/compile-time<dot>lisp file
com.clearly-useful.protocols/interface.lisp: The com<dot>clearly-useful<dot>protocols/interface<dot>lisp file
com.clearly-useful.protocols/load-time.lisp: The com<dot>clearly-useful<dot>protocols/load-time<dot>lisp file
com.clearly-useful.protocols/package.lisp: The com<dot>clearly-useful<dot>protocols/package<dot>lisp file
com.clearly-useful.protocols/parse.lisp: The com<dot>clearly-useful<dot>protocols/parse<dot>lisp file
com.clearly-useful.protocols/protocols.lisp: The com<dot>clearly-useful<dot>protocols/protocols<dot>lisp file
com.clearly-useful.protocols/validation.lisp: The com<dot>clearly-useful<dot>protocols/validation<dot>lisp file

F
File, Lisp, com.clearly-useful.protocols.asd: The com<dot>clearly-useful<dot>protocols<dot>asd file
File, Lisp, com.clearly-useful.protocols/codegen.lisp: The com<dot>clearly-useful<dot>protocols/codegen<dot>lisp file
File, Lisp, com.clearly-useful.protocols/compile-time.lisp: The com<dot>clearly-useful<dot>protocols/compile-time<dot>lisp file
File, Lisp, com.clearly-useful.protocols/interface.lisp: The com<dot>clearly-useful<dot>protocols/interface<dot>lisp file
File, Lisp, com.clearly-useful.protocols/load-time.lisp: The com<dot>clearly-useful<dot>protocols/load-time<dot>lisp file
File, Lisp, com.clearly-useful.protocols/package.lisp: The com<dot>clearly-useful<dot>protocols/package<dot>lisp file
File, Lisp, com.clearly-useful.protocols/parse.lisp: The com<dot>clearly-useful<dot>protocols/parse<dot>lisp file
File, Lisp, com.clearly-useful.protocols/protocols.lisp: The com<dot>clearly-useful<dot>protocols/protocols<dot>lisp file
File, Lisp, com.clearly-useful.protocols/validation.lisp: The com<dot>clearly-useful<dot>protocols/validation<dot>lisp file

L
Lisp File, com.clearly-useful.protocols.asd: The com<dot>clearly-useful<dot>protocols<dot>asd file
Lisp File, com.clearly-useful.protocols/codegen.lisp: The com<dot>clearly-useful<dot>protocols/codegen<dot>lisp file
Lisp File, com.clearly-useful.protocols/compile-time.lisp: The com<dot>clearly-useful<dot>protocols/compile-time<dot>lisp file
Lisp File, com.clearly-useful.protocols/interface.lisp: The com<dot>clearly-useful<dot>protocols/interface<dot>lisp file
Lisp File, com.clearly-useful.protocols/load-time.lisp: The com<dot>clearly-useful<dot>protocols/load-time<dot>lisp file
Lisp File, com.clearly-useful.protocols/package.lisp: The com<dot>clearly-useful<dot>protocols/package<dot>lisp file
Lisp File, com.clearly-useful.protocols/parse.lisp: The com<dot>clearly-useful<dot>protocols/parse<dot>lisp file
Lisp File, com.clearly-useful.protocols/protocols.lisp: The com<dot>clearly-useful<dot>protocols/protocols<dot>lisp file
Lisp File, com.clearly-useful.protocols/validation.lisp: The com<dot>clearly-useful<dot>protocols/validation<dot>lisp file

Jump to:   C   F   L  

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

A.2 Functions

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

%
%bool: Internal functions
%build-protocol-object: Internal functions
%compile-time-implements?: Internal functions
%defprotocol: Internal functions
%ensure-protocol-compilation-note: Internal functions
%extend-type: Internal functions
%find-protocol-compilation-note: Internal functions
%implement-protocol-for-object: Internal functions
%implements?: Internal functions

(
(setf %find-protocol-compilation-note): Internal functions
(setf find-protocol): Internal functions
(setf methods): Internal generic functions
(setf methods): Internal generic functions
(setf methods): Internal generic functions
(setf name): Internal generic functions
(setf name): Internal generic functions
(setf name): Internal generic functions
(setf properties): Internal generic functions
(setf properties): Internal generic functions
(setf properties): Internal generic functions
(setf protocol-body-methods): Internal functions
(setf protocol-body-properties): Internal functions
(setf protocol-documentation): Internal generic functions
(setf protocol-documentation): Internal generic functions
(setf protocol-documentation): Internal generic functions
(setf protocol-includes-generic-pun): Internal generic functions
(setf protocol-includes-generic-pun): Internal generic functions
(setf protocol-includes-generic-pun): Internal generic functions
(setf protocol-includes-method-pun): Internal generic functions
(setf protocol-includes-method-pun): Internal generic functions
(setf protocol-includes-method-pun): Internal generic functions

A
all: Internal macros

C
class-implements-protocol-p: Exported functions
copy-protocol-body: Internal functions

D
defprotocol: Exported macros

E
ensure-protocol: Internal functions
extend-object: Exported macros
extend-type: Exported macros

F
find-protocol: Internal functions
Function, %bool: Internal functions
Function, %build-protocol-object: Internal functions
Function, %compile-time-implements?: Internal functions
Function, %defprotocol: Internal functions
Function, %ensure-protocol-compilation-note: Internal functions
Function, %extend-type: Internal functions
Function, %find-protocol-compilation-note: Internal functions
Function, %implement-protocol-for-object: Internal functions
Function, %implements?: Internal functions
Function, (setf %find-protocol-compilation-note): Internal functions
Function, (setf find-protocol): Internal functions
Function, (setf protocol-body-methods): Internal functions
Function, (setf protocol-body-properties): Internal functions
Function, class-implements-protocol-p: Exported functions
Function, copy-protocol-body: Internal functions
Function, ensure-protocol: Internal functions
Function, find-protocol: Internal functions
Function, generate-compile-time-requires: Internal functions
Function, generate-implements?: Internal functions
Function, generate-requires: Internal functions
Function, make-protocol-body: Internal functions
Function, method-implementations: Internal functions
Function, parse-protocol-body: Internal functions
Function, partition-methods: Internal functions
Function, protocol-body-methods: Internal functions
Function, protocol-body-p: Internal functions
Function, protocol-body-properties: Internal functions
Function, protocol-definition: Internal functions
Function, protocol-definition-defgeneric-forms: Internal functions
Function, protocol-definition-eponymous-generic: Internal functions
Function, protocol-deftype: Internal functions
Function, protocol-extends-class-p: Exported functions
Function, protocol-implementation: Internal functions
Function, protocol-implementation-base-method: Internal functions
Function, protocol-implementation-compile-time: Internal functions
Function, protocol-implementation-register: Internal functions
Function, protocol-test-function: Internal functions
Function, protocol-test-name: Internal functions
Function, transform-arglist: Internal functions
Function, transform-method: Internal functions
Function, transform-method-to-defgeneric: Internal functions
Function, valid-protocol-lambda-list-p: Internal functions
Function, valid-protocol-method-name-p: Internal functions
Function, validate-defprotocol-option: Internal functions
Function, validate-protocol-definition-methods: Internal functions
Function, validate-protocol-implementation-methods: Internal functions

G
generate-compile-time-requires: Internal functions
generate-implements?: Internal functions
generate-requires: Internal functions
Generic Function, (setf methods): Internal generic functions
Generic Function, (setf name): Internal generic functions
Generic Function, (setf properties): Internal generic functions
Generic Function, (setf protocol-documentation): Internal generic functions
Generic Function, (setf protocol-includes-generic-pun): Internal generic functions
Generic Function, (setf protocol-includes-method-pun): Internal generic functions
Generic Function, implements-protocol?: Internal generic functions
Generic Function, methods: Internal generic functions
Generic Function, name: Internal generic functions
Generic Function, properties: Internal generic functions
Generic Function, protocol-documentation: Internal generic functions
Generic Function, protocol-includes-generic-pun: Internal generic functions
Generic Function, protocol-includes-method-pun: Internal generic functions

I
implements-protocol?: Internal generic functions
implements-protocol?: Internal generic functions
implements-protocol?: Internal generic functions

M
Macro, all: Internal macros
Macro, defprotocol: Exported macros
Macro, extend-object: Exported macros
Macro, extend-type: Exported macros
Macro, reify: Exported macros
make-protocol-body: Internal functions
Method, (setf methods): Internal generic functions
Method, (setf methods): Internal generic functions
Method, (setf name): Internal generic functions
Method, (setf name): Internal generic functions
Method, (setf properties): Internal generic functions
Method, (setf properties): Internal generic functions
Method, (setf protocol-documentation): Internal generic functions
Method, (setf protocol-documentation): Internal generic functions
Method, (setf protocol-includes-generic-pun): Internal generic functions
Method, (setf protocol-includes-generic-pun): Internal generic functions
Method, (setf protocol-includes-method-pun): Internal generic functions
Method, (setf protocol-includes-method-pun): Internal generic functions
Method, implements-protocol?: Internal generic functions
Method, implements-protocol?: Internal generic functions
Method, methods: Internal generic functions
Method, methods: Internal generic functions
Method, name: Internal generic functions
Method, name: Internal generic functions
Method, properties: Internal generic functions
Method, properties: Internal generic functions
Method, protocol-documentation: Internal generic functions
Method, protocol-documentation: Internal generic functions
Method, protocol-includes-generic-pun: Internal generic functions
Method, protocol-includes-generic-pun: Internal generic functions
Method, protocol-includes-method-pun: Internal generic functions
Method, protocol-includes-method-pun: Internal generic functions
method-implementations: Internal functions
methods: Internal generic functions
methods: Internal generic functions
methods: Internal generic functions

N
name: Internal generic functions
name: Internal generic functions
name: Internal generic functions

P
parse-protocol-body: Internal functions
partition-methods: Internal functions
properties: Internal generic functions
properties: Internal generic functions
properties: Internal generic functions
protocol-body-methods: Internal functions
protocol-body-p: Internal functions
protocol-body-properties: Internal functions
protocol-definition: Internal functions
protocol-definition-defgeneric-forms: Internal functions
protocol-definition-eponymous-generic: Internal functions
protocol-deftype: Internal functions
protocol-documentation: Internal generic functions
protocol-documentation: Internal generic functions
protocol-documentation: Internal generic functions
protocol-extends-class-p: Exported functions
protocol-implementation: Internal functions
protocol-implementation-base-method: Internal functions
protocol-implementation-compile-time: Internal functions
protocol-implementation-register: Internal functions
protocol-includes-generic-pun: Internal generic functions
protocol-includes-generic-pun: Internal generic functions
protocol-includes-generic-pun: Internal generic functions
protocol-includes-method-pun: Internal generic functions
protocol-includes-method-pun: Internal generic functions
protocol-includes-method-pun: Internal generic functions
protocol-test-function: Internal functions
protocol-test-name: Internal functions

R
reify: Exported macros

T
transform-arglist: Internal functions
transform-method: Internal functions
transform-method-to-defgeneric: Internal functions

V
valid-protocol-lambda-list-p: Internal functions
valid-protocol-method-name-p: Internal functions
validate-defprotocol-option: Internal functions
validate-protocol-definition-methods: Internal functions
validate-protocol-implementation-methods: Internal functions

Jump to:   %   (  
A   C   D   E   F   G   I   M   N   P   R   T   V  

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

A.3 Variables

Jump to:   %  
D   I   M   N   P   S  
Index Entry  Section

%
%protocol-compilation-notes%: Internal special variables
%protocols%: Internal special variables

D
documentation: Internal classes
documentation: Internal classes

I
implementors: Internal classes
implementors: Internal classes
includes-generic-pun: Internal classes
includes-generic-pun: Internal classes
includes-method-pun: Internal classes
includes-method-pun: Internal classes

M
methods: Internal structures
methods: Internal classes
methods: Internal classes

N
name: Internal classes
name: Internal classes

P
properties: Internal structures
properties: Internal classes
properties: Internal classes

S
Slot, documentation: Internal classes
Slot, documentation: Internal classes
Slot, implementors: Internal classes
Slot, implementors: Internal classes
Slot, includes-generic-pun: Internal classes
Slot, includes-generic-pun: Internal classes
Slot, includes-method-pun: Internal classes
Slot, includes-method-pun: Internal classes
Slot, methods: Internal structures
Slot, methods: Internal classes
Slot, methods: Internal classes
Slot, name: Internal classes
Slot, name: Internal classes
Slot, properties: Internal structures
Slot, properties: Internal classes
Slot, properties: Internal classes
Special Variable, %protocol-compilation-notes%: Internal special variables
Special Variable, %protocols%: Internal special variables

Jump to:   %  
D   I   M   N   P   S  

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

A.4 Data types

Jump to:   %  
C   P   S  
Index Entry  Section

%
%protocol-compilation-note: Internal classes
%reified%: Internal classes

C
Class, %protocol-compilation-note: Internal classes
Class, %reified%: Internal classes
Class, protocol: Internal classes
com.clearly-useful.protocols: The com<dot>clearly-useful<dot>protocols system
com.clearly-useful.protocols: The com<dot>clearly-useful<dot>protocols package

P
Package, com.clearly-useful.protocols: The com<dot>clearly-useful<dot>protocols package
protocol: Internal classes
protocol-body: Internal structures

S
Structure, protocol-body: Internal structures
System, com.clearly-useful.protocols: The com<dot>clearly-useful<dot>protocols system

Jump to:   %  
C   P   S