Module Flow_ast.Expression

module CallTypeArg: { ... };
module CallTypeArgs: { ... };
module SpreadElement: { ... };
module Array: { ... };
module TemplateLiteral: { ... };
module TaggedTemplate: { ... };
module Object: { ... };
module Sequence: { ... };
module Unary: { ... };
module Binary: { ... };
module Assignment: { ... };
module Update: { ... };
module Logical: { ... };
module Conditional: { ... };
type expression_or_spread('M, 'T) =
  1. | Expression(Expression.t('M, 'T))
  2. | Spread(SpreadElement.t('M, 'T))
;
let pp_expression_or_spread: (Format.formatter => 'M => unit) => (Format.formatter => 'T => unit) => Format.formatter => expression_or_spread('M, 'T) => unit;
let show_expression_or_spread: (Format.formatter => 'M => unit) => (Format.formatter => 'T => unit) => expression_or_spread('M, 'T) => string;
module ArgList: { ... };
module New: { ... };
module Call: { ... };
module OptionalCall: { ... };
module Member: { ... };
module OptionalMember: { ... };
module Yield: { ... };
module TypeCast: { ... };
module AsExpression: { ... };
module AsConstExpression: { ... };
module TSSatisfies: { ... };
module MetaProperty: { ... };
module This: { ... };
module Super: { ... };
module Import: { ... };
type match_expression('M, 'T) = Match.t('M, 'T, Expression.t('M, 'T));
let pp_match_expression: (Format.formatter => 'M => unit) => (Format.formatter => 'T => unit) => Format.formatter => match_expression('M, 'T) => unit;
let show_match_expression: (Format.formatter => 'M => unit) => (Format.formatter => 'T => unit) => match_expression('M, 'T) => string;
type t('M, 'T) = ('T, t'('M, 'T));
and t'('M, 'T) =
  1. | Array(Array.t('M, 'T))
  2. | ArrowFunction(Function.t('M, 'T))
  3. | AsConstExpression(AsConstExpression.t('M, 'T))
  4. | AsExpression(AsExpression.t('M, 'T))
  5. | Assignment(Assignment.t('M, 'T))
  6. | Binary(Binary.t('M, 'T))
  7. | Call(Call.t('M, 'T))
  8. | Class(Class.t('M, 'T))
  9. | Conditional(Conditional.t('M, 'T))
  10. | Function(Function.t('M, 'T))
  11. | Identifier(Identifier.t('M, 'T))
  12. | Import(Import.t('M, 'T))
  13. | JSXElement(JSX.element('M, 'T))
  14. | JSXFragment(JSX.fragment('M, 'T))
  15. | StringLiteral(StringLiteral.t('M))
  16. | BooleanLiteral(BooleanLiteral.t('M))
  17. | NullLiteral(option(Syntax.t('M, unit)))
  18. | NumberLiteral(NumberLiteral.t('M))
  19. | BigIntLiteral(BigIntLiteral.t('M))
  20. | RegExpLiteral(RegExpLiteral.t('M))
  21. | ModuleRefLiteral(ModuleRefLiteral.t('M, 'T))
  22. | Logical(Logical.t('M, 'T))
  23. | Match(match_expression('M, 'T))
  24. | Member(Member.t('M, 'T))
  25. | MetaProperty(MetaProperty.t('M))
  26. | New(New.t('M, 'T))
  27. | Object(Object.t('M, 'T))
  28. | OptionalCall(OptionalCall.t('M, 'T))
  29. | OptionalMember(OptionalMember.t('M, 'T))
  30. | Sequence(Sequence.t('M, 'T))
  31. | Super(Super.t('M))
  32. | TaggedTemplate(TaggedTemplate.t('M, 'T))
  33. | TemplateLiteral(TemplateLiteral.t('M, 'T))
  34. | This(This.t('M))
  35. | TypeCast(TypeCast.t('M, 'T))
  36. | TSSatisfies(TSSatisfies.t('M, 'T))
  37. | Unary(Unary.t('M, 'T))
  38. | Update(Update.t('M, 'T))
  39. | Yield(Yield.t('M, 'T))
;
let pp: (Format.formatter => 'M => unit) => (Format.formatter => 'T => unit) => Format.formatter => t('M, 'T) => unit;
let show: (Format.formatter => 'M => unit) => (Format.formatter => 'T => unit) => t('M, 'T) => string;
let pp_t': (Format.formatter => 'M => unit) => (Format.formatter => 'T => unit) => Format.formatter => t'('M, 'T) => unit;
let show_t': (Format.formatter => 'M => unit) => (Format.formatter => 'T => unit) => t'('M, 'T) => string;