Usually when this situation arises, the collection is divided as you suggest 
into a `foo/base` module that has minimal dependencies and a small "kernel" 
API, while various `foo/X` modules provide things that either are logically not 
necessary in the base API or may trigger large dependencies. For users that 
don't really care about the dependencies and just want a convenient entrypoint, 
the `foo` collection (implemented by the `foo/main` module) re-provides 
everything from the various `foo/*` modules. However, other libraries like 
`bar` wouldn't be re-provided.

If you're writing a module like `foo/main` that just requires and provides 
other libraries, you can use the `reprovide` package to minimize how much work 
that takes. In your case, a `simple-polynomial/main.rkt` module would be:

#lang reprovide
"base.rkt"
"spline.rkt"

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to