Flow_ast.Functionmodule RestParam : sig ... endmodule Param : sig ... endmodule ThisParam : sig ... endmodule Params : sig ... endtype ('M, 'T) t = {id : ('M, 'T) Identifier.t option;params : ('M, 'T) Params.t;body : ('M, 'T) body;async : bool;generator : bool;predicate : ('M, 'T) Type.Predicate.t option;return : ('M, 'T) Type.annotation_or_hint;tparams : ('M, 'T) Type.TypeParams.t option;comments : ('M, unit) Syntax.t option;sig_loc : 'M;}and ('M, 'T) body = | BodyBlock of 'M * ('M, 'T) Statement.Block.t| BodyExpression of ('M, 'T) Expression.t