Statement.ImportDeclaration
and specifier('M, 'T) =
| ImportNamedSpecifiers(list(named_specifier('M, 'T)))
| ImportNamespaceSpecifier(('M, Identifier.t('M, 'T)))
;
and named_specifier('M, 'T) = {
kind: option(import_kind),
local: option(Identifier.t('M, 'T)),
remote: Identifier.t('M, 'T),
remote_name_def_loc: option('M),
};
and default_identifier('M, 'T) = {
identifier: Identifier.t('M, 'T),
remote_default_name_def_loc: option('M),
};
and t('M, 'T) = {
import_kind: import_kind,
source: ('T, StringLiteral.t('M)),
default: option(default_identifier('M, 'T)),
specifiers: option(specifier('M, 'T)),
comments: option(Syntax.t('M, unit)),
};