Statement.Declaration
let async: Parser_env.env => (bool, list(Flow_ast.Comment.t(Loc.t)));
let generator: Parser_env.env => (bool, list(Flow_ast.Comment.t(Loc.t)));
let variance:
Parser_env.env =>
bool =>
bool =>
option(Flow_ast.Variance.t(Loc.t));
let function_params:
await:bool =>
yield:bool =>
Parser_env.env =>
Js_parser.Comment_attachment.Ast.Function.Params.t(Loc.t, Loc.t);
let function_body:
Parser_env.env =>
async:bool =>
generator:bool =>
expression:bool =>
simple_params:bool =>
(Flow_ast.Function.body(Loc.t, Loc.t), bool);
let strict_post_check:
Parser_env.env =>
contains_use_strict:bool =>
option(Flow_ast.Identifier.t(Loc.t, Loc.t)) =>
Js_parser.Comment_attachment.Ast.Function.Params.t(Loc.t, Loc.t) =>
unit;
let let_:
Parser_env.env =>
(list(Flow_ast.Statement.VariableDeclaration.Declarator.t(Loc.t, Loc.t)),
list(Js_parser.Comment_attachment.Ast.Comment.t(Loc.t)), list((Loc.t,
Parse_error.t)));
let const:
Parser_env.env =>
(list(Flow_ast.Statement.VariableDeclaration.Declarator.t(Loc.t, Loc.t)),
list(Js_parser.Comment_attachment.Ast.Comment.t(Loc.t)), list((Loc.t,
Parse_error.t)));
let var:
Parser_env.env =>
(list(Flow_ast.Statement.VariableDeclaration.Declarator.t(Loc.t, Loc.t)),
list(Js_parser.Comment_attachment.Ast.Comment.t(Loc.t)), list((Loc.t,
Parse_error.t)));
let _function: Parser_env.env => Flow_ast.Statement.t(Loc.t, Loc.t);
let enum_declaration: Parser_env.env => Flow_ast.Statement.t(Loc.t, Loc.t);