The Morphir IR
The Morphir.IR
module defines a type-safe API to work with Morphir's intermediate representation. The module
structure follows the structure of the IR. Here's a list of concepts in a top-down approach:
- Distribution is the output
of
morphir-elm make
. It represents a whole package with all of its dependencies. - Package represents a set of modules that are versioned together.
- Module is a container to group types and values.
- Types allow you to describe your domain model.
- Values allows you to describe your business logic.
- Names provide a naming
convention agnostic representation for all nodes that can be named: types, values, modules and packages. Names can be
composed into hierarchies:
- path is a list of names
- qualifield name is a module path with a local name
- fully-qualifield name is a package path with a qualified name
- AccessControlled is a utility to define visibility constraints for modules, types and values