FunctionPackage: exclToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 10.1
The object described on this page has been modified in the 10.1 release; see the Release Notes.
10.0 version

add-typep-transformer

Arguments: type function &key re-expand

This function is called for its side effects. The return value has no meaning. This function tells the compiler that a typep form:

(typep x 'type)

can be transformed, when re-expand is nil, into the form:

(funcall function x)

When re-expand is true and when the function argument is a symbol naming a function (and not a function object or a function spec list that names a function), the form can be transformed into:

(function x)

The transformation when re-expand is true allows a compiler-macro for function, if there is one, to be expanded, possibly thus allowing for further inlining of the user's code.

The compiler will make the transformation where possible.

type must be a type, typically defined by the user with deftype. function should be a function object, a function spec list naming a function, or a symbol naming a function. That function must accept any Lisp object as a single argument and return nil if the object is not of type type, true if it is of type type (that is, the function must be a predicate). remove-typep-transformer removes the transform.

See compiling.htm for general information on compiling and see Adding typep-transformers in that document for more information on typep transforms.


Copyright (c) 1998-2017, Franz Inc. Oakland, CA., USA. All rights reserved.
This page was not revised from the 10.0 page.
Created 2017.2.15.

ToCDocOverviewCGDocRelNotesFAQIndexPermutedIndex
Allegro CL version 10.1
The object described on this page has been modified in the 10.1 release; see the Release Notes.
10.0 version