Hi Andy,

> guile> (resolve-module '(foo))
> $1 = #<directory (foo) b7f11bb0>
> guile> (beautify-user-module! $1)
> $2 = (#<interface (guile) b7f8aef0>)
> guile> (module-ref $1 'sin)
> $3 = #<procedure sin (z)>
> guile>

`beautify-user-module!' is great and all, but it doesn't give me any
options about what to import -- it takes everything from
`the-scm-module' and puts it into my module.  Let's say,
hypothetically, that I were interested in creating an environment in
which only some core R5RS / R6RS syntactic forms were available (e.g.,
`if', `cond', etc.) -- is there a way I could do that?

Incidentally, my naive attempt to refine the behavior of
`beautify-user-module!' straight-up failed:

guile> (define m (resolve-module '(foo)))
guile> (let ((interface (make-module 31)))
... (set-module-name! interface (module-name m))
... (set-module-kind! interface 'interface)
... (set-module-public-interface! m interface))
#f
guile> (set-module-uses! m '((guile) :select (if)))
((guile) :select (if))
guile> (set-current-module m)
#<directory (guile-user) b7d61630>
guile> if
Segmentation fault


Regards,
Julian


Reply via email to