Formerly Morgan-Stanley/morphir-elm. Search finds this package by either name.
Modules are used to group types and values together to make them easier to find. A module serves the same purpose as a package in Java or namespaces in other languages. A module is identified by a module name within the package. Within a module each type and value is identified using a local name.
Modules are available at two different levels of detail. A module specification only contains types that are exposed publicly and type signatures for values that are exposed publicly. A module definition contains all the details including implementation and private types and values.
Type that represents a module specification. A module specification only contains types that are exposed publicly and type signatures for values that are exposed publicly.
A module contains types and values which is represented by two field in this type:
Get an empty module specification with no types or values.
Type that represents a module definition. A module definition contains all the details including implementation and private types and values.
A module contains types and values which is represented by two field in this type:
Get an empty module definition with no types or values.
Turn a module definition into a module specification. Only publicly exposed types and values will be included in the result.
Turn a module definition into a module specification. Non-exposed types and values will also be included in the result.
Look up a type specification by its name in a module specification.
Look up a value specification by its name in a module specification.
Look up a value definition by its name in a module specification.
Remove all type attributes from a module specification.
Remove all type attributes from a module definition.
A module name is a unique identifier for a module within a package. It is represented by a path, which is a list of names.