This syntax represents 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 declarations 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.
Custom type for all expressions such as:
Unit:()Application:add a bOperatorApplication:a + bFunctionOrValue:addorTrueIfBlock:if a then b else cPrefixOperator:(+)Operator:+(not possible to get in practice)Integer:42Hex:0x1FFloatable:42.0Negation:-aLiteral:"text"CharLiteral:'a'TupledExpression:(a, b)or(a, b, c)ParenthesizedExpression:(a)LetExpression:let a = 4 in aCaseExpression:case a offollowed by pattern matchesLambdaExpression:(\a -> a)RecordExpr:{ name = "text" }ListExpr:[ x, y ]RecordAccess:a.nameRecordAccessFunction:.nameRecordUpdateExpression:{ a | name = "text" }GLSLExpression:[glsl| ... |]