Shiro Kawai scripsit:

> I don't understand.  My application can work with and without
> Good-Module, but wants to use it if available.
> Somewhere in my app I need to say (import Good-Module) in
> order to use existing Scheme module Good-Module, right?

I'm doing a bad job of explaining.  The idea is not that there are
Good-Module and Fallback-Module, but that there is a single module with
good and fallback implementations, and you use expand-time conditionals
to decide which you can use.  The idea is that an application needs
whatever Scheme API it needs, but it can choose which implementation of
that API to use based on external circumstances.

Here's another example: A Posix module exports some list of identifiers.
There might be three implementations: one for actual Posix systems, one
for Windows systems with some of the function stubbed out, and one for
embedded systems with everything stubbed out.  There's only a single module
file, but based on the presence or absence of "on-posix" and "on-windows"
cond-expand flags, it can decide which implementation to incorporate
using INCLUDE.

Note that "on-posix" doesn't mean there is a Posix module loaded, but that
(according to the implementation) the OS is a Posix one.  Cond-expand
flags *include* the modules that have been loaded, but aren't limited
to just those: they can contain all sorts of implementation-specific or
semi-standard flags as well.

-- 
Mos Eisley spaceport.  You will never           John Cowan
see a more wretched hive of scum and            [email protected]
villainy --unless you watch the                http://www.ccil.org/~cowan
Jerry Springer Show.   --georgettesworld.com

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to