Module Flow_ast.Expression
type t('M, 'T) = ('T, t'('M, 'T));
and t'('M, 'T) =
| Array(Array.t('M, 'T))
| ArrowFunction(Function.t('M, 'T))
| AsExpression(AsExpression.t('M, 'T))
| Assignment(Assignment.t('M, 'T))
| Binary(Binary.t('M, 'T))
| Call(Call.t('M, 'T))
| Class(Class.t('M, 'T))
| Conditional(Conditional.t('M, 'T))
| Function(Function.t('M, 'T))
| Identifier(Identifier.t('M, 'T))
| Import(Import.t('M, 'T))
| JSXElement(JSX.element('M, 'T))
| JSXFragment(JSX.fragment('M, 'T))
| StringLiteral(StringLiteral.t('M))
| BooleanLiteral(BooleanLiteral.t('M))
| NullLiteral(option(Syntax.t('M, unit)))
| NumberLiteral(NumberLiteral.t('M))
| BigIntLiteral(BigIntLiteral.t('M))
| RegExpLiteral(RegExpLiteral.t('M))
| ModuleRefLiteral(ModuleRefLiteral.t('M, 'T))
| Logical(Logical.t('M, 'T))
| Member(Member.t('M, 'T))
| MetaProperty(MetaProperty.t('M))
| New(New.t('M, 'T))
| Object(Object.t('M, 'T))
| OptionalCall(OptionalCall.t('M, 'T))
| OptionalMember(OptionalMember.t('M, 'T))
| Sequence(Sequence.t('M, 'T))
| Super(Super.t('M))
| TaggedTemplate(TaggedTemplate.t('M, 'T))
| TemplateLiteral(TemplateLiteral.t('M, 'T))
| This(This.t('M))
| TypeCast(TypeCast.t('M, 'T))
| TSTypeCast(TSTypeCast.t('M, 'T))
| Unary(Unary.t('M, 'T))
| Update(Update.t('M, 'T))
| Yield(Yield.t('M, 'T))
;