Elm code generation from L2 models. This can be used when writing a code generator that outputs Elm code. It can be used to generate type declarations and type annotations for Elm data models.
Type declarations:
Lowerings of L2 into Elm type annotations:
Lowers an L1 type into an Elm type annotation.
Lowers an L1 function type into an Elm type annotation
Turns an L1 type declaration into Elm code.
A type can result in a list of declarations - enums in addition to declaring a type can also declare the permitted enum values.