moonbitlang/parser/syntax does not have a README file
pub(open) trait ImplMapVisitor {
visit_impl(Self, Impl) -> Impl = _
visit_top_expr(Self, expr~ : Expr, is_main~ : Bool, local_types~ : List[LocalTypeDecl], loc~ : Location) -> Impl = _
visit_top_test(Self, expr~ : Expr, name~ : (String, Location)?, params~ : List[Parameter]?, local_types~ : List[LocalTypeDecl], loc~ : Location, attrs~ : List[Attribute], doc~ : DocString) -> Impl = _
visit_top_type_def(Self, TypeDecl) -> Impl = _
visit_top_func_def(Self, fun_decl~ : FunDecl, decl_body~ : DeclBody, loc~ : Location) -> Impl = _
visit_top_func_alias(Self, pkg~ : Label?, type_name~ : Label?, targets~ : List[AliasTarget], vis~ : Visibility, attrs~ : List[Attribute], is_list~ : Bool, doc~ : DocString, loc~ : Location) -> Impl = _
visit_top_let_def(Self, binder~ : Binder, ty~ : Type?, expr~ : Expr, vis~ : Visibility, is_constant~ : Bool, loc~ : Location, attrs~ : List[Attribute], doc~ : DocString) -> Impl = _
visit_top_trait(Self, TraitDecl) -> Impl = _
visit_top_batch_type_alias(Self, pkg~ : Label?, targets~ : List[AliasTarget], vis~ : Visibility, loc~ : Location, attrs~ : List[Attribute], is_list~ : Bool, doc~ : DocString) -> Impl = _
visit_top_batch_trait_alias(Self, pkg~ : Label?, targets~ : List[AliasTarget], vis~ : Visibility, loc~ : Location, attrs~ : List[Attribute], is_list~ : Bool, doc~ : DocString) -> Impl = _
visit_top_impl(Self, self_ty~ : Type?, trait_~ : TypeName, method_name~ : Binder, has_error~ : Location?, quantifiers~ : List[TypeVarBinder], params~ : List[Parameter], ret_ty~ : Type?, err_ty~ : ErrorType, body~ : DeclBody, vis~ : Visibility, loc~ : Location, attrs~ : List[Attribute], doc~ : DocString) -> Impl = _
visit_top_view(Self, quantifiers~ : List[TypeVarBinder], source_ty~ : Type, view_type_name~ : String, view_type_loc~ : Location, view_constrs~ : List[ConstrDecl], view_func_name~ : Binder, parameters~ : List[Parameter], params_loc~ : Location, body~ : Expr, vis~ : Visibility, loc~ : Location, attrs~ : List[Attribute], doc~ : DocString) -> Impl = _
visit_top_impl_relation(Self, self_ty~ : Type, trait_~ : TypeName, quantifiers~ : List[TypeVarBinder], vis~ : Visibility, attrs~ : List[Attribute], loc~ : Location, doc~ : DocString) -> Impl = _
visit_expr(Self, Expr) -> Expr = _
visit_apply(Self, func~ : Expr, args~ : List[Argument], attr~ : ApplyAttr, loc~ : Location) -> Expr = _
visit_infix(Self, op~ : Var, lhs~ : Expr, rhs~ : Expr, loc~ : Location) -> Expr = _
visit_unary(Self, op~ : Var, expr~ : Expr, loc~ : Location) -> Expr = _
visit_array(Self, exprs~ : List[Expr], loc~ : Location) -> Expr = _
visit_array_spread(Self, elems~ : List[SpreadableElem], loc~ : Location) -> Expr = _
visit_array_get(Self, array~ : Expr, index~ : Expr, loc~ : Location) -> Expr = _
visit_array_get_slice(Self, array~ : Expr, start_index~ : Expr?, end_index~ : Expr?, index_loc~ : Location, loc~ : Location) -> Expr = _
visit_array_set(Self, array~ : Expr, index~ : Expr, value~ : Expr, loc~ : Location) -> Expr = _
visit_array_augmented_set(Self, op~ : Var, array~ : Expr, index~ : Expr, value~ : Expr, loc~ : Location) -> Expr = _
visit_constant(Self, c~ : Constant, loc~ : Location) -> Expr = _
visit_multiline_string(Self, elems~ : List[MultilineStringElem], loc~ : Location) -> Expr = _
visit_interp(Self, elems~ : List[InterpElem], loc~ : Location) -> Expr = _
visit_constraint(Self, expr~ : Expr, ty~ : Type, loc~ : Location) -> Expr = _
visit_constr(Self, constr~ : Constructor, loc~ : Location) -> Expr = _
visit_while(Self, loop_cond~ : Expr, loop_body~ : Expr, while_else~ : Expr?, label~ : Label?, loc~ : Location) -> Expr = _
visit_function(Self, func~ : Func, loc~ : Location) -> Expr = _
visit_ident(Self, id~ : Var, loc~ : Location) -> Expr = _
visit_if(Self, cond~ : Expr, ifso~ : Expr, ifnot~ : Expr?, loc~ : Location) -> Expr = _
visit_guard(Self, cond~ : Expr, otherwise~ : Expr?, body~ : Expr, loc~ : Location) -> Expr = _
visit_is(Self, expr~ : Expr, pat~ : Pattern, loc~ : Location) -> Expr = _
visit_defer(Self, expr~ : Expr, body~ : Expr, loc~ : Location) -> Expr = _
visit_let_fn(Self, name~ : Binder, func~ : Func, body~ : Expr, loc~ : Location) -> Expr = _
visit_let_rec(Self, bindings~ : List[(Binder, Func)], body~ : Expr, loc~ : Location) -> Expr = _
visit_let_and(Self, bindings~ : List[(Binder, Type?, Func)], body~ : Expr, loc~ : Location) -> Expr = _
visit_let(Self, pattern~ : Pattern, expr~ : Expr, body~ : Expr, loc~ : Location) -> Expr = _
visit_sequence(Self, exprs~ : List[Expr], last_expr~ : Expr, loc~ : Location) -> Expr = _
visit_tuple(Self, exprs~ : List[Expr], loc~ : Location) -> Expr = _
visit_record(Self, type_name~ : TypeName?, fields~ : List[FieldDef], trailing~ : TrailingMark, loc~ : Location) -> Expr = _
visit_record_update(Self, type_name~ : TypeName?, record~ : Expr, fields~ : List[FieldDef], loc~ : Location) -> Expr = _
visit_field(Self, record~ : Expr, accessor~ : Accessor, loc~ : Location) -> Expr = _
visit_method(Self, type_name~ : TypeName, method_name~ : Label, loc~ : Location) -> Expr = _
visit_dot_apply(Self, self~ : Expr, method_name~ : Label, args~ : List[Argument], return_self~ : Bool, attr~ : ApplyAttr, loc~ : Location) -> Expr = _
visit_as(Self, expr~ : Expr, trait_~ : TypeName, loc~ : Location) -> Expr = _
visit_mutate(Self, record~ : Expr, accessor~ : Accessor, field~ : Expr, augmented_by~ : Var?, loc~ : Location) -> Expr = _
visit_match(Self, expr~ : Expr, cases~ : List[Case], match_loc~ : Location, using_~ : Label?, loc~ : Location) -> Expr = _
visit_let_mut(Self, binder~ : Binder, ty~ : Type?, expr~ : Expr, body~ : Expr, loc~ : Location) -> Expr = _
visit_pipe(Self, lhs~ : Expr, rhs~ : Expr, loc~ : Location) -> Expr = _
visit_assign(Self, var_~ : Var, expr~ : Expr, augmented_by~ : Var?, loc~ : Location) -> Expr = _
visit_hole(Self, loc~ : Location, kind~ : Hole) -> Expr = _
visit_return(Self, return_value~ : Expr?, loc~ : Location) -> Expr = _
visit_raise(Self, err_value~ : Expr, loc~ : Location) -> Expr = _
visit_unit(Self, loc~ : Location, faked~ : Bool) -> Expr = _
visit_break(Self, arg~ : Expr?, label~ : Label?, loc~ : Location) -> Expr = _
visit_continue(Self, args~ : List[Expr], label~ : Label?, loc~ : Location) -> Expr = _
visit_loop(Self, args~ : List[Expr], body~ : List[MultiArgCase], label~ : Label?, loop_loc~ : Location, loc~ : Location) -> Expr = _
visit_for(Self, binders~ : List[(Binder, Expr)], condition~ : Expr?, continue_block~ : List[(Binder, Expr)], body~ : Expr, for_else~ : Expr?, label~ : Label?, loc~ : Location) -> Expr = _
visit_for_each(Self, binders~ : List[Binder?], expr~ : Expr, body~ : Expr, else_block~ : Expr?, label~ : Label?, loc~ : Location) -> Expr = _
visit_try(Self, body~ : Expr, catch_~ : List[Case], catch_all~ : Bool, try_else~ : List[Case]?, has_try~ : Bool, try_loc~ : Location, catch_loc~ : Location, else_loc~ : Location, loc~ : Location) -> Expr = _
visit_try_operator(Self, body~ : Expr, kind~ : TryOperatorKind, try_loc~ : Location, loc~ : Location) -> Expr = _
visit_map(Self, elems~ : List[MapExprElem], loc~ : Location) -> Expr = _
visit_group(Self, expr~ : Expr, group~ : Group, loc~ : Location) -> Expr = _
visit_static_assert(Self, asserts~ : List[StaticAssertion], body~ : Expr) -> Expr = _
}impl ToJson for AliasTargetpub(all) enum ApplyAttr {
NoAttr
Exclamation
Question
}pub(all) enum ArrayPatterns {
Closed(List[ArrayPattern])
Open(List[ArrayPattern], List[ArrayPattern], DotDotBinder)
}impl ToJson for ArrayPatternspub(all) enum AttributeExpr {
Ident(AttributeId)
Str(String)
Apply(AttributeId, List[AttributeProp])
}pub(all) enum Constant {
Bool(Bool)
Byte(String)
Bytes(String)
Char(String)
Int(String)
Int64(String)
UInt(String)
UInt64(String)
Float(String)
Double(String)
String(String)
BigInt(String)
}pub(all) struct ConstrDecl {
name : ConstrName
args : List[ConstrParam]?
tag : (String, Location)?
loc : Location
attrs : List[Attribute]
doc : DocString
}impl ToJson for ConstrDeclimpl ToJson for ConstrParamimpl ToJson for DerivingDirectiveimpl ToJson for DotDotBinderpub(all) enum Expr {
Apply(Expr, List[Argument], ApplyAttr, Location)
Infix(Var, Expr, Expr, Location)
Unary(Var, Expr, Location)
Array(List[Expr], Location)
ArraySpread(List[SpreadableElem], Location)
ArrayGet(Expr, Expr, Location)
ArrayGetSlice(Expr, Expr?, Expr?, Location, Location)
ArraySet(Expr, Expr, Expr, Location)
ArrayAugmentedSet(Var, Expr, Expr, Expr, Location)
Constant(Constant, Location)
MultilineString(List[MultilineStringElem], Location)
Interp(List[InterpElem], Location)
Constraint(Expr, Type, Location)
Constr(Constructor, Location)
While(Expr, Expr, Expr?, Label?, Location)
Function(Func, Location)
Ident(Var, Location)
If(Expr, Expr, Expr?, Location)
Guard(Expr, Expr?, Expr, Location)
Is(Expr, Pattern, Location)
Defer(Expr, Expr, Location)
LetFn(Binder, Func, Expr, Location)
LetRec(List[(Binder, Func)], Expr, Location)
LetAnd(List[(Binder, Type?, Func)], Expr, Location)
Let(Pattern, Expr, Expr, Location)
Sequence(List[Expr], Expr, Location)
Tuple(List[Expr], Location)
Record(TypeName?, List[FieldDef], TrailingMark, Location)
RecordUpdate(TypeName?, Expr, List[FieldDef], Location)
Field(Expr, Accessor, Location)
Method(TypeName, Label, Location)
DotApply(Expr, Label, List[Argument], Bool, ApplyAttr, Location)
As(Expr, TypeName, Location)
Mutate(Expr, Accessor, Expr, Var?, Location)
Match(Expr, List[Case], Location, Label?, Location)
LetMut(Binder, Type?, Expr, Expr, Location)
Pipe(Expr, Expr, Location)
Assign(Var, Expr, Var?, Location)
Hole(Location, Hole)
Return(Expr?, Location)
Raise(Expr, Location)
Unit(Location, Bool)
Break(Expr?, Label?, Location)
Continue(List[Expr], Label?, Location)
Loop(List[Expr], List[MultiArgCase], Label?, Location, Location)
For(List[(Binder, Expr)], Expr?, List[(Binder, Expr)], Expr, Expr?, Label?, Location)
ForEach(List[Binder?], Expr, Expr, Expr?, Label?, Location)
Try(Expr, List[Case], Bool, List[Case]?, Bool, Location, Location, Location, Location)
TryOperator(Expr, TryOperatorKind, Location, Location)
Map(List[MapExprElem], Location)
Group(Expr, Group, Location)
StaticAssert(List[StaticAssertion], Expr)
}pub(all) enum FnKind {
Lambda
Matrix
Arrow
}pub(all) enum Group {
Brace
Paren
}pub(all) enum Hole {
Synthesized
Incomplete
Todo
}pub(all) enum Impl {
TopExpr(Expr, Bool, List[LocalTypeDecl], Location)
TopTest(Expr, (String, Location)?, List[Parameter]?, List[LocalTypeDecl], Location, List[Attribute], DocString)
TopTypeDef(TypeDecl)
TopFuncDef(FunDecl, DeclBody, Location)
TopFuncAlias(Label?, Label?, List[AliasTarget], Visibility, List[Attribute], Bool, DocString, Location)
TopLetDef(Binder, Type?, Expr, Visibility, Bool, Location, List[Attribute], DocString)
TopTrait(TraitDecl)
TopBatchTypeAlias(Label?, List[AliasTarget], Visibility, Location, List[Attribute], Bool, DocString)
TopBatchTraitAlias(Label?, List[AliasTarget], Visibility, Location, List[Attribute], Bool, DocString)
TopImpl(Type?, TypeName, Binder, Location?, List[TypeVarBinder], List[Parameter], Type?, ErrorType, DeclBody, Visibility, Location, List[Attribute], DocString)
TopView(List[TypeVarBinder], Type, String, Location, List[ConstrDecl], Binder, List[Parameter], Location, Expr, Visibility, Location, List[Attribute], DocString)
TopImplRelation(Type, TypeName, List[TypeVarBinder], Visibility, List[Attribute], Location, DocString)
}pub(all) struct LocalTypeDecl {
tycon : String
tycon_loc : Location
components : TypeDesc
deriving : List[DerivingDirective]
}impl ToJson for LocalTypeDeclpub(all) enum LongIdent {
Ident(String)
Dot(String, String)
}impl ToJson for MapExprElempub(all) type MapVisitorBase[T] Timpl ImplMapVisitor for MapVisitorBase[T]fn[T : ImplMapVisitor] visit_apply(env : MapVisitorBase[T], func~ : Expr, args~ : List[Argument], attr~ : ApplyAttr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_array(env : MapVisitorBase[T], exprs~ : List[Expr], loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_array_augmented_set(env : MapVisitorBase[T], op~ : Var, array~ : Expr, index~ : Expr, value~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_array_get(env : MapVisitorBase[T], array~ : Expr, index~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_array_get_slice(env : MapVisitorBase[T], array~ : Expr, start_index~ : Expr?, end_index~ : Expr?, index_loc~ : Location, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_array_set(env : MapVisitorBase[T], array~ : Expr, index~ : Expr, value~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_array_spread(env : MapVisitorBase[T], elems~ : List[SpreadableElem], loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_as(env : MapVisitorBase[T], expr~ : Expr, trait_~ : TypeName, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_assign(env : MapVisitorBase[T], var_~ : Var, expr~ : Expr, augmented_by~ : Var?, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_break(env : MapVisitorBase[T], arg~ : Expr?, label~ : Label?, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_constant(env : MapVisitorBase[T], c~ : Constant, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_constr(env : MapVisitorBase[T], constr~ : Constructor, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_constraint(env : MapVisitorBase[T], expr~ : Expr, ty~ : Type, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_continue(env : MapVisitorBase[T], args~ : List[Expr], label~ : Label?, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_defer(env : MapVisitorBase[T], expr~ : Expr, body~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_dot_apply(env : MapVisitorBase[T], self~ : Expr, method_name~ : Label, args~ : List[Argument], return_self~ : Bool, attr~ : ApplyAttr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_field(env : MapVisitorBase[T], record~ : Expr, accessor~ : Accessor, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_for_each(env : MapVisitorBase[T], binders~ : List[Binder?], expr~ : Expr, body~ : Expr, else_block~ : Expr?, label~ : Label?, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_function(env : MapVisitorBase[T], func~ : Func, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_group(env : MapVisitorBase[T], expr~ : Expr, group~ : Group, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_guard(env : MapVisitorBase[T], cond~ : Expr, otherwise~ : Expr?, body~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_if(env : MapVisitorBase[T], cond~ : Expr, ifso~ : Expr, ifnot~ : Expr?, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_infix(env : MapVisitorBase[T], op~ : Var, lhs~ : Expr, rhs~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_interp(env : MapVisitorBase[T], elems~ : List[InterpElem], loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_is(env : MapVisitorBase[T], expr~ : Expr, pat~ : Pattern, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_let(env : MapVisitorBase[T], pattern~ : Pattern, expr~ : Expr, body~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_let_and(env : MapVisitorBase[T], bindings~ : List[(Binder, Type?, Func)], body~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_let_fn(env : MapVisitorBase[T], name~ : Binder, func~ : Func, body~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_let_mut(env : MapVisitorBase[T], binder~ : Binder, ty~ : Type?, expr~ : Expr, body~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_let_rec(env : MapVisitorBase[T], bindings~ : List[(Binder, Func)], body~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_loop(env : MapVisitorBase[T], args~ : List[Expr], body~ : List[MultiArgCase], label~ : Label?, loop_loc~ : Location, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_map(env : MapVisitorBase[T], elems~ : List[MapExprElem], loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_match(env : MapVisitorBase[T], expr~ : Expr, cases~ : List[Case], match_loc~ : Location, using_~ : Label?, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_method(env : MapVisitorBase[T], type_name~ : TypeName, method_name~ : Label, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_multiline_string(env : MapVisitorBase[T], elems~ : List[MultilineStringElem], loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_mutate(env : MapVisitorBase[T], record~ : Expr, accessor~ : Accessor, field~ : Expr, augmented_by~ : Var?, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_pipe(env : MapVisitorBase[T], lhs~ : Expr, rhs~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_raise(env : MapVisitorBase[T], err_value~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_record(env : MapVisitorBase[T], type_name~ : TypeName?, fields~ : List[FieldDef], trailing~ : TrailingMark, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_record_update(env : MapVisitorBase[T], type_name~ : TypeName?, record~ : Expr, fields~ : List[FieldDef], loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_return(env : MapVisitorBase[T], return_value~ : Expr?, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_sequence(env : MapVisitorBase[T], exprs~ : List[Expr], last_expr~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_static_assert(env : MapVisitorBase[T], asserts~ : List[StaticAssertion], body~ : Expr) -> Exprfn[T : ImplMapVisitor] visit_top_batch_trait_alias(env : MapVisitorBase[T], pkg~ : Label?, targets~ : List[AliasTarget], vis~ : Visibility, loc~ : Location, attrs~ : List[Attribute], is_list~ : Bool, doc~ : DocString) -> Implfn[T : ImplMapVisitor] visit_top_batch_type_alias(env : MapVisitorBase[T], pkg~ : Label?, targets~ : List[AliasTarget], vis~ : Visibility, loc~ : Location, attrs~ : List[Attribute], is_list~ : Bool, doc~ : DocString) -> Implfn[T : ImplMapVisitor] visit_top_expr(env : MapVisitorBase[T], expr~ : Expr, is_main~ : Bool, local_types~ : List[LocalTypeDecl], loc~ : Location) -> Implfn[T : ImplMapVisitor] visit_top_func_alias(env : MapVisitorBase[T], pkg~ : Label?, type_name~ : Label?, targets~ : List[AliasTarget], vis~ : Visibility, attrs~ : List[Attribute], is_list~ : Bool, doc~ : DocString, loc~ : Location) -> Implfn[T : ImplMapVisitor] visit_top_func_def(env : MapVisitorBase[T], fun_decl~ : FunDecl, decl_body~ : DeclBody, loc~ : Location) -> Implfn[T : ImplMapVisitor] visit_top_impl(env : MapVisitorBase[T], self_ty~ : Type?, trait_~ : TypeName, method_name~ : Binder, has_error~ : Location?, quantifiers~ : List[TypeVarBinder], params~ : List[Parameter], ret_ty~ : Type?, err_ty~ : ErrorType, body~ : DeclBody, vis~ : Visibility, loc~ : Location, attrs~ : List[Attribute], doc~ : DocString) -> Implfn[T : ImplMapVisitor] visit_top_impl_relation(env : MapVisitorBase[T], self_ty~ : Type, trait_~ : TypeName, quantifiers~ : List[TypeVarBinder], vis~ : Visibility, attrs~ : List[Attribute], loc~ : Location, doc~ : DocString) -> Implfn[T : ImplMapVisitor] visit_top_let_def(env : MapVisitorBase[T], binder~ : Binder, ty~ : Type?, expr~ : Expr, vis~ : Visibility, is_constant~ : Bool, loc~ : Location, attrs~ : List[Attribute], doc~ : DocString) -> Implfn[T : ImplMapVisitor] visit_top_test(env : MapVisitorBase[T], expr~ : Expr, name~ : (String, Location)?, params~ : List[Parameter]?, local_types~ : List[LocalTypeDecl], loc~ : Location, attrs~ : List[Attribute], doc~ : DocString) -> Implfn[T : ImplMapVisitor] visit_top_view(env : MapVisitorBase[T], quantifiers~ : List[TypeVarBinder], source_ty~ : Type, view_type_name~ : String, view_type_loc~ : Location, view_constrs~ : List[ConstrDecl], view_func_name~ : Binder, parameters~ : List[Parameter], params_loc~ : Location, body~ : Expr, vis~ : Visibility, loc~ : Location, attrs~ : List[Attribute], doc~ : DocString) -> Implfn[T : ImplMapVisitor] visit_try_operator(env : MapVisitorBase[T], body~ : Expr, kind~ : TryOperatorKind, try_loc~ : Location, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_tuple(env : MapVisitorBase[T], exprs~ : List[Expr], loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_unary(env : MapVisitorBase[T], op~ : Var, expr~ : Expr, loc~ : Location) -> Exprfn[T : ImplMapVisitor] visit_while(env : MapVisitorBase[T], loop_cond~ : Expr, loop_body~ : Expr, while_else~ : Expr?, label~ : Label?, loc~ : Location) -> Exprimpl ToJson for MultiArgCasepub(all) enum Pattern {
Alias(Pattern, Binder, Location)
Any(Location)
Array(ArrayPatterns, Location)
Constant(Constant, Location)
Constraint(Pattern, Type, Location)
Constr(Constructor, List[ConstrPatArg]?, Bool, Location)
Or(Pattern, Pattern, Location)
Tuple(List[Pattern], Location)
Var(Binder)
Record(List[FieldPat], Bool, Location)
Map(List[MapPatElem], Bool, Location)
Range(Pattern, Pattern, Bool, Location)
}impl ToJson for SpreadableElemimpl ToJson for StaticAssertionpub(all) struct TraitDecl {
name : Binder
supers : List[TypeVarConstraint]
methods : List[TraitMethodDecl]
vis : Visibility
loc : Location
attrs : List[Attribute]
doc : DocString
}pub(all) struct TypeDecl {
tycon : String
tycon_loc : Location
params : List[TypeDeclBinder]
components : TypeDesc
attrs : List[Attribute]
doc : DocString
type_vis : Visibility
deriving : List[DerivingDirective]
loc : Location
}pub(all) enum TypeDesc {
Abstract
Extern
Newtype(Type)
Error(ExceptionDecl)
Variant(List[ConstrDecl])
Record(List[FieldDecl])
TupleStruct(List[Type])
Alias(Type)
}impl ToJson for TypeVarConstraintimpl ToJson for Visibilityfn make_constr_pattern(loc~ : Location, constr : Constructor, args : List[ConstrPatArg]?, is_open : Bool) -> Pattern