Requesting Features
===================
SLIB creates and maintains a "catalog" mapping features to locations of
files introducing procedures and syntax denoted by those features.
At the beginning of each section of this manual, there is a line like
`(require 'FEATURE)'. The Scheme files comprising SLIB are cataloged
so that these feature names map to the corresponding files.
SLIB provides a form, `require', which loads the files providing the
requested feature.
- Procedure: require feature
* If `(provided? FEATURE)' is true, then `require' just returns
an unspecified value.
* Otherwise, if FEATURE is found in the catalog, then the
corresponding files will be loaded and an unspecified value
returned.
Subsequently `(provided? FEATURE)' will return `#t'.
* Otherwise (FEATURE not found in the catalog), an error is
signaled.
The catalog can also be queried using `require:feature->path'.
- Function: require:feature->path feature
* If FEATURE is already provided, then returns `#t'.
* Otherwise, if FEATURE is in the catalog, the path or list of
paths associated with FEATURE is returned.
* Otherwise, returns `#f'.