This site is a static rendering of the Trac instance that was used by R7RS-WG1 for its work on R7RS-small (PDF), which was ratified in 2013. For more information, see Home. For a version of this page that may be more recent, see MetaArcfide in WG2's repo for R7RS-large.


2010-02-21 08:34:40

Meta Definitions

By Aaron W. Hsu


It is useful to be able to explicitly indicate a phase or level for definitions. While this probably won't matter for WG1 and Thing One, for Thing Two, where you want to be able to import bindings into a specific phase, or any other set of activities, it makes sense to enable such meta definitions generally.


Standardize two forms:

(meta . definition)
(at-meta levels . definition)

The first meta evaluates the definition one phase up from where the meta call occurs. at-meta allows the evaluation to be visible at a number of phases specified by levels. Levels is a list of exact non-negative integers or the keyword ... The keyword .. should follow and come before integers. n .. m is the same as spelling out all the integers from n to m.


This is a more general mechanism for controlling the visibility of definitions, and allows you to introduce definitions inside of modules into different phases as well as control the visibility of imports, provided that ModulesAndPackagesArcfide is standardized.