Jsx_parser.JSXmodule Parse : Parser_common.PARSERmodule Expression : Expression_parser.EXPRESSIONval tag_component_trailing_comments : 
  Js_parser__Parser_env.env ->
  Loc.t Flow_ast.Comment.t listval spread_attribute : 
  Parser_env.env ->
  Loc.t * (Loc.t, Loc.t) Flow_ast.JSX.SpreadAttribute.t'val expression_container_contents : 
  Parser_env.env ->
  (Loc.t, Loc.t) Flow_ast.JSX.ExpressionContainer.expressionval expression_container : 
  Parser_env.env ->
  Loc.t * (Loc.t, Loc.t) Flow_ast.JSX.ExpressionContainer.tval expression_container_or_spread_child : 
  Parser_env.env ->
  Loc.t * (Loc.t, Loc.t) Flow_ast.JSX.child'val identifier : Parser_env.env -> Loc.t * Loc.t Flow_ast.JSX.Identifier.t'val name : Parser_env.env -> (Loc.t, Loc.t) Flow_ast.JSX.nameval names_are_equal : 
  ('a, 'b) Flow_ast.JSX.name ->
  ('c, 'd) Flow_ast.JSX.name ->
  boolval loc_of_name : ('a, 'b) Flow_ast.JSX.name -> 'cval attribute : 
  Parser_env.env ->
  Loc.t * (Loc.t, Loc.t) Flow_ast.JSX.Attribute.t'val opening_element : 
  Parser_env.env ->
  Loc.t
  * ([> `Element of (Loc.t, Loc.t) Flow_ast.JSX.Opening.t' | `Fragment ],
      [> `Element of (Loc.t, Loc.t) Flow_ast.JSX.Opening.t' | `Fragment ])
      resultval closing_element : 
  Parser_env.env ->
  Loc.t * [> `Element of (Loc.t, Loc.t) Flow_ast.JSX.Closing.t' | `Fragment ]val child_is_unpaired : 
  ('a, 'b) Flow_ast.JSX.name ->
  ('c * ('d, 'e) Flow_ast.JSX.child') ->
  boolval child : 
  parent_opening_name:(Loc.t, Loc.t) Flow_ast.JSX.name option ->
  Parser_env.env ->
  (Loc.t, Loc.t) Flow_ast.JSX.childval element : 
  parent_opening_name:(Loc.t, Loc.t) Flow_ast.JSX.name option ->
  Parser_env.env ->
  Loc.t
  * [ `Element of (Loc.t, Loc.t) Flow_ast.JSX.element
    | `Fragment of (Loc.t, Loc.t) Flow_ast.JSX.fragment ]val element_or_fragment : 
  parent_opening_name:(Loc.t, Loc.t) Flow_ast.JSX.name option ->
  Parser_env.env ->
  Loc.t
  * [ `Element of (Loc.t, Loc.t) Flow_ast.JSX.element
    | `Fragment of (Loc.t, Loc.t) Flow_ast.JSX.fragment ]