A distribution is a complete package of Morphir types and functions with all their dependencies.
morphir-elm make produces a JSON that represents a Distribution. We are planning to define different types of
distributions in the future but currently the only one is Library. A library contains the following pieces of
information:
Look up a module specification by package and module path in a distribution.
Look up a type specification by package, module and local name in a distribution.
Look up a value specification by package, module and local name in a distribution.
Look up the base type name following aliases by package, module and local name in a distribution.
Look up a value definition by qualified name in a distribution. The value will only be searched in the current package.
Get the package specification of a distribution.
Get the package name of a distribution.
Get all type specifications.
Look up a type constructor by fully-qualified name. Dependencies will be included in the search. The function returns a tuple with the following elements:
Follow direct aliases until the leaf type is found.
Fully resolve all type aliases in the type.
Replace record constructors with the corresponding record value.
Add a package specification as a dependency of this library.
Type that represents a package distribution. Currently the only distribution type we provide is a
Library.