► |  | Reference: PLT Scheme

1 | Language Model
2 | Syntactic Forms
3 | Datatypes
4 | Structures
5 | Classes and Objects
6 | Units
7 | Contracts
8 | Pattern Matching
9 | Control Flow
10 | Concurrency
11 | Macros
12 | Input and Output
13 | Reflection and Security
14 | Operating System
15 | Memory Management
16 | Running PLT Scheme
| Bibliography
| Index

▼ | 6 | Units

6.1 | Creating Units
6.2 | Invoking Units
6.3 | Linking Units and Creating Compound Units
6.4 | Inferred Linking
6.5 | Generating A Unit from Context
6.6 | Structural Matching
6.7 | Extending the Syntax of Signatures
6.8 | Unit Utilities
6.9 | Single-Unit Modules
6.10 | Single-Signature Modules
6.11 | Transformer Helpers

On this page:

unit-static-signatures
signature-members

Version: 4.1.4
top← prev up next →

#### 6.11`` Transformer Helpers

(require scheme/unit-exptime)

The scheme/unit-exptime library provides procedures that are intended for use by macro transformers. In particular, the library is typically imported using for-syntax into a module that defines macro with define-syntax.

(unit-static-signatures |  | unit-identifier |
|  | err-syntax) |

→

(list/c (cons/c (or/c symbol? #f)
identifier?))

(list/c (cons/c (or/c symbol? #f)
identifier?))

unit-identifier : identifier?
err-syntax : syntax?

If unit-identifier is bound to static unit information via define-unit (or other such forms), the result is two values. The first value is for the unit’s imports, and the second is for the unit’s exports. Each result value is a list, where each list element pairs a symbol or #f with an identifier. The symbol or #f indicates the import’s or export’s tag (where #f indicates no tag), and the identifier indicates the binding of the corresponding signature.

If unit-identifier is not bound to static unit information, then the exn:fail:syntax exception is raised. In that case, the given err-syntax argument is used as the source of the error, where unit-identifer is used as the detail source location.

(signature-members |  | sig-identifier |  |  |  |

err-syntax)

→

(or/c identifier? #f)
(listof identifier?)
(listof identifier?)
(listof identifier?)

sig-identifier : identifier?
err-syntax : syntax?

If sig-identifier is bound to static unit information via define-signature (or other such forms), the result is four values:

- an identifier or #f indicating the signature (of any) that is extended by the sig-identifier binding;

- a list of identifiers representing the variables supplied/required by the signature;

- a list of identifiers for variable definitions in the signature (i.e., variable bindings that are provided on import, but not defined by units that implement the signature); and

- a list of identifiers with syntax definitions in the signature.

If sig-identifier is not bound to a signature, then the exn:fail:syntax exception is raised. In that case, the given err-syntax argument is used as the source of the error, where sig-identifier is used as the detail source location.

top← prev up next →