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.