SRFI Support
~~~~~~~~~~~~

The SRFIs (Scheme Requests For Implementations) is an Internet-based
collection of Scheme code designed and provided by Scheme
programmers. The SRFI effort is open to anyone, and is described at
http://srfi.schemers.org[]

The fundamental SRFI is SRFI-0, "Feature-based conditional expansion
construct", which allows a program to query the underlying
implementation about the available SRFIs (and potentially about other
implementation features) at macro expansion time. The design documents
for this and other SRFIs are available at the web site shown above.

Larceny 1.0a2 has built-in support for 
http://srfi.schemers.org/srfi-0[SRFI-0], 
http://srfi.schemers.org/srfi-6[SRFI-6] and
http://srfi.schemers.org/srfi-11[SRFI-11]. 
In addition, a procedural interface to SRFI-0 is
provided that allows the programmer to add new SRFI keys and to
perform interactive queries about supported SRFIs.

It is useful to be able to add SRFI keys dynamically because many
SRFIs are implementable in standard Scheme and can be provided by
third parties. For example, the reference implementation for
http://srfi.schemers.org/srfi-7[SRFI-7] will work "out of the box" if 
loaded into Larceny, but programs cannot discover its presence until SRFI-0 
has been made aware of its presence.

Larceny 1.0a2 also provides the following nonstandard SRFI keys: 
    
    
        larceny
        larceny-1.0a2
        r5rs
        r4rs
    

The previous release of Larceny did not provide any SRFI support. 

proc:srfi0-add-key![args="key",result="unspecified"]

Add the symbol _key_ to the list of keys recognized by the SRFI-0 implementation.

proc:srfi0-keys[args="none",result="list"]

Return a list of symbols naming the SRFIs that are currently supported.
