Skip to main content

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:
  • AccessControlled is a utility to define visibility constraints for modules, types and values