Flow_ast.Functionmodule RestParam: { ... };module Param: { ... };module ThisParam: { ... };module Params: { ... };module ReturnAnnot: { ... };let pp_effect_: Format.formatter => effect_ => unit;let show_effect_: effect_ => string;type t('M, 'T) = {id: option(Identifier.t('M, 'T)),params: Params.t('M, 'T),body: body('M, 'T),async: bool,generator: bool,effect_: effect_,predicate: option(Type.Predicate.t('M, 'T)),return: ReturnAnnot.t('M, 'T),tparams: option(Type.TypeParams.t('M, 'T)),comments: option(Syntax.t('M, unit)),sig_loc: 'M,};and body('M, 'T) = | BodyBlock(('M, Statement.Block.t('M, 'T)))| BodyExpression(Expression.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_body:
(Format.formatter => 'M => unit) =>
(Format.formatter => 'T => unit) =>
Format.formatter =>
body('M, 'T) =>
unit;let show_body:
(Format.formatter => 'M => unit) =>
(Format.formatter => 'T => unit) =>
body('M, 'T) =>
string;