Elm code generation from L2 models. This can be used when writing an L3 code generator that output Elm code. It can be used to generate type declarations, type annotations and JSON codecs for Elm data models.
Type declarations:
Generates a Codec for an L1 type declaration.
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.