Module Flow_ast.Function

module RestParam: { ... };
module Param: { ... };
module ThisParam: { ... };
module Params: { ... };
module ReturnAnnot: { ... };
type t('M, 'T) = {
  1. id: option(Identifier.t('M, 'T)),
  2. params: Params.t('M, 'T),
  3. body: body('M, 'T),
  4. async: bool,
  5. generator: bool,
  6. predicate: option(Type.Predicate.t('M, 'T)),
  7. return: ReturnAnnot.t('M, 'T),
  8. tparams: option(Type.TypeParams.t('M, 'T)),
  9. comments: option(Syntax.t('M, unit)),
  10. sig_loc: 'M,
};
and body('M, 'T) =
  1. | BodyBlock(('M, Statement.Block.t('M, 'T)))
  2. | BodyExpression(Expression.t('M, 'T))
;