This syntax represens all that you can express in Elm.
Although it is a easy and simple language, you can express a lot! See the Expression type for all the things you can express.
Expression for a lambda
Expression for a let block
Union type for all possible declations in a let block
Expression for setting a record field
Expression for a case block
Type alias for a list of cases
A case in a case block
Type alias for a full function
Type alias for a function's implementation
Get the full range of a function
Check whether an expression is a lambda-expression
Check whether an expression is a let-expression
Check whether an expression is an if-else-expression
Check whether an expression is a case-expression
Check whether an expression is an operator appliation expression
Encode an Expression syntax element to JSON.
Encode a Function syntax element to JSON.
JSON decoder for an Expression syntax element.
JSON decoder for an Function syntax element.
Wrapper type for an expresion on a certain range