Flow_ast.Program
type t('M, 'T) = ('M, t'('M, 'T));
and t'('M, 'T) = {
statements: list(Statement.t('M, 'T)),
interpreter: option(('M, string)),
interpreter directive / shebang
*/comments: option(Syntax.t('M, unit)),
all_comments: list(Comment.t('M)),
};