Information about the type or category of a bound variable.
- expr
(tp : TypeExpr)
: BindingKind
Variable is an expression with the given type.
- type
(ann : SourceRange)
(params : List String)
(value : Option TypeExpr)
: BindingKind
Variable is a type or parametric type.
Type variables may be declared as synonyms for existing types. In this case, the value is a type expression over the parameters.
- cat
(k : SyntaxCat)
: BindingKind
Variable belongs to the particular category below.
- tvar
(ann : SourceRange)
(name : String)
: BindingKind
Variable is a polymorphic type variable (for function type parameters). These are passed through to the dialect's typechecker for inference.
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- StrataDDM.Elab.BindingKind.instCoeTypeExpr = { coe := fun (tp : StrataDDM.TypeExpr) => StrataDDM.Elab.BindingKind.expr tp }
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- (StrataDDM.Elab.BindingKind.expr tp).categoryOf = StrataDDM.SyntaxCatF.atom (StrataDDM.TypeExprF.ann tp) { dialect := "Init", name := "Expr" }
- (StrataDDM.Elab.BindingKind.type loc params value).categoryOf = StrataDDM.SyntaxCatF.atom loc { dialect := "Init", name := "Type" }
- (StrataDDM.Elab.BindingKind.tvar loc name).categoryOf = StrataDDM.SyntaxCatF.atom loc { dialect := "Init", name := "Type" }
- (StrataDDM.Elab.BindingKind.cat c).categoryOf = c
Instances For
Equations
- StrataDDM.Elab.BindingKind.instToStrataFormat = { mformat := fun (bk : StrataDDM.Elab.BindingKind) => StrataDDM.Elab.BindingKind.instToStrataFormat._private_1 bk }
A single binder may declare multiple identifiers, but they all have the same type and metadata.
- ident : Var
- kind : BindingKind
Instances For
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
A sequence of bindings.
Includes an additional map that maps the identifiers to the index of the binder for them.
- ofArray :: (
- )
Instances For
Equations
- StrataDDM.Elab.Bindings.ofList l = { toArray := l.toArray }
Instances For
Instances For
Equations
- StrataDDM.Elab.Bindings.instEmptyCollection = { emptyCollection := StrataDDM.Elab.Bindings.empty }
Equations
Equations
- StrataDDM.Elab.Bindings.instRepr = { reprPrec := fun (b : StrataDDM.Elab.Bindings) (prec : Nat) => Repr.addAppParen (Std.format "ofArray " ++ Std.format (reprArg b.toArray)) prec }
- globalContext : GlobalContext
- bindings : Bindings
- map : Std.HashMap Var (Array Nat)
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- StrataDDM.Elab.TypingContext.empty globalContext = { globalContext := globalContext }
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Remove the last count entries pushed to tctx.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- tctx.pushBindings b = Array.foldl StrataDDM.Elab.TypingContext.push tctx b.toArray
Instances For
Create a new TypingContext with a different GlobalContext but the same local bindings. Used for recursive datatype definitions where the datatype name needs to be added to the GlobalContext before parsing constructor field types.
Equations
Instances For
This contains information about a bound or global variable.
- bvar (idx : Nat) (tpc : BindingKind) : VarBinding
- fvar (idx : FreeVarIndex) (tp : GlobalKind) : VarBinding
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Common information for each node in the Strata info tree.
- loc : SourceRange
Source location information.
- inputCtx : TypingContext
The typing context for node.
Instances For
Equations
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- op : Operation
- resultCtx : TypingContext
Instances For
Equations
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- cat : SyntaxCat
Instances For
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- expr : Expr
Instances For
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Equations
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- val : α
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
Instances For
Instances For
Instances For
Instances For
Equations
Equations
- StrataDDM.Elab.instInhabitedOptionInfo.default = { toElabInfo := default }
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- sep : SepFormat
- resultCtx : TypingContext
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
- ofOperationInfo (info : OperationInfo) : Info
- ofCatInfo (info : CatInfo) : Info
- ofExprInfo (info : ExprInfo) : Info
- ofTypeInfo (info : TypeInfo) : Info
- ofIdentInfo (info : IdentInfo) : Info
- ofNumInfo (info : NumInfo) : Info
- ofDecimalInfo (info : DecimalInfo) : Info
- ofStrlitInfo (info : StrlitInfo) : Info
- ofBytesInfo (info : ConstInfo ByteArray) : Info
- ofOptionInfo (info : OptionInfo) : Info
- ofSeqInfo (info : SeqInfo) : Info
Instances For
Equations
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- StrataDDM.Elab.instReprInfo = { reprPrec := StrataDDM.Elab.instReprInfo.repr }
Equations
- (StrataDDM.Elab.Info.ofOperationInfo info).asOp! = info
- x✝.asOp! = panicWithPosWithDecl "StrataDDM.Elab.Tree" "StrataDDM.Elab.Info.asOp!" 278 7 "Expected operation"
Instances For
Equations
- (StrataDDM.Elab.Info.ofExprInfo info).asExpr! = info
- x✝.asExpr! = panicWithPosWithDecl "StrataDDM.Elab.Tree" "StrataDDM.Elab.Info.asExpr!" 282 10 (toString "Expected expression but given " ++ toString (repr x✝))
Instances For
Equations
- (StrataDDM.Elab.Info.ofTypeInfo info).asType! = info
- x✝.asType! = panicWithPosWithDecl "StrataDDM.Elab.Tree" "StrataDDM.Elab.Info.asType!" 286 10 (toString "Expected type but given " ++ toString (repr x✝))
Instances For
Equations
- (StrataDDM.Elab.Info.ofIdentInfo info).asIdent! = info
- x✝.asIdent! = panicWithPosWithDecl "StrataDDM.Elab.Tree" "StrataDDM.Elab.Info.asIdent!" 290 7 "Expected identifier"
Instances For
Equations
- (StrataDDM.Elab.Info.ofOperationInfo a).elabInfo = a.toElabInfo
- (StrataDDM.Elab.Info.ofCatInfo a).elabInfo = a.toElabInfo
- (StrataDDM.Elab.Info.ofExprInfo a).elabInfo = a.toElabInfo
- (StrataDDM.Elab.Info.ofTypeInfo a).elabInfo = a.toElabInfo
- (StrataDDM.Elab.Info.ofIdentInfo a).elabInfo = a.toElabInfo
- (StrataDDM.Elab.Info.ofNumInfo a).elabInfo = a.toElabInfo
- (StrataDDM.Elab.Info.ofDecimalInfo a).elabInfo = a.toElabInfo
- (StrataDDM.Elab.Info.ofStrlitInfo a).elabInfo = a.toElabInfo
- (StrataDDM.Elab.Info.ofBytesInfo a).elabInfo = a.toElabInfo
- (StrataDDM.Elab.Info.ofOptionInfo a).elabInfo = a.toElabInfo
- (StrataDDM.Elab.Info.ofSeqInfo a).elabInfo = a.toElabInfo
Instances For
Instances For
Instances For
Equations
Equations
- StrataDDM.Elab.instReprTree = { reprPrec := StrataDDM.Elab.instReprTree.repr }
Equations
- (StrataDDM.Elab.Tree.node info children).info = info
Instances For
Equations
- (StrataDDM.Elab.Tree.node info children).children = children
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- tree.isSpecificOp expected = match tree.info with | StrataDDM.Elab.Info.ofOperationInfo info => decide (info.op.name = expected) | x => false
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.