User-defined coprocessor functions are best viewed as living in their own package (module), which is set up in a special magical way. That is, when you are in some other package, i.e. any package you can actually get to via scheme48's user interface, these names aren't local. bulk-define forms are logically evaluated within the special coprocessor packages, so they can use the names of other coprocessor functions but not the names of other objects found in your local packages.
For convenience, when you run bulk-define, it exports the name of your new coprocessor function to your local package. Therefore, when you define a coprocessor function named foo, you can call it just as you would call any other scheme function:
However, if you define a coprocessor function and then switch packages, you will discover that scheme48 no longer knows your coprocessor function name. This will happen also if you are using a customized coprocessor function with some user-defined C functions linked into it. To make a coprocessor function name visible, use the special form bulk-import.
With one argument, it imports the coprocessor function with its original name. With two arguments, it defines the first (local) name to point to the same function as the second (coprocessor package) name. That is, it imports the coprocessor function but under another name. Notice that the function names should not be quoted.
Ownership, Maintenance and Disclaimers
Manual Top Page