proj-plbook-plChModules

todo

https://odin-lang.org/docs/overview/#using-statement

"using can used to bring entities declared in a scope/namespace into the current scope. This can be applied to import declarations, import names, struct fields, procedure fields, and struct values."

---

" Rust is one of the few languages which has first-class concept of libraries. Rust code is organized on two levels:

    as a tree of inter-dependent modules inside a crate
    and as a directed acyclic graph of crates

Cyclic dependencies are allowed between the modules, but not between the crates. Crates are units of reuse and privacy: only crate’s public API matters, and it is crystal clear what crate’s public API is. Moreover, crates are anonymous, so you don’t get name conflicts and dependency hell when mixing several versions of the same crate in a single crate graph.

This makes it very easy to make two pieces of code not depend on each other (non-dependencies are the essence of modularity): just put them in separate crates. During code review, only changes to Cargo.tomls need to be monitored carefully. " -- [1]

---

https://lobste.rs/s/8bczn4/for_those_familiar_with_go_cargo_npm_etc


on programming language package managers vs OS package managers:

https://utcc.utoronto.ca/~cks/space/blog/tech/PackageManagersTwoTypes

---

Designing an ML-family language on top of TypeScript: import and export syntax contains a review of how various programming language approach module import and export syntax

---