Instead of having an import bind multiple libraries, e.g.
(import "balloon"
(only "stack" push! pop!)
...)
I suggest that import should work an only a single library at a time.
The reason is that the <import-set> specifies the library and at most
single special action (only, rename, add-prefix, etc.) What happens if
you need to do multiple actions for a library, e.g.
(import (only "stack" push! pop!)
(add-prefix "stack" stack:)
(rename "stack" (clear! empty!))
This could have a well-defined meaning (e.g. one gathers all "stack"
related clauses to process them in aggregation), but it seems
unnecessary, complex, and confusing to keep respecifying "stack"
What we want to say is "I am importing stack, and that also involves a
subset, a prefix addition, and a renames". I.e. specify the library
once, and then the subactions, e.g.
(import "stack" (only push! pop!) (add-prefix stack:) (rename (clear!
empty!)))
Much cleaner. To import multiple libraries, just have multiple import
statements:
(import "lib1") ; imports everything
(import "lib2" (except something-secret))
Cheers,
Ray Blaak