What is a MeTTa Module?
mainIn the Hyperon/MeTTa ecosystem, a module is a unit of functionality designed for modularity rather than just package management.
Definition: A module is a unit of functionality that can be loaded into a MeTTa runner and used by other MeTTa code without requiring modification of the module, regardless of the loading location or format.
Key Characteristics:
- Independence: A module should be testable independently of the client code that loads it.
- Self-Contained Dependencies: A module should express its own sub-module dependencies and should not rely on the client to manually import sub-dependencies or configure the environment.
- Isolation: A module's implementation should not be affected by the client's definitions (e.g., atoms or tokens) except through the module's defined interface.
By analogy, modules behave more like Rust mods or shared libraries than C header files.