A type alias.
An type alias can either be holey or filled.
I believe that holey type aliases are those with generic parameters.
An elm type annotation.
The set of strings are the free type variables that the annotation contains.
A field in an elm record with an index and a type.
A type definition or alias in elm.
An elm custom type.
This record stores the type variables in vars
and the "options that you would
write a case statement for" in alts
.
Note: the binary data also includes the number of alternatives and some optimation information - this is all currently discarded.
A contructor for a custom type alternative.
TODO: document the meaning of each arg.
Note: some of these ints are redundant.