Module expr

Source
Expand description

This module describes a abstract syntax tree that is almost like a concrete tree. It helps when it we have to statically analyse the tree in order to generate better error messages.

Structs§

AppBinding
A binding that is used inside applications.
Case
A match case with a constructor that will match the strutinizer, bindings to the names of each arguments and a right-hand side value. The ignore_rest flag useful to just fill all of the case bindings that are not used with a default name.
Expr
Describes a single expression inside Kind2.
Match
A match block that will be desugared into an eliminator of a datatype.
SeqRecord
Sttm
Structure of the insides of the do notation. It describes the idea of sequence inside a monad each monadic action contains a next element that is desugared into a ‘monadic bind’.
Substitution
Substitution

Enums§

Binding
A binding express the positional or named argument of a constructor or function.
CaseBinding
A case binding is a field or a rename of some field inside a match expression.
Destruct
A destruct of a single constructor. It’s a flat destruct and just translates into a eliminator for records.
ExprKind
Literal
SeqOperation
SttmKind

Type Aliases§

Spine
Vector of bindings