
(* This generated code requires the following version of MenhirLib: *)

let () =
  MenhirLib.StaticVersion.require_20260209

module MenhirBasics = struct
  
  exception Error
  
  let _eRR =
    fun _s ->
      raise Error
  
  type token = 
    | WITH
    | WHILE
    | WHEN
    | VIRTUAL
    | VAL
    | UNDERSCORE
    | UIDENT of 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 26 "src/reason-parser/reason_parser.ml"
  
    | TYPE
    | TRY
    | TRUE
    | TO
    | TILDE
    | THEN
    | SWITCH
    | STRUCT
    | STRING of 
# 1244 "src/reason-parser/reason_parser.mly"
       (string * string option * string option)
# 39 "src/reason-parser/reason_parser.ml"
  
    | STAR
    | SLASHGREATER
    | SIG
    | SHARPOP of 
# 1240 "src/reason-parser/reason_parser.mly"
       (string)
# 47 "src/reason-parser/reason_parser.ml"
  
    | SHARPEQUAL
    | SHARP
    | SEMISEMI
    | SEMI
    | RPAREN
    | REC
    | RBRACKET
    | RBRACE
    | QUOTED_STRING_ITEM of 
# 1249 "src/reason-parser/reason_parser.mly"
  (string * Location.t * string * string option)
# 60 "src/reason-parser/reason_parser.ml"
  
    | QUOTED_STRING_EXPR of 
# 1247 "src/reason-parser/reason_parser.mly"
  (string * Location.t * string * string option)
# 65 "src/reason-parser/reason_parser.ml"
  
    | QUOTE
    | QUESTION
    | PUB
    | PRI
    | PREFIXOP of 
# 1227 "src/reason-parser/reason_parser.mly"
       (string)
# 74 "src/reason-parser/reason_parser.ml"
  
    | POSTFIXOP of 
# 1228 "src/reason-parser/reason_parser.mly"
       (string)
# 79 "src/reason-parser/reason_parser.ml"
  
    | PLUSEQ
    | PLUSDOT
    | PLUS
    | PERCENT
    | OR
    | OPEN
    | OF
    | OBJECT
    | NONREC
    | NEW
    | NATIVEINT of 
# 1216 "src/reason-parser/reason_parser.mly"
       (nativeint)
# 94 "src/reason-parser/reason_parser.ml"
  
    | MUTABLE
    | MODULE
    | MINUSGREATER
    | MINUSDOT
    | MINUS
    | LPAREN
    | LIDENT of 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 105 "src/reason-parser/reason_parser.ml"
  
    | LETOP of 
# 1182 "src/reason-parser/reason_parser.mly"
       (string)
# 110 "src/reason-parser/reason_parser.ml"
  
    | LET
    | LESSUIDENT of 
# 1199 "src/reason-parser/reason_parser.mly"
       (string)
# 116 "src/reason-parser/reason_parser.ml"
  
    | LESSSLASHIDENTGREATER of 
# 1236 "src/reason-parser/reason_parser.mly"
       (string)
# 121 "src/reason-parser/reason_parser.ml"
  
    | LESSSLASHGREATER
    | LESSIDENT of 
# 1198 "src/reason-parser/reason_parser.mly"
       (string)
# 127 "src/reason-parser/reason_parser.ml"
  
    | LESSGREATER
    | LESSDOTDOTGREATER
    | LESS
    | LBRACKETPERCENTPERCENT
    | LBRACKETPERCENT
    | LBRACKETLESS
    | LBRACKETGREATER
    | LBRACKETBAR
    | LBRACKETAT
    | LBRACKET
    | LBRACELESS
    | LBRACE
    | LAZY
    | INT of 
# 1186 "src/reason-parser/reason_parser.mly"
       (string * char option)
# 145 "src/reason-parser/reason_parser.ml"
  
    | INITIALIZER
    | INHERIT
    | INFIXOP4 of 
# 1181 "src/reason-parser/reason_parser.mly"
       (string)
# 152 "src/reason-parser/reason_parser.ml"
  
    | INFIXOP3 of 
# 1178 "src/reason-parser/reason_parser.mly"
       (string)
# 157 "src/reason-parser/reason_parser.ml"
  
    | INFIXOP2 of 
# 1177 "src/reason-parser/reason_parser.mly"
       (string)
# 162 "src/reason-parser/reason_parser.ml"
  
    | INFIXOP1 of 
# 1176 "src/reason-parser/reason_parser.mly"
       (string)
# 167 "src/reason-parser/reason_parser.ml"
  
    | INFIXOP0 of 
# 1175 "src/reason-parser/reason_parser.mly"
       (string)
# 172 "src/reason-parser/reason_parser.ml"
  
    | INCLUDE
    | IN
    | IF
    | GREATERRBRACE
    | GREATERDOTDOTDOT
    | GREATER
    | FUNCTOR
    | FUNCTION
    | FUN
    | FOR
    | FLOAT of 
# 1163 "src/reason-parser/reason_parser.mly"
       (string * char option)
# 187 "src/reason-parser/reason_parser.ml"
  
    | FALSE
    | EXTERNAL
    | EXCEPTION
    | ES6_FUN
    | EQUALGREATER
    | EQUAL
    | EOL
    | EOF
    | END
    | ELSE
    | DOWNTO
    | DOTDOTDOT
    | DOTDOT
    | DOT
    | DONE
    | DOCSTRING of 
# 1265 "src/reason-parser/reason_parser.mly"
       (string)
# 207 "src/reason-parser/reason_parser.ml"
  
    | DO
    | CONSTRAINT
    | COMMENT of 
# 1264 "src/reason-parser/reason_parser.mly"
       (string * Location.t)
# 214 "src/reason-parser/reason_parser.ml"
  
    | COMMA
    | COLONGREATER
    | COLONEQUAL
    | COLONCOLON
    | COLON
    | CLASS
    | CHAR of 
# 1142 "src/reason-parser/reason_parser.mly"
       (char)
# 225 "src/reason-parser/reason_parser.ml"
  
    | BEGIN
    | BARRBRACKET
    | BARBAR
    | BAR
    | BANG
    | BACKQUOTE
    | ASSERT
    | AS
    | ANDOP of 
# 1183 "src/reason-parser/reason_parser.mly"
       (string)
# 238 "src/reason-parser/reason_parser.ml"
  
    | AND
    | AMPERSAND
    | AMPERAMPER
  
end

include MenhirBasics

# 50 "src/reason-parser/reason_parser.mly"
  
module Ast_helper = Ppxlib.Ast_helper
module Location = Ppxlib.Location

open Ppxlib.Asttypes


let mkloc txt loc =
  { Location.txt; loc }

let mknoloc txt = mkloc txt Location.none

let raise_error error loc =
  Reason_errors.raise_error (Ast_error error) loc

module Clflags = Reason_syntax_util.Clflags
(*
   TODO:
   - Remove all [open]s from the top of this file one by one and fix compilation
   failures that ensue by specifying the appropriate long identifiers. That
   will make the parser much easier to reason about.
   - Go back to trunk, do the same (remove [open]s, and fully specify long
   idents), to perform a clean diff.

*)

(**

   location.ml:
   ------------
   let mkloc txt loc = { txt ; loc }
   let rhs_loc n = {
     loc_start = Parsing.rhs_start_pos n;
     loc_end = Parsing.rhs_end_pos n;
     loc_ghost = false;
   }
   let symbol_rloc () = {
     loc_start = Parsing.symbol_start_pos ();
     loc_end = Parsing.symbol_end_pos ();
     loc_ghost = false;
   }

   let symbol_gloc () = {
     loc_start = Parsing.symbol_start_pos ();
     loc_end = Parsing.symbol_end_pos ();
     loc_ghost = true;
   }

   ast_helper.ml:
   ------------
   module Typ = struct
    val mk: ?loc:loc -> ?attrs:attrs -> core_type_desc -> core_type
    let mk ?(loc = !default_loc) ?(attrs = []) d =
       {ptyp_desc = d; ptyp_loc = loc; ptyp_attributes = attrs}
     ..
   end

   parse_tree.mli
   --------------
   and core_type = {
     ptyp_desc: core_type_desc;
     ptyp_loc: Location.t;
     ptyp_attributes: attributes; (* ... [@id1] [@id2] *)
   }

   and core_type_desc =
     | Ptyp_any
           (*  _ *)
     | Ptyp_var of string
           (* 'a *)
     | Ptyp_arrow of label * core_type * core_type
           (* T1 -> T2       (label = "")
              ~l:T1 -> T2    (label = "l")
              ?l:T1 -> T2    (label = "?l")
            *)
     | Ptyp_tuple of core_type list
           (* T1 * ... * Tn   (n >= 2) *)

   reason_parser.mly
   ---------------
   In general:

                                          syntax variant          {pblah_desc: core_blah_desc
                                                                   pblah_loc: {txt, loc}
                                                                   pblah_attributes: ... }
                                         /              \            /       \
   val mkblah: ~loc -> ~attributes ->     core_blah_desc     ->      core_blah
   let mkblah = Blah.mk

*)

let make_floating_doc attr =
  match attr with
  | { Ppxlib.attr_name = {txt = "ocaml.doc"; _} as attr_name; _} ->
      {attr with attr_name = {attr_name with txt = "ocaml.text"}}
  | attr -> attr

let uncurry_payload ?(name="u") loc =
  { Ppxlib.attr_name = {loc; txt = name};
    attr_payload = PStr [];
    attr_loc = loc
  }

let dummy_loc () = {
  Location.loc_start = Lexing.dummy_pos;
  loc_end = Lexing.dummy_pos;
  loc_ghost = false;
}

let mklocation loc_start loc_end = {
  Location.loc_start = loc_start;
  loc_end = loc_end;
  loc_ghost = false;
}

let make_real_loc loc =
  { loc with Location.loc_ghost = false }

let make_ghost_loc loc =
  { loc with Location.loc_ghost = true }

let ghloc ?(loc=dummy_loc ()) d =
  { Location.txt = d; loc = (make_ghost_loc loc) }

(**
  * turn an object into a real
  *)
let make_real_exp ({ Ppxlib.pexp_loc; _ } as exp) =
  { exp with pexp_loc = make_real_loc pexp_loc }

let make_real_pat ({ Ppxlib.ppat_loc; _ } as pat) =
  { pat with ppat_loc = make_real_loc ppat_loc }
(*
 * change the location state to be a ghost location or real location
 *)
let set_loc_state is_ghost loc =
    if is_ghost then make_ghost_loc loc else make_real_loc loc

let mktyp ?(loc=dummy_loc()) ?(ghost=false) d =
    let loc = set_loc_state ghost loc in
    Ast_helper.Typ.mk ~loc d

let mkpat ?(attrs=[]) ?(loc=dummy_loc()) ?(ghost=false) d =
    let loc = set_loc_state ghost loc in
    Ast_helper.Pat.mk ~loc ~attrs d

let mkexp ?(attrs=[]) ?(loc=dummy_loc()) ?(ghost=false) d =
    let loc = set_loc_state ghost loc in
    Ast_helper.Exp.mk ~loc ~attrs d

let mkmty ?(loc=dummy_loc()) ?(ghost=false) d =
    let loc = set_loc_state ghost loc in
    Ast_helper.Mty.mk ~loc d

let mksig ?(loc=dummy_loc()) ?(ghost=false) d =
    let loc = set_loc_state ghost loc in
    Ast_helper.Sig.mk ~loc d

let mkmod ?(loc=dummy_loc()) ?(ghost=false) d =
    let loc = set_loc_state ghost loc in
    Ast_helper.Mod.mk ~loc d

let mkstr ?(loc=dummy_loc()) ?(ghost=false) d =
    let loc = set_loc_state ghost loc in
    Ast_helper.Str.mk ~loc d

let mkclass ?(loc=dummy_loc()) ?(ghost=false) d =
    let loc = set_loc_state ghost loc in
    Ast_helper.Cl.mk ~loc d

let mkcty ?(loc=dummy_loc()) ?(ghost=false) d =
    let loc = set_loc_state ghost loc in
    Ast_helper.Cty.mk ~loc d

let mkctf ?(loc=dummy_loc()) ?(ghost=false) d =
    let loc = set_loc_state ghost loc in
    Ast_helper.Ctf.mk ~loc d

let may_tuple startp endp = function
  | []  -> assert false
  | [x] -> {x with Ppxlib.pexp_loc = mklocation startp endp}
  | xs  -> mkexp ~loc:(mklocation startp endp) (Pexp_tuple xs)

(**
  Make a core_type from a as_loc(LIDENT).
  Useful for record type punning.
  type props = {width: int, height: int};
  type state = {nbrOfClicks: int};
  type component = {props, state};
*)
let mkct { Location.txt; loc } =
  let lident = Ppxlib.Longident.Lident txt in
  let ttype = Ppxlib.Ptyp_constr({txt = lident; loc = loc}, []) in
  { Ppxlib.ptyp_desc = ttype
  ; ptyp_loc = loc
  ; ptyp_attributes = []
  ; ptyp_loc_stack =[]
  }

let mkcf ?(loc=dummy_loc()) ?(ghost=false) d =
    let loc = set_loc_state ghost loc in
    Ast_helper.Cf.mk ~loc d

let simple_ghost_text_attr ?(loc=dummy_loc ()) txt =
  let loc = set_loc_state true loc in
  [{ Ppxlib.attr_name = {txt; loc};
     attr_payload = PStr [];
     attr_loc = loc;
  }]

let mkExplicitArityTuplePat ?(loc=dummy_loc ()) pat =
  (* Tell OCaml type system that what this tuple construction represents is
     not actually a tuple, and should represent several constructor
     arguments.  This allows the syntax the ability to distinguish between:

     X (10, 20)  -- One argument constructor
     X 10 20     -- Multi argument constructor
  *)
  mkpat
    ~loc
    ~attrs:(simple_ghost_text_attr ~loc "explicit_arity")
    pat

let mkExplicitArityTupleExp ?(loc=dummy_loc ()) exp_desc =
  mkexp
    ~loc
    ~attrs:(simple_ghost_text_attr ~loc "explicit_arity")
    exp_desc

let is_pattern_list_single_any = function
  | [{Ppxlib.ppat_desc=Ppat_any; ppat_attributes=[]; _} as onlyItem] ->
    Some onlyItem
  | _ -> None

let mkoperator { Location.txt; loc } =
  Ast_helper.Exp.mk ~loc (Pexp_ident(mkloc (Ppxlib.Longident.Lident txt) loc))

(*
  Ghost expressions and patterns:
  expressions and patterns that do not appear explicitly in the
  source file they have the loc_ghost flag set to true.
  Then the profiler will not try to instrument them and the
  -annot option will not try to display their type.

  Every grammar rule that generates an element with a location must
  make at most one non-ghost element, the topmost one.

  How to tell whether your location must be ghost:
  A location corresponds to a range of characters in the source file.
  If the location contains a piece of code that is syntactically
  valid (according to the documentation), and corresponds to the
  AST node, then the location must be real; in all other cases,
  it must be ghost.

  jordwalke: Noticed that ghost expressions are often used when inserting
   additional AST nodes from a parse rule. Either an extra wrapping one, or an
   additional inner node. This is consistent with the above description, I
   believe.
*)


let ghunit ?(loc=dummy_loc ()) () =
  mkexp ~ghost:true ~loc (Pexp_construct (mknoloc (Ppxlib.Longident.Lident "()"), None))

let mkinfixop arg1 op arg2 =
  mkexp(Pexp_apply(op, [Nolabel, arg1; Nolabel, arg2]))

let mkinfix arg1 name arg2 =
  mkinfixop arg1 (mkoperator name) arg2

let neg_string f =
  if String.length f > 0 && f.[0] = '-'
  then String.sub f ~pos:1 ~len:(String.length f - 1)
  else "-" ^ f

let mkuminus name ({ Ppxlib.pexp_desc; _ } as arg) =
  match name.Location.txt, pexp_desc with
  | "-", Pexp_constant(Pconst_integer (n,m)) ->
      mkexp(Pexp_constant(Pconst_integer(neg_string n,m)))
  | ("-" | "-."), Pexp_constant(Pconst_float (f, m)) ->
      mkexp(Pexp_constant(Pconst_float(neg_string f, m)))
  | txt, _ ->
      let name = {name with txt = "~" ^ txt} in
      mkexp(Pexp_apply(mkoperator name, [Nolabel, arg]))

let mk_functor_mod args body =
  let folder { Location.txt; loc } acc =
    mkmod ~loc (Pmod_functor(txt, acc))
  in
  List.fold_right args ~init:body ~f:folder 

let mk_functor_mty args body =
  let folder { Location.txt; loc } acc =
    mkmty ~loc (Pmty_functor(txt, acc))
  in
  List.fold_right args ~init:body ~f:folder 

let mkuplus name ({ Ppxlib.pexp_desc; _ } as arg) =
  match name.Location.txt, pexp_desc with
  | "+", Pexp_constant(Pconst_integer _)
  | ("+" | "+."), Pexp_constant(Pconst_float _) ->
      mkexp arg.pexp_desc
  | txt, _ ->
      let name = {name with txt = "~" ^ txt} in
      mkexp(Pexp_apply(mkoperator name, [Nolabel, arg]))

let mkexp_cons consloc args loc =
  mkexp ~loc (Pexp_construct(mkloc (Ppxlib.Longident.Lident "::") consloc, Some args))

let mkexp_constructor_unit ?(uncurried=false) consloc loc =
  let attrs = if uncurried then [uncurry_payload ~name:"uncurry" loc] else [] in
  mkexp ~attrs ~loc (Pexp_construct(mkloc (Ppxlib.Longident.Lident "()") consloc, None))

let ghexp_cons args loc =
  mkexp ~ghost:true ~loc (Pexp_construct(mkloc (Ppxlib.Longident.Lident "::") loc, Some args))

let mkpat_cons args loc =
  mkpat ~loc (Ppat_construct(mkloc (Ppxlib.Longident.Lident "::") loc, Some ([], args)))

let ghpat_cons args loc =
  mkpat ~ghost:true ~loc (Ppat_construct(mkloc (Ppxlib.Longident.Lident "::") loc, Some ([], args)))

let mkpat_constructor_unit consloc loc =
  mkpat ~loc (Ppat_construct(mkloc (Ppxlib.Longident.Lident "()") consloc, None))

let simple_pattern_list_to_tuple ?(loc=dummy_loc ()) = function
  | [] -> assert false
  | lst -> mkpat ~loc (Ppat_tuple lst)

let mktailexp_extension loc seq ext_opt =
  let rec handle_seq = function
    | [] ->
        let base_case = match ext_opt with
          | Some ext ->
            ext
          | None ->
            let loc = make_ghost_loc loc in
            let nil = { Location.txt = Ppxlib.Longident.Lident "[]"; loc } in
            Ast_helper.Exp.mk ~loc (Pexp_construct (nil, None)) in
        base_case
    | (e1: Ppxlib.expression) :: el ->
        let exp_el = handle_seq el in
        let loc = mklocation e1.pexp_loc.loc_start exp_el.pexp_loc.loc_end in
        let arg = mkexp ~ghost:true ~loc (Pexp_tuple [e1; exp_el]) in
        ghexp_cons arg loc
  in
  handle_seq seq

let mktailpat_extension loc (seq, ext_opt) =
  let rec handle_seq = function
    [] ->
      let base_case = match ext_opt with
        | Some ext ->
          ext
        | None ->
          let loc = make_ghost_loc loc in
          let nil = { Location.txt = Ppxlib.Longident.Lident "[]"; loc } in
          mkpat ~loc (Ppat_construct (nil, None)) in
      base_case
  | (p1: Ppxlib.pattern) :: pl ->
      let pat_pl = handle_seq pl in
      let loc = mklocation p1.ppat_loc.loc_start pat_pl.ppat_loc.loc_end in
      let arg = mkpat ~ghost:true ~loc (Ppat_tuple [p1; pat_pl]) in
      ghpat_cons arg loc in
  handle_seq seq

let makeFrag loc (body: Ppxlib.expression) =
  let attribute = {
    Ppxlib.attr_name = { Location.txt = "JSX"; loc };
    attr_payload = PStr [];
    attr_loc = loc
  }
  in
  { body with pexp_attributes = attribute :: body.pexp_attributes }


(* Applies attributes to the structure item, not the expression itself. Makes
 * structure item have same location as expression. *)
let mkstrexp ?loc e attrs =
  let loc = match loc with None -> e.Ppxlib.pexp_loc | Some loc -> loc in
  let e = { e with pexp_loc = loc } in
  { Ppxlib.pstr_desc = Pstr_eval (e, attrs); pstr_loc = e.pexp_loc }

let ghexp_constraint loc e (t1, t2) =
  match t1, t2 with
  | Some t, None -> mkexp ~ghost:true ~loc (Pexp_constraint(e, t))
  | _, Some t -> mkexp ~ghost:true ~loc (Pexp_coerce(e, t1, t))
  | None, None -> assert false

let mk_record_expr ?loc (exten, fields) =
  match fields, exten with
  | [], Some expr -> expr
  | _ -> mkexp ?loc (Pexp_record (fields, exten))

let array_function ?(loc=dummy_loc()) str name =
  ghloc ~loc (Ppxlib.Longident.Ldot(Lident str, (if !Clflags.unsafe then "unsafe_" ^ name else name)))

let syntax_error loc s =
  raise_error (Other_syntax_error s) loc

let syntax_error_exp loc msg =
  Ast_helper.Exp.extension ~loc (Reason_errors.error_extension_node loc msg)

let syntax_error_pat loc msg =
  Ast_helper.Pat.extension ~loc (Reason_errors.error_extension_node loc msg)

let syntax_error_mty loc msg =
  Ast_helper.Mty.extension ~loc (Reason_errors.error_extension_node loc msg)

let syntax_error_typ loc msg =
  Ast_helper.Typ.extension ~loc (Reason_errors.error_extension_node loc msg)

let not_expecting start_pos end_pos nonterm =
  let location = mklocation start_pos end_pos in
  raise_error (Not_expecting (location, nonterm)) location

(* Taken from the OCaml compiler. The next comment is also present there.

   This is somewhat hackish: we don't want to allow "type nonrec t := ...",
   because the definition is nonrecursive by default. Simply removing
   "nonrec_flag" from the rule results in a shift/reduce conflict:
       "TYPE . UNDERSCORE"
   can either be a shift in the type_subst_declaration rule, or a reduce of
   nonrec_flag in the type_declaration rule.
   To avoid it we could either %inline the nonrec_flag rule, but "meh", or we
   could add nonrec_flag to the type_subst_declaration rule, and explicitely
   check if it was passed. In which case we raise a proper error. *)
let check_nonrec_absent loc nonrec_flag =
  match nonrec_flag with
  | Recursive ->
    () (* nothing to do, this happens when "nonrec" is absent from the source *)
  | Nonrecursive ->
    let err = {|"nonrec", type substitutions are non recursive by default|} in
    raise Syntaxerr.(Error(Not_expecting(loc, err)))

let mkexp_fun {Location.txt; loc} (body: Ppxlib.expression) =
  let loc = mklocation loc.loc_start body.pexp_loc.loc_end in
  match txt with
  | Reason_parser_def.Term (label, default_expr, pat) ->
    Ast_helper.Exp.fun_ ~loc label default_expr pat body
  | Type str ->
    Ast_helper.Exp.newtype ~loc (mkloc str loc) body

let mkclass_fun {Location. txt ; loc} (body: Ppxlib.class_expr) =
  let loc = mklocation loc.loc_start body.pcl_loc.loc_end in
  match txt with
  | Reason_parser_def.Term (label, default_expr, pat) ->
    Ast_helper.Cl.fun_ ~loc label default_expr pat body
  | Type _ ->
    let pat = syntax_error_pat loc "(type) not allowed in classes" in
    Ast_helper.Cl.fun_ ~loc Nolabel None pat body

let mktyp_arrow ({Location.txt = (label, cod); loc}, uncurried) (dom: Ppxlib.core_type) =
  let loc = mklocation loc.loc_start dom.ptyp_loc.loc_end in
  let typ = mktyp ~loc (Ptyp_arrow (label, cod, dom)) in
  {typ with ptyp_attributes = (if uncurried then [uncurry_payload loc] else [])}

let mkcty_arrow ({Location.txt = (label, cod); loc}, uncurried) (dom: Ppxlib.class_type) =
  let loc = mklocation loc.loc_start dom.pcty_loc.loc_end in
  let ct = mkcty ~loc (Pcty_arrow (label, cod, dom)) in
  {ct with pcty_attributes = (if uncurried then [uncurry_payload loc] else [])}

(**
  * process the occurrence of _ in the arguments of a function application
  * replace _ with a new variable, currently __x, in the arguments
  * return a wrapping function that wraps ((__x) => ...) around an expression
  * e.g. foo(_, 3) becomes (__x) => foo(__x, 3)
  *)
let process_underscore_application args =
  let exp_question = ref None in
  let hidden_var = "__x" in
  let check_arg ((lab, exp) as arg) =
    match exp.Ppxlib.pexp_desc with
    | Pexp_ident ({ txt = Lident "_"; _} as id) ->
        let new_id = mkloc (Ppxlib.Longident.Lident hidden_var) id.loc in
        let new_exp = mkexp (Pexp_ident new_id) ~loc:exp.pexp_loc in
        exp_question := Some new_exp;
        (lab, new_exp)
    | _ ->
        arg in
  let args = List.map ~f:check_arg args in
  let wrap exp_apply = match !exp_question with
    | Some {pexp_loc=loc;_} ->
        let pattern = mkpat (Ppat_var (mkloc hidden_var loc)) ~loc in
        begin match exp_apply.Ppxlib.pexp_desc with
        (* Transform pipe first with underscore application correct:
         * 5->doStuff(3, _, 7);
         * (5 |. doStuff)(3, _, 7)
         * 5 |. (__x => doStuff(3, __x, 7))
         *)
        | Pexp_apply(
          {pexp_desc= Pexp_apply(
            {pexp_desc = Pexp_ident({txt = Ppxlib.Longident.Lident "|."; _}); _} as pipeExp,
            [Nolabel, arg1; Nolabel, ({pexp_desc = Pexp_ident _; _} as arg2)]
            (*         5                            doStuff                   *)
          ); _},
          args (* [3, __x, 7] *)
          ) ->
            (* build `doStuff(3, __x, 7)` *)
            let innerApply = {arg2 with pexp_desc = Pexp_apply(arg2, args)} in
            (* build `__x => doStuff(3, __x, 7)` *)
            let param : Ppxlib.function_param =
              { pparam_desc = Pparam_val (Nolabel, None, pattern); pparam_loc = loc }
            in
            let innerFun =
              mkexp (Pexp_function ([param], None, Pfunction_body innerApply)) ~loc
            in
            (* build `5 |. (__x => doStuff(3, __x, 7))` *)
            {exp_apply with pexp_desc =
              Pexp_apply(pipeExp, [Nolabel, arg1; Nolabel, innerFun])
            }
        | _ ->
          let param : Ppxlib.function_param =
            { pparam_desc = Pparam_val (Nolabel, None, pattern); pparam_loc = loc }
          in
          mkexp (Pexp_function ([param], None, Pfunction_body exp_apply)) ~loc
        end
    | None ->
        exp_apply in
  (args, wrap)

(**
  * Joins a 'body' and it's 'args' to form a Pexp_apply.
  * Example:
  * 'add' (body) and '[1, 2]' (args) become a Pexp_apply representing 'add(1, 2)'
  *
  * Note that `add(. 1, 2)(. 3, 4)` & `add(. 1, 2, . 3, 4)` both
  * give `[[@uncurry] 1, 2, [@uncurry] 3, 4]]` as args.
  * The dot is parsed as [@uncurry] to distinguish between specific
  * uncurrying and [@bs]. They can appear in the same arg:
  * `add(. [@bs] 1)` is a perfectly valid, the dot indicates uncurrying
  * for the whole application of 'add' and [@bs] sits on the `1`.
  * Due to the dot of uncurried application possibly appearing in any
  * position of the args, we need to post-process the args and split
  * all args in groups that are uncurried (or not).
  * add(. 1, . 2) should be parsed as (add(. 1))(. 2)
  * The args can be splitted here in [1] & [2], based on those groups
  * we can recursively build the correct nested Pexp_apply here.
  *  -> Pexp_apply (Pexp_apply (add, 1), 2)   (* simplified ast *)
  *)
let mkexp_app_rev startp endp (body, args) =
  let loc = mklocation startp endp in
  if args = [] then {body with Ppxlib.pexp_loc = loc}
  else
  (*
   * Post process the arguments and transform [@uncurry] into [@bs].
   * Returns a tuple with a boolean (was it uncurried?) and
   * the posible rewritten arg.
   *)
  let rec process_args acc es =
    match es with
    | (lbl, e)::es ->
        let attrs = e.Ppxlib.pexp_attributes in
        let hasUncurryAttr = ref false in
        let newAttrs = List.filter ~f:(function
          | { Ppxlib.attr_name = {txt = "uncurry"; _}; attr_payload = PStr []; _} ->
              hasUncurryAttr := true;
              false
          | _ -> true) attrs
        in
        let uncurried = !hasUncurryAttr in
        let newArg = (lbl, { e with pexp_attributes = newAttrs }) in
        process_args ((uncurried, newArg)::acc) es
    | [] -> acc
    in
    (*
     * Groups all uncurried args falling under the same Pexp_apply
     * Example:
     *    add(. 2, 3, . 4, 5) or add(. 2, 3)(. 4, 5)  (equivalent)
     * This results in two groups: (true, [2, 3]) & (true, [4, 5])
     * Both groups have 'true' as their first tuple element, because
     * they are uncurried.
     * add(2, 3, . 4) results in the groups (false, [2, 3]) & (true, [4])
     *)
    let rec group grp acc = function
    | (uncurried, arg)::xs ->
        let (_u, grp) = grp in
        if uncurried = true then begin
          group (true, [arg]) ((_u, (List.rev grp))::acc) xs
        end else begin
          group (_u, (arg::grp)) acc xs
        end
    | [] ->
        let (_u, grp) = grp in
        List.rev ((_u, (List.rev grp))::acc)
    in
    (*
     * Recursively transforms all groups into a (possibly uncurried)
     * Pexp_apply
     *
     * Example:
     *   Given the groups (true, [2, 3]) & (true, [4, 5]) and body 'add',
     *   we get the two nested Pexp_apply associated with
     *   (add(. 2, 3))(. 4, 5)
     *)
    let rec make_appl body = function
      | args::xs ->
          let (uncurried, args) = args in
          let expr = if args = [] then body
          else
            let (args, wrap) = process_underscore_application args in
            let args_loc = match args, List.rev args with
              | ((_, s)::_), ((_, e)::_) -> mklocation s.pexp_loc.loc_start e.pexp_loc.loc_end
              | _ -> assert false in
            let expr = mkexp ~loc:args_loc (Pexp_apply (body, args)) in
            let expr = if uncurried then {expr with pexp_attributes = [uncurry_payload loc]} else expr in
            wrap expr
          in
            make_appl expr xs
      | [] -> {body with pexp_loc = loc}
    in
    let processed_args = process_args [] args in
    let groups = group (false, []) [] processed_args in
    make_appl body groups

let mkmod_app_unit ~loc (mexp: Ppxlib.module_expr) =
  mkmod ~loc (Pmod_apply_unit mexp)

let mkmod_app (mexp: Ppxlib.module_expr) (marg: Ppxlib.module_expr) =
  mkmod ~loc:(mklocation mexp.pmod_loc.loc_start marg.pmod_loc.loc_end)
    (Pmod_apply (mexp, marg))

let bigarray_function ?(loc=dummy_loc()) str name =
  ghloc ~loc (Ppxlib.Longident.Ldot(Ldot(Lident "Bigarray", str), name))

let bigarray_get ?(loc=dummy_loc()) arr arg =
  let get = if !Clflags.unsafe then "unsafe_get" else "get" in
  match arg with
    [c1] ->
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc (Pexp_ident(bigarray_function ~loc "Array1" get)),
                       [Nolabel, arr; Nolabel, c1]))
  | [c1;c2] ->
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc (Pexp_ident(bigarray_function ~loc "Array2" get)),
                       [Nolabel, arr; Nolabel, c1; Nolabel, c2]))
  | [c1;c2;c3] ->
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc (Pexp_ident(bigarray_function ~loc "Array3" get)),
                       [Nolabel, arr; Nolabel, c1; Nolabel, c2; Nolabel, c3]))
  | coords ->
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc (Pexp_ident(bigarray_function ~loc "Genarray" "get")),
                       [Nolabel, arr; Nolabel, mkexp ~ghost:true ~loc (Pexp_array coords)]))

let bigarray_set ?(loc=dummy_loc()) arr arg newval =
  let set = if !Clflags.unsafe then "unsafe_set" else "set" in
  match arg with
    [c1] ->
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc (Pexp_ident(bigarray_function ~loc "Array1" set)),
                       [Nolabel, arr; Nolabel, c1; Nolabel, newval]))
  | [c1;c2] ->
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc (Pexp_ident(bigarray_function ~loc "Array2" set)),
                       [Nolabel, arr; Nolabel, c1; Nolabel, c2; Nolabel, newval]))
  | [c1;c2;c3] ->
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc (Pexp_ident(bigarray_function ~loc "Array3" set)),
                       [Nolabel, arr; Nolabel, c1; Nolabel, c2; Nolabel, c3; Nolabel, newval]))
  | coords ->
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc (Pexp_ident(bigarray_function ~loc "Genarray" "set")),
                       [Nolabel, arr;
                        Nolabel, mkexp ~ghost:true ~loc (Pexp_array coords);
                        Nolabel, newval]))

let exp_of_label label =
  mkexp ~loc:label.loc (Pexp_ident {label with txt=Lident(Ppxlib.Longident.last_exn label.txt)})

let pat_of_label label =
  mkpat ~loc:label.loc (Ppat_var {label with txt=(Ppxlib.Longident.last_exn label.txt)})

let check_variable vl loc v =
  if List.mem v ~set:vl then
    raise_error (Variable_in_scope (loc,v)) loc

let varify_constructors var_names t =
  let rec loop (t: Ppxlib.core_type) =
    let desc =
      match t.ptyp_desc with
      | Ptyp_any -> Ppxlib.Ptyp_any
      | Ptyp_var x ->
          check_variable var_names t.ptyp_loc x;
          Ptyp_var x
      | Ptyp_arrow (label,core_type,core_type') ->
          Ptyp_arrow(label, loop core_type, loop core_type')
      | Ptyp_tuple lst -> Ptyp_tuple (List.map ~f:loop lst)
      | Ptyp_constr( { txt = Lident s; _ }, []) when List.mem s ~set:var_names ->
          Ptyp_var s
      | Ptyp_constr(longident, lst) ->
          Ptyp_constr(longident, List.map ~f:loop lst)
      | Ptyp_object (lst, o) ->
          Ptyp_object
            (List.map
               ~f:(fun ({ Ppxlib.pof_desc; _ } as obj) ->
                 let pof_desc' = match pof_desc with
                   | Otag (s, t) -> Ppxlib.Otag (s, loop t)
                   | Oinherit t -> Oinherit (loop t)
                 in
                 { obj with pof_desc = pof_desc' }) lst, o)
      | Ptyp_class (longident, lst) ->
          Ptyp_class (longident, List.map ~f:loop lst)
      | Ptyp_alias(core_type, label) ->
          check_variable var_names t.ptyp_loc label.txt;
          Ptyp_alias(loop core_type, label)
      | Ptyp_variant(row_field_list, flag, lbl_lst_option) ->
          Ptyp_variant(List.map ~f:loop_row_field row_field_list,
                       flag, lbl_lst_option)
      | Ptyp_poly(string_lst, core_type) ->
          List.iter ~f:(fun x -> check_variable var_names t.ptyp_loc x.txt) string_lst;
          Ptyp_poly(string_lst, loop core_type)
      | Ptyp_package(longident,lst) ->
          Ptyp_package(longident, List.map ~f:(fun (n,typ) -> (n,loop typ) ) lst)
      | Ptyp_open (m, c) -> Ptyp_open (m, c)
      | Ptyp_extension (s, arg) ->
          Ptyp_extension (s, arg)
    in
    {t with ptyp_desc = desc}
  and loop_row_field  =
    fun ({ prf_desc; _} as rf) ->
      let prf_desc' = match prf_desc with
        | Rtag(label, flag, lst) ->
          Ppxlib.Rtag(label, flag, List.map ~f:loop lst)
        | Rinherit t ->
          Rinherit (loop t)
      in
      { rf with prf_desc = prf_desc' }
  in
  loop t

let pexp_newtypes ?loc newtypes exp =
  List.fold_right ~f:(fun newtype exp -> mkexp ?loc (Pexp_newtype (newtype, exp)))
    newtypes ~init:exp

(**
  I believe that wrap_type_annotation will automatically generate the type
  arguments (type a) (type b) based on what was listed before the dot in a
  polymorphic type annotation that uses locally abstract types.
 *)
let wrap_type_annotation newtypes core_type body =
  let exp = mkexp(Pexp_constraint(body,core_type)) in
  let exp = pexp_newtypes newtypes exp in
  let typ = mktyp ~ghost:true (Ptyp_poly(newtypes,varify_constructors (List.map ~f:(fun {txt; _} -> txt) newtypes) core_type)) in
  (exp, typ)


let struct_item_extension (ext_attrs, ext_id) structure_items =
  mkstr ~ghost:true (Pstr_extension ((ext_id, PStr structure_items), ext_attrs))

let wrap_str_ext ~loc body ext =
  match ext with
  | None -> body
  | Some (ext_attrs, ext_id) ->
    Ast_helper.Str.mk
      ~loc:(make_ghost_loc loc)
      (Pstr_extension ((ext_id, PStr [body]), ext_attrs))

let wrap_sig_ext ~loc body ext =
  match ext with
  | None -> body
  | Some (ext_attrs, ext_id) ->
    Ppxlib.Psig_extension ((ext_id, PSig [mksig ~loc body]), ext_attrs)

let mk_quotedext ~loc (id, idloc, str, delim) =
  let exp_id = mkloc id idloc in
  let e =
    let attrs =
      [ { Ppxlib.attr_name = mkloc "reason.quoted_extension" loc
        ; attr_payload = PStr []
        ; attr_loc = Location.none
      } ]
    in
    mkexp ~loc ~ghost:true ~attrs (Pexp_constant (Pconst_string (str, loc, delim)))
  in
  (exp_id, Ppxlib.PStr [mkstrexp e []])

let expression_extension ?loc (ext_attrs, ext_id) item_expr =
  let loc = match loc with
    | Some loc -> loc
    | None -> make_ghost_loc (dummy_loc ())
  in
  let extension = (ext_id, Ppxlib.PStr [mkstrexp ~loc item_expr []]) in
  Ast_helper.Exp.extension ~loc ~attrs:ext_attrs extension

(* There's no more need for these functions - this was for the following:
 *
 *     fun % ext [@foo] arg => arg;
 *
 *   Becoming
 *
 *     [%ext  (fun arg => arg) [@foo]]
 *
 *   Which we no longer support.
 *)
(* Applies the attributes to the body, then wraps entire thing in an extension
 * expression, whose payload consists of a single structure item that is body
 *)
(* let wrap_exp_attrs body (ext, attrs) = *)
(*   (* todo: keep exact location for the entire attribute *) *)
(*   let body = {body with pexp_attributes = attrs @ body.pexp_attributes} in *)
(*   match ext with *)
(*   | None -> body *)
(*   | Some id -> mkexp ~ghost:true (Pexp_extension (id, PStr [mkstrexp body []])) *)

(* Why not just mkexp with the right attributes in the first place? *)
(* let mkexp_attrs d attrs = *)
(*   wrap_exp_attrs (mkexp d) attrs *)

let mkcf_attrs ?(loc=dummy_loc()) d attrs =
  Ast_helper.Cf.mk ~loc ~attrs d

let mkctf_attrs d attrs =
  Ast_helper.Ctf.mk ~attrs d

let mklbs ext rf lb loc =
  { Reason_parser_def.lbs_bindings = [lb];
    lbs_rec = rf;
    lbs_extension = ext;
    lbs_loc = loc; }

let addlbs (lbs: Reason_parser_def.let_bindings) lbs' =
  { lbs with Reason_parser_def.lbs_bindings = lbs.lbs_bindings @ lbs' }

let val_of_let_bindings (lbs: Reason_parser_def.let_bindings) =
  let str = Ast_helper.Str.value lbs.lbs_rec lbs.lbs_bindings in
  match lbs.lbs_extension with
  | None -> str
  | Some ext -> struct_item_extension ext [str]

let expr_of_let_bindings ~loc (lbs: Reason_parser_def.let_bindings) body =
  let item_expr = Ast_helper.Exp.let_ ~loc lbs.lbs_rec lbs.lbs_bindings body in
  match lbs.lbs_extension with
  | None -> item_expr
  | Some ext -> expression_extension ~loc:(make_ghost_loc loc) ext item_expr

let class_of_let_bindings (lbs: Reason_parser_def.let_bindings) body =
  if lbs.lbs_extension <> None then
    raise_error (Not_expecting (lbs.lbs_loc, "extension")) lbs.lbs_loc;
  Ast_helper.Cl.let_ lbs.lbs_rec lbs.lbs_bindings body

(*
 * arity_conflict_resolving_mapper is triggered when both "implicit_arity" "explicit_arity"
 * are in the attribtues. In that case we have to remove "explicit_arity"
 *
 * However, if we simply remove explicit_arity, we would end up with a
 * wrapping tuple which has only one component (inner tuple).
 * This is against the invariance where tuples must have 2+ components.
 * Therefore, in the case we have to remove explicit_arity, we also need to
 * unwrap the tuple to expose the inner tuple directly.
 *
 *)
let reason_to_ml_swap_operator_mapper =
  new Reason_syntax_util.reason_to_ml_swap_operator_mapper
let reason_mapper = object
  inherit Ppxlib.Ast_traverse.map as super

  method! expression expr =
    match expr with
      | {pexp_desc=Pexp_construct(lid, args);
         pexp_loc;
         pexp_attributes; _}
        when Reason_syntax_util.attributes_conflicted "implicit_arity" "explicit_arity" pexp_attributes ->
         let new_args =
           match args with
             | Some {pexp_desc = Pexp_tuple [sp]; _} -> Some sp
             | _ -> args in
         super#expression
         { pexp_desc=Pexp_construct(lid, new_args);
           pexp_loc;
           pexp_attributes = Reason_syntax_util.normalized_attributes "explicit_arity" pexp_attributes;
           pexp_loc_stack = []
         }
      | x -> super#expression x
  method! pattern pattern =
    match pattern with
      | {ppat_desc=Ppat_construct(lid, args);
         ppat_loc;
         ppat_attributes; _} when Reason_syntax_util.attributes_conflicted "implicit_arity" "explicit_arity" ppat_attributes ->
         let new_args =
           match args with
             | Some (x, {ppat_desc = Ppat_tuple [sp]; _}) -> Some (x, sp)
             | _ -> args
         in
         super#pattern
         { ppat_desc=Ppat_construct(lid, new_args);
           ppat_loc;
           ppat_attributes = Reason_syntax_util.normalized_attributes "explicit_arity" ppat_attributes;
           ppat_loc_stack = [];
         }
      | x -> super#pattern x
end

let reason_mapper f a =
  a |> f reason_to_ml_swap_operator_mapper |> f reason_mapper

let rewriteFunctorApp module_name elt loc =
  let rec applies = function
    | Ppxlib.Longident.Lident _ -> false
    | Ldot (m, _) -> applies m
    | Lapply (_, _) -> true in
  let rec flattenModName = function
    | Ppxlib.Longident.Lident id -> id
    | Ldot (m, id) -> flattenModName m ^ "." ^ id
    | Lapply (m1, m2) -> flattenModName m1 ^ "(" ^ flattenModName m2 ^ ")" in
  let rec mkModExp = function
    | Ppxlib.Longident.Lident id -> mkmod ~loc (Pmod_ident {txt=Lident id; loc})
    | Ldot (m, id) -> mkmod ~loc (Pmod_ident {txt=Ldot (m, id); loc})
    | Lapply (m1, m2) -> mkmod ~loc (Pmod_apply (mkModExp m1, mkModExp m2)) in
  if applies module_name then
    let flat = flattenModName module_name in
    mkexp ~loc (Pexp_letmodule({txt=Some flat; loc},
                         mkModExp module_name,
                         mkexp(Pexp_ident {txt=Ldot (Lident flat, elt); loc})))
  else
    mkexp ~loc (Pexp_ident {txt=Ldot (module_name, elt); loc})

let jsx_component lid attrs children loc =
  let is_module_name = function
    | Ppxlib.Longident.Lident s
    | Ldot (_, s) ->
      (* s will be non-empty so the 0th access is fine. Modules can't start with underscore *)
       String.get s 0 != '_' && s = String.capitalize_ascii s
    | Lapply (_, _) -> true
  in
  let element_fn = if is_module_name lid.txt then
      rewriteFunctorApp lid.txt "createElement" lid.loc
    else
      mkexp ~loc:lid.loc (Pexp_ident lid)
  in
  let body = mkexp(Pexp_apply(element_fn, attrs @ children)) ~loc in
  let attribute = {
    Ppxlib.attr_name = { Location.txt = "JSX"; loc };
    attr_payload = PStr [];
    attr_loc = loc;
  }
  in
  { body with pexp_attributes = attribute :: body.pexp_attributes }

let rec ignoreLapply = function
  | Ppxlib.Longident.Lident id -> Ppxlib.Longident.Lident id
  | Ldot (lid, id) -> Ldot (ignoreLapply lid, id)
  | Lapply (m1, _) -> ignoreLapply m1

(* Like Ppxlib.Longident.flatten, but ignores `Lapply`s. Useful because 1) we don't want to require `Lapply` in
   closing tags, and 2) Ppxlib.Longident.flatten doesn't support `Lapply`. *)
let rec flattenWithoutLapply = function
  | Ppxlib.Longident.Lident id -> [id]
  | Ldot (lid, id) -> flattenWithoutLapply lid @ [id]
  | Lapply (m1, _) -> flattenWithoutLapply m1

let ensureTagsAreEqual startTag endTag loc =
  if ignoreLapply startTag <> endTag then
    let startTag = String.concat ~sep:"" (flattenWithoutLapply startTag) in
    let endTag = String.concat ~sep:"" (flattenWithoutLapply endTag) in
    if endTag <> "" then
    Printf.ksprintf (syntax_error loc)
      "Start tag <%s> does not match end tag </%s>" startTag endTag

(* `{. "foo": bar}` -> `Js.t {. foo: bar}` and {.. "foo": bar} -> `Js.t {.. foo: bar} *)
let mkBsObjTypeSugar ~loc ~closed rows =
  let obj = mktyp ~loc (Ptyp_object (rows, closed)) in
  let jsDotTCtor = { txt = Ppxlib.Longident.Ldot (Ppxlib.Longident.Lident "Js", "t"); loc } in
  mktyp(Ptyp_constr(jsDotTCtor, [obj]))

let doc_loc loc = {txt = "ocaml.doc"; loc = loc}

let doc_attr text loc =
  (* Here is where we will convert from markdown to odoc - transform the "text" *)
  let exp =
    { Ppxlib.pexp_desc = Pexp_constant (Pconst_string(text, loc, None));
      pexp_loc = loc;
      pexp_attributes = [];
      pexp_loc_stack = [];
    }
  in
  let item =
    { Ppxlib.pstr_desc = Pstr_eval (exp, []); pstr_loc = exp.pexp_loc }
  in
  {
    Ppxlib.attr_name = doc_loc loc;
    attr_payload = PStr [item];
    attr_loc = loc
  }

let prepend_attrs_to_labels attrs = function
  | [] -> [] (* not possible for valid inputs *)
  | (x: Ppxlib.label_declaration) :: xs ->
      { x with pld_attributes = attrs @ x.pld_attributes } :: xs

let raise_record_trailing_semi_error loc =
  syntax_error_exp loc
    "Record entries are separated by comma; \
     we've found a semicolon instead."

let raise_record_trailing_semi_error' loc =
  (Some (raise_record_trailing_semi_error loc), [])

let record_exp_spread_msg =
  "Records can only have one `...` spread, at the beginning.
Explanation: since records have a known, fixed shape, a spread like `{a, ...b}` wouldn't make sense, as `b` would override every field of `a` anyway."

let record_pat_spread_msg =
  "Record's `...` spread is not supported in pattern matches.
Explanation: you can't collect a subset of a record's field into its own record, since a record needs an explicit declaration and that subset wouldn't have one.
Solution: you need to pull out each field you want explicitly."

let lowercase_module_msg =
  "Module names must start with an uppercase letter."

(* Handles "over"-parsing of spread syntax with `opt_spread`.
 * The grammar allows a spread operator at every position, when
 * generating the parsetree we raise a helpful error message. *)
let filter_raise_spread_syntax msg nodes =
  List.map ~f:(fun (dotdotdot, node) ->
      begin match dotdotdot with
        | Some dotdotdotLoc -> syntax_error dotdotdotLoc msg
        | None -> ()
      end;
      node
    ) nodes

(*
 * See https://github.com/ocaml/ocaml/commit/e1e03820e5fea322aa3156721bc1cc0231668101
 * Rely on the parsing rules for generic module types, and then
 * extract a package type, enabling more explicit error messages
 * *)
let package_type_of_module_type (pmty: Ppxlib.module_type) =
  let map_cstr = function
    | Ppxlib.Pwith_type (lid, ptyp) ->
        let loc = ptyp.ptype_loc in
        if ptyp.ptype_params <> [] then
          syntax_error loc "parametrized types are not supported";
        if ptyp.ptype_cstrs <> [] then
          syntax_error loc "constrained types are not supported";
        if ptyp.ptype_private <> Public then
          syntax_error loc "private types are not supported";

        (* restrictions below are checked by the 'with_constraint' rule *)
        assert (ptyp.ptype_kind = Ptype_abstract);
        assert (ptyp.ptype_attributes = []);
        let ty =
          match ptyp.ptype_manifest with
          | Some ty -> ty
          | None -> assert false
        in
        [lid, ty]
    | _ ->
       syntax_error pmty.pmty_loc "only 'with type t =' constraints are supported";
       []
  in
  match pmty with
  | {pmty_desc = Pmty_ident lid; _} -> Some (lid, [])
  | {pmty_desc = Pmty_with({pmty_desc = Pmty_ident lid; _}, cstrs); _} ->
    Some (lid, List.flatten (List.map ~f:map_cstr cstrs))
  | _ -> None

let add_brace_attr (expr: Ppxlib.expression) =
  let attr = {
    Ppxlib.attr_name = mknoloc "reason.preserve_braces";
    attr_payload = PStr [];
    attr_loc = Location.none
  }
  in
  { expr with pexp_attributes= attr :: expr.pexp_attributes }


# 1308 "src/reason-parser/reason_parser.ml"

module Tables = struct
  
  include MenhirBasics
  
  let semantic_action =
    [|
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.longident Location.loc * Ppxlib.pattern) = Obj.magic _2 in
        let _1 : (unit option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 1345 "src/reason-parser/reason_parser.ml"
           in
          (
# 4040 "src/reason-parser/reason_parser.mly"
                                                       ( ([_1], Closed) )
# 1350 "src/reason-parser/reason_parser.ml"
           : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.pattern)) list *
  Ppxlib.closed_flag))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _2_inlined1 : (Ppxlib.longident Location.loc * Ppxlib.pattern) = Obj.magic _2_inlined1 in
        let _1 : (unit option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let (_endpos__2_, _2) = (_endpos__2_inlined1_, _2_inlined1) in
            
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 1399 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4041 "src/reason-parser/reason_parser.mly"
                                                       ( ([_1], Closed) )
# 1405 "src/reason-parser/reason_parser.ml"
           : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.pattern)) list *
  Ppxlib.closed_flag))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : (unit option) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _2_inlined1 : (Ppxlib.longident Location.loc * Ppxlib.pattern) = Obj.magic _2_inlined1 in
        let _1 : (unit option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let (_endpos__2_, _2) = (_endpos__2_inlined1_, _2_inlined1) in
            
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 1468 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4042 "src/reason-parser/reason_parser.mly"
                                                       ( ([_1], Open)   )
# 1474 "src/reason-parser/reason_parser.ml"
           : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.pattern)) list *
  Ppxlib.closed_flag))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.pattern)) list *
  Ppxlib.closed_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _2_inlined1 : (Ppxlib.longident Location.loc * Ppxlib.pattern) = Obj.magic _2_inlined1 in
        let _1 : (unit option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let (_endpos__2_, _2) = (_endpos__2_inlined1_, _2_inlined1) in
            
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 1531 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4044 "src/reason-parser/reason_parser.mly"
    ( let (fields, closed) = _3 in _1 :: fields, closed )
# 1537 "src/reason-parser/reason_parser.ml"
           : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.pattern)) list *
  Ppxlib.closed_flag))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 1573 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2100 "src/reason-parser/reason_parser.mly"
  ( let (ident, binding, virt, params) = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Ci.mk ident binding ~virt ~params ~attrs:_1 ~loc
  )
# 1587 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr Ppxlib.class_infos))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 1630 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 1635 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2100 "src/reason-parser/reason_parser.mly"
  ( let (ident, binding, virt, params) = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Ci.mk ident binding ~virt ~params ~attrs:_1 ~loc
  )
# 1649 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr Ppxlib.class_infos))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_type * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 1684 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2524 "src/reason-parser/reason_parser.mly"
  ( let (ident, binding, virt, params) = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Ci.mk ident binding ~virt ~params ~attrs:_1 ~loc
  )
# 1698 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_description))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_type * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 1741 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 1746 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2524 "src/reason-parser/reason_parser.mly"
  ( let (ident, binding, virt, params) = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Ci.mk ident binding ~virt ~params ~attrs:_1 ~loc
  )
# 1760 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_description))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_type * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 1795 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2554 "src/reason-parser/reason_parser.mly"
  ( let (ident, instance_type, virt, params) = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Ci.mk ident instance_type ~virt ~params ~attrs:_1 ~loc
  )
# 1809 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_type * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 1852 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 1857 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2554 "src/reason-parser/reason_parser.mly"
  ( let (ident, instance_type, virt, params) = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Ci.mk ident instance_type ~virt ~params ~attrs:_1 ~loc
  )
# 1871 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.module_expr) = Obj.magic _4 in
        let x : (string option) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 1915 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 1921 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 1811 "src/reason-parser/reason_parser.mly"
  ( Ast_helper.Mb.mk _3 _4 ~attrs:_1 ~loc:(mklocation _symbolstartpos _endpos) )
# 1932 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_binding))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.module_expr) = Obj.magic _4 in
        let x : (string option) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 1983 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 1990 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 1995 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 1811 "src/reason-parser/reason_parser.mly"
  ( Ast_helper.Mb.mk _3 _4 ~attrs:_1 ~loc:(mklocation _symbolstartpos _endpos) )
# 2006 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_binding))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.module_type) = Obj.magic _4 in
        let x : (string option) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 2050 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 2056 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2093 "src/reason-parser/reason_parser.mly"
  ( Ast_helper.Md.mk _3 _4 ~attrs:_1 ~loc:(mklocation _symbolstartpos _endpos) )
# 2067 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.module_type) = Obj.magic _4 in
        let x : (string option) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 2118 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 2125 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 2130 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2093 "src/reason-parser/reason_parser.mly"
  ( Ast_helper.Md.mk _3 _4 ~attrs:_1 ~loc:(mklocation _symbolstartpos _endpos) )
# 2141 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.type_declaration list) = 
# 4110 "src/reason-parser/reason_parser.mly"
    ( [] )
# 2160 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : ((Ppxlib_ast__Ast_helper_lite.str *
   (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list *
   (Ppxlib.core_type * Ppxlib.core_type * Location.t) list *
   Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  Lexing.position * Ppxlib.type_declaration list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 2197 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4112 "src/reason-parser/reason_parser.mly"
    ( let (ident, params, cstrs, kind, priv, manifest), endpos, and_types = _3 in
      let loc = mklocation _symbolstartpos endpos in
      Ast_helper.Type.mk ident ~params ~cstrs ~kind ~priv ?manifest ~attrs:_1 ~loc
      :: and_types
    )
# 2211 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : ((Ppxlib_ast__Ast_helper_lite.str *
   (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list *
   (Ppxlib.core_type * Ppxlib.core_type * Location.t) list *
   Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  Lexing.position * Ppxlib.type_declaration list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 2257 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 2262 "src/reason-parser/reason_parser.ml"
            
          in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4112 "src/reason-parser/reason_parser.mly"
    ( let (ident, params, cstrs, kind, priv, manifest), endpos, and_types = _3 in
      let loc = mklocation _symbolstartpos endpos in
      Ast_helper.Type.mk ident ~params ~cstrs ~kind ~priv ?manifest ~attrs:_1 ~loc
      :: and_types
    )
# 2276 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.type_declaration list) = 
# 4166 "src/reason-parser/reason_parser.mly"
    ( [] )
# 2295 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = kind_priv_man;
          MenhirLib.EngineTypes.startp = _startpos_kind_priv_man_;
          MenhirLib.EngineTypes.endp = _endpos_kind_priv_man_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = params;
            MenhirLib.EngineTypes.startp = _startpos_params_;
            MenhirLib.EngineTypes.endp = _endpos_params_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let kind_priv_man : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic kind_priv_man in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 2338 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_kind_priv_man_ in
        let _v =
          let name =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 2351 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 2357 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4169 "src/reason-parser/reason_parser.mly"
    ( let (kind, priv, manifest), cstrs, endpos, and_types = kind_priv_man in
      Ast_helper.Type.mk name ~params ~cstrs
        ~kind ~priv ?manifest
        ~attrs:_1
        ~loc:(mklocation _symbolstartpos endpos)
      :: and_types
    )
# 2373 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = kind_priv_man;
          MenhirLib.EngineTypes.startp = _startpos_kind_priv_man_;
          MenhirLib.EngineTypes.endp = _endpos_kind_priv_man_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = params;
            MenhirLib.EngineTypes.startp = _startpos_params_;
            MenhirLib.EngineTypes.endp = _endpos_params_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let kind_priv_man : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic kind_priv_man in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 2423 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_kind_priv_man_ in
        let _v =
          let name =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 2437 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 2444 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 2449 "src/reason-parser/reason_parser.ml"
            
          in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4169 "src/reason-parser/reason_parser.mly"
    ( let (kind, priv, manifest), cstrs, endpos, and_types = kind_priv_man in
      Ast_helper.Type.mk name ~params ~cstrs
        ~kind ~priv ?manifest
        ~attrs:_1
        ~loc:(mklocation _symbolstartpos endpos)
      :: and_types
    )
# 2465 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.arg_label * Ppxlib.core_type) = 
# 4658 "src/reason-parser/reason_parser.mly"
                    ( (Nolabel, _1) )
# 2491 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 2532 "src/reason-parser/reason_parser.ml"
         = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v : (Ppxlib.arg_label * Ppxlib.core_type) = 
# 4660 "src/reason-parser/reason_parser.mly"
    ( (Labelled _2, _4) )
# 2541 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.arg_label * Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.arg_label * Ppxlib.core_type) = 
# 4661 "src/reason-parser/reason_parser.mly"
                                           ( _1 )
# 2566 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined1 : (((Ppxlib.arg_label * Ppxlib.core_type) Location.loc * bool) list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let _1 = _1_inlined1 in
            let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 2615 "src/reason-parser/reason_parser.ml"
             in
            
# 4671 "src/reason-parser/reason_parser.mly"
                                                                             (_1)
# 2620 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4674 "src/reason-parser/reason_parser.mly"
                                                 ( _2 )
# 2626 "src/reason-parser/reason_parser.ml"
           : (((Ppxlib.arg_label * Ppxlib.core_type) Location.loc * bool) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (((Ppxlib.arg_label * Ppxlib.core_type) Location.loc * bool) list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v : (Ppxlib.core_type) = 
# 4645 "src/reason-parser/reason_parser.mly"
    ( List.fold_right ~f:mktyp_arrow _2 ~init:_4 )
# 2673 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.arg_label * Ppxlib.core_type) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 2716 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4647 "src/reason-parser/reason_parser.mly"
    ( mktyp_arrow (_1, false) _3 )
# 2722 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.core_type) = 
# 4649 "src/reason-parser/reason_parser.mly"
    ( mktyp (Ptyp_arrow (Nolabel, _1, _3)) )
# 2762 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (string) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 2791 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5204 "src/reason-parser/reason_parser.mly"
                           ( _1 )
# 2797 "src/reason-parser/reason_parser.ml"
           : (string Location.loc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (string Location.loc) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (string) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 5205 "src/reason-parser/reason_parser.mly"
                               ( mkloc (_1 ^ "." ^ _3.txt) (mklocation _symbolstartpos _endpos) )
# 2840 "src/reason-parser/reason_parser.ml"
           : (string Location.loc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.payload) = Obj.magic _3 in
        let _2 : (string Location.loc) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _endpos = _endpos__4_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 5210 "src/reason-parser/reason_parser.mly"
    (
      { attr_name = _2;
        attr_payload = _3;
        attr_loc = mklocation _symbolstartpos _endpos
      }
    )
# 2895 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.attribute))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1265 "src/reason-parser/reason_parser.mly"
       (string)
# 2917 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 5216 "src/reason-parser/reason_parser.mly"
              (
    (* Here is where we will make another copy of doc_attr but with
     * reason.doc/text instead of ocaml.doc/text and _that_ is the one that the
     * printer should pay attention to, completely ignoring the ocaml.doc/text
     * ones.  The ocaml.doc/text ones would only be received by odoc. *)
    doc_attr _1 (mklocation _symbolstartpos _endpos)
  )
# 2934 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.attribute))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.extension_constructor list) = Obj.magic _2 in
        let _1 : (Ppxlib.extension_constructor) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.extension_constructor list) = 
# 4431 "src/reason-parser/reason_parser.mly"
                                     ( _1 :: _2 )
# 2967 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.extension_constructor list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.extension_constructor list) = 
# 4432 "src/reason-parser/reason_parser.mly"
                                   ( _1 )
# 2992 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.extension_constructor list) = Obj.magic _2 in
        let _1 : (Ppxlib.extension_constructor) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.extension_constructor list) = 
# 4431 "src/reason-parser/reason_parser.mly"
                                     ( _1 :: _2 )
# 3024 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.extension_constructor list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.extension_constructor list) = 
# 4432 "src/reason-parser/reason_parser.mly"
                                   ( _1 )
# 3049 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_declaration) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 3082 "src/reason-parser/reason_parser.ml"
           in
          (
# 4288 "src/reason-parser/reason_parser.mly"
  ( {_3 with pcd_attributes = _1 @ _3.pcd_attributes} )
# 3087 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_declaration) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 3129 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 3134 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4288 "src/reason-parser/reason_parser.mly"
  ( {_3 with pcd_attributes = _1 @ _3.pcd_attributes} )
# 3140 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.row_field) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 3174 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4851 "src/reason-parser/reason_parser.mly"
  ( let loc = (mklocation _symbolstartpos _endpos) in
    match _3.prf_desc with
    | Rtag (name, amp, typs) ->
      Ast_helper.Rf.tag ~loc ~attrs:(_1 @ _3.prf_attributes) name amp typs
    | Rinherit typ ->
      Ast_helper.Rf.inherit_ ~loc { typ with ptyp_attributes = (_1 @ typ.ptyp_attributes) }
  )
# 3191 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.row_field))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.row_field) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 3233 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 3238 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4851 "src/reason-parser/reason_parser.mly"
  ( let loc = (mklocation _symbolstartpos _endpos) in
    match _3.prf_desc with
    | Rtag (name, amp, typs) ->
      Ast_helper.Rf.tag ~loc ~attrs:(_1 @ _3.prf_attributes) name amp typs
    | Rinherit typ ->
      Ast_helper.Rf.inherit_ ~loc { typ with ptyp_attributes = (_1 @ typ.ptyp_attributes) }
  )
# 3255 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.row_field))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.core_type list) = Obj.magic _2 in
        let _1 : (Ppxlib_ast__Ast_helper_lite.lid) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 4760 "src/reason-parser/reason_parser.mly"
    ( mktyp(Ptyp_constr(_1, _2)) )
# 3290 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 3304 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4782 "src/reason-parser/reason_parser.mly"
    (_1)
# 3310 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type list) = Obj.magic _3 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 3356 "src/reason-parser/reason_parser.ml"
                
              in
              
# 4762 "src/reason-parser/reason_parser.mly"
    ( mktyp(Ptyp_class(_2, _3)) )
# 3362 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 3377 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4782 "src/reason-parser/reason_parser.mly"
    (_1)
# 3383 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (string) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 4764 "src/reason-parser/reason_parser.mly"
    ( mktyp(Ptyp_var _2) )
# 3418 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 3432 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4782 "src/reason-parser/reason_parser.mly"
    (_1)
# 3438 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 3477 "src/reason-parser/reason_parser.ml"
                
              in
              
# 4766 "src/reason-parser/reason_parser.mly"
    ( mktyp(Ptyp_class(_2, [])) )
# 3483 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 3498 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4782 "src/reason-parser/reason_parser.mly"
    (_1)
# 3504 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 4768 "src/reason-parser/reason_parser.mly"
    ( mktyp(Ptyp_any) )
# 3532 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 3546 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4782 "src/reason-parser/reason_parser.mly"
    (_1)
# 3552 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib_ast__Ast_helper_lite.lid) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 4770 "src/reason-parser/reason_parser.mly"
    ( mktyp(Ptyp_constr(_1, [])) )
# 3580 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 3594 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4782 "src/reason-parser/reason_parser.mly"
    (_1)
# 3600 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 4772 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 3628 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 3642 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4782 "src/reason-parser/reason_parser.mly"
    (_1)
# 3648 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.row_field list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 4775 "src/reason-parser/reason_parser.mly"
    ( mktyp(Ptyp_variant (_2, Closed, None)) )
# 3690 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 3704 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4782 "src/reason-parser/reason_parser.mly"
    (_1)
# 3710 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.row_field list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 4775 "src/reason-parser/reason_parser.mly"
    ( mktyp(Ptyp_variant (_2, Closed, None)) )
# 3752 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 3766 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4782 "src/reason-parser/reason_parser.mly"
    (_1)
# 3772 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.row_field list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 4777 "src/reason-parser/reason_parser.mly"
    ( mktyp(Ptyp_variant (_2, Open, None)) )
# 3814 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 3828 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4782 "src/reason-parser/reason_parser.mly"
    (_1)
# 3834 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (string list) = Obj.magic _3 in
        let _2 : (Ppxlib.row_field list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x = 
# 4779 "src/reason-parser/reason_parser.mly"
    ( mktyp(Ptyp_variant (_2, Closed, Some _3)) )
# 3883 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 3897 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4782 "src/reason-parser/reason_parser.mly"
    (_1)
# 3903 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Astlib.Ast_502.Parsetree.extension) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 4781 "src/reason-parser/reason_parser.mly"
    ( mktyp(Ptyp_extension _1) )
# 3931 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 3945 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4782 "src/reason-parser/reason_parser.mly"
    (_1)
# 3951 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (bool) = 
# 134 "<standard.mly>"
    ( false )
# 3970 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (bool) = 
# 137 "<standard.mly>"
    ( true )
# 3995 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 2603 "src/reason-parser/reason_parser.mly"
    ( add_brace_attr _2 )
# 4036 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 4046 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2622 "src/reason-parser/reason_parser.mly"
  (_1)
# 4052 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (unit option) = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos__1_ in
              
# 2605 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      syntax_error_exp loc
        "Record construction must have at least one field explicitly set" )
# 4113 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 4124 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2622 "src/reason-parser/reason_parser.mly"
  (_1)
# 4130 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x = 
# 2609 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos__4_ _endpos__4_ in
      raise_record_trailing_semi_error loc )
# 4187 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 4197 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2622 "src/reason-parser/reason_parser.mly"
  (_1)
# 4203 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 2612 "src/reason-parser/reason_parser.mly"
    ( mk_record_expr _2 )
# 4246 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 4256 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2622 "src/reason-parser/reason_parser.mly"
  (_1)
# 4262 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__3_ in
              let _symbolstartpos = _startpos__1_ in
              
# 2614 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let (exten, fields) = _2 in
      mkexp ~loc (Pexp_extension (mkloc ("mel.obj") loc,
             PStr [mkstrexp (mkexp ~loc (Pexp_record(fields, exten))) []]))
    )
# 4312 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 4323 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2622 "src/reason-parser/reason_parser.mly"
  (_1)
# 4329 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.class_structure) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 2621 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_object _2) )
# 4371 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 4381 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2622 "src/reason-parser/reason_parser.mly"
  (_1)
# 4387 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.class_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.class_type) = 
# 2419 "src/reason-parser/reason_parser.mly"
                        ( _1 )
# 4413 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.class_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (((Ppxlib.arg_label * Ppxlib.core_type) Location.loc * bool) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.class_type) = 
# 2421 "src/reason-parser/reason_parser.mly"
    ( List.fold_right ~f:mkcty_arrow _1 ~init:_3 )
# 4452 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.class_expr) = Obj.magic _2 in
        let _1 : (Ppxlib.class_type option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _endpos = _endpos__2_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2123 "src/reason-parser/reason_parser.mly"
  ( match _1 with
    | None -> _2
    | Some ct -> Ast_helper.Cl.constraint_ ~loc:(mklocation _symbolstartpos _endpos) _2 ct
  )
# 4493 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.class_expr) = Obj.magic _5 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 4528 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.virtual_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 = 
# 123 "<standard.mly>"
    ( None )
# 4538 "src/reason-parser/reason_parser.ml"
           in
          let _3 = 
# 123 "<standard.mly>"
    ( None )
# 4543 "src/reason-parser/reason_parser.ml"
           in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 4551 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2109 "src/reason-parser/reason_parser.mly"
  (
    let tree = match _4 with
    | None -> []
    | Some (lpl, _uncurried) -> lpl
    in
    let body = List.fold_right ~f:mkclass_fun tree ~init:_5 in
    let params = match _3 with None -> [] | Some x -> x in
    (_2, body, _1, params)
  )
# 4565 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.class_expr) = Obj.magic _5 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 4615 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.virtual_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 =
            let _startpos__1_ = _startpos__1_inlined1_ in
            let x =
              let _endpos = _endpos__2_ in
              let _startpos = _startpos__1_ in
              
# 2778 "src/reason-parser/reason_parser.mly"
                  (
    let loc = mklocation _startpos _endpos in
    ([mkloc (Reason_parser_def.Term (Nolabel, None, mkpat_constructor_unit loc loc)) loc], false)
  )
# 4633 "src/reason-parser/reason_parser.ml"
              
            in
            
# 126 "<standard.mly>"
    ( Some x )
# 4639 "src/reason-parser/reason_parser.ml"
            
          in
          let _3 = 
# 123 "<standard.mly>"
    ( None )
# 4645 "src/reason-parser/reason_parser.ml"
           in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 4653 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2109 "src/reason-parser/reason_parser.mly"
  (
    let tree = match _4 with
    | None -> []
    | Some (lpl, _uncurried) -> lpl
    in
    let body = List.fold_right ~f:mkclass_fun tree ~init:_5 in
    let params = match _3 with None -> [] | Some x -> x in
    (_2, body, _1, params)
  )
# 4667 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined2;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = x;
                    MenhirLib.EngineTypes.startp = _startpos_x_;
                    MenhirLib.EngineTypes.endp = _endpos_x_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.class_expr) = Obj.magic _5 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined2 : (Reason_parser_def.labelled_parameter Location.loc list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 4731 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.virtual_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 =
            let _1_inlined1 = _1_inlined2 in
            let x =
              let _1 =
                let _1 =
                  let x =
                    let _1 = _1_inlined1 in
                    let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 4748 "src/reason-parser/reason_parser.ml"
                     in
                    
# 2775 "src/reason-parser/reason_parser.mly"
                                                          ( _1 )
# 4753 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 205 "<standard.mly>"
    ( x )
# 4759 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 4765 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2782 "src/reason-parser/reason_parser.mly"
                                               (
    (_1, false)
  )
# 4773 "src/reason-parser/reason_parser.ml"
              
            in
            
# 126 "<standard.mly>"
    ( Some x )
# 4779 "src/reason-parser/reason_parser.ml"
            
          in
          let _3 = 
# 123 "<standard.mly>"
    ( None )
# 4785 "src/reason-parser/reason_parser.ml"
           in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 4793 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2109 "src/reason-parser/reason_parser.mly"
  (
    let tree = match _4 with
    | None -> []
    | Some (lpl, _uncurried) -> lpl
    in
    let body = List.fold_right ~f:mkclass_fun tree ~init:_5 in
    let params = match _3 with None -> [] | Some x -> x in
    (_2, body, _1, params)
  )
# 4807 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.class_expr) = Obj.magic _5 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 4864 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.virtual_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 =
            let _startpos__1_ = _startpos__1_inlined1_ in
            let x =
              let _endpos = _endpos__3_ in
              let _startpos = _startpos__1_ in
              
# 2785 "src/reason-parser/reason_parser.mly"
                      (
      let loc = mklocation _startpos _endpos in
      ([mkloc (Reason_parser_def.Term (Nolabel, None, mkpat_constructor_unit loc loc)) loc], true)
  )
# 4882 "src/reason-parser/reason_parser.ml"
              
            in
            
# 126 "<standard.mly>"
    ( Some x )
# 4888 "src/reason-parser/reason_parser.ml"
            
          in
          let _3 = 
# 123 "<standard.mly>"
    ( None )
# 4894 "src/reason-parser/reason_parser.ml"
           in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 4902 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2109 "src/reason-parser/reason_parser.mly"
  (
    let tree = match _4 with
    | None -> []
    | Some (lpl, _uncurried) -> lpl
    in
    let body = List.fold_right ~f:mkclass_fun tree ~init:_5 in
    let params = match _3 with None -> [] | Some x -> x in
    (_2, body, _1, params)
  )
# 4916 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined2;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _1_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = x;
                      MenhirLib.EngineTypes.startp = _startpos_x_;
                      MenhirLib.EngineTypes.endp = _endpos_x_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.class_expr) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _2_inlined1 : (unit option) = Obj.magic _2_inlined1 in
        let _1_inlined2 : (Reason_parser_def.labelled_parameter Location.loc list) = Obj.magic _1_inlined2 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 4987 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.virtual_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 =
            let _1_inlined1 = _1_inlined2 in
            let x =
              let _3 =
                let _1 = _1_inlined1 in
                let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 5002 "src/reason-parser/reason_parser.ml"
                 in
                
# 2775 "src/reason-parser/reason_parser.mly"
                                                          ( _1 )
# 5007 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2789 "src/reason-parser/reason_parser.mly"
                                                  (
      (_3, true)
  )
# 5015 "src/reason-parser/reason_parser.ml"
              
            in
            
# 126 "<standard.mly>"
    ( Some x )
# 5021 "src/reason-parser/reason_parser.ml"
            
          in
          let _3 = 
# 123 "<standard.mly>"
    ( None )
# 5027 "src/reason-parser/reason_parser.ml"
           in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 5035 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2109 "src/reason-parser/reason_parser.mly"
  (
    let tree = match _4 with
    | None -> []
    | Some (lpl, _uncurried) -> lpl
    in
    let body = List.fold_right ~f:mkclass_fun tree ~init:_5 in
    let params = match _3 with None -> [] | Some x -> x in
    (_2, body, _1, params)
  )
# 5049 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined2;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = x;
                    MenhirLib.EngineTypes.startp = _startpos_x_;
                    MenhirLib.EngineTypes.endp = _endpos_x_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.class_expr) = Obj.magic _5 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined2 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 5113 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.virtual_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 = 
# 123 "<standard.mly>"
    ( None )
# 5123 "src/reason-parser/reason_parser.ml"
           in
          let _3 =
            let _1_inlined1 = _1_inlined2 in
            let x =
              let _1 =
                let _1 =
                  let x =
                    let _1 = _1_inlined1 in
                    let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 5135 "src/reason-parser/reason_parser.ml"
                     in
                    
# 2531 "src/reason-parser/reason_parser.mly"
                                                             (_1)
# 5140 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 205 "<standard.mly>"
    ( x )
# 5146 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 5152 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2535 "src/reason-parser/reason_parser.mly"
  ( _1 )
# 5158 "src/reason-parser/reason_parser.ml"
              
            in
            
# 126 "<standard.mly>"
    ( Some x )
# 5164 "src/reason-parser/reason_parser.ml"
            
          in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 5173 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2109 "src/reason-parser/reason_parser.mly"
  (
    let tree = match _4 with
    | None -> []
    | Some (lpl, _uncurried) -> lpl
    in
    let body = List.fold_right ~f:mkclass_fun tree ~init:_5 in
    let params = match _3 with None -> [] | Some x -> x in
    (_2, body, _1, params)
  )
# 5187 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined3;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _1_inlined2;
                    MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                    MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1_inlined1;
                      MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = x;
                        MenhirLib.EngineTypes.startp = _startpos_x_;
                        MenhirLib.EngineTypes.endp = _endpos_x_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _menhir_s;
                          MenhirLib.EngineTypes.semv = _1;
                          MenhirLib.EngineTypes.startp = _startpos__1_;
                          MenhirLib.EngineTypes.endp = _endpos__1_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.class_expr) = Obj.magic _5 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1_inlined3 : unit = Obj.magic _1_inlined3 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined2 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 5265 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.virtual_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 =
            let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined3_) in
            let x =
              let _endpos = _endpos__2_ in
              let _startpos = _startpos__1_ in
              
# 2778 "src/reason-parser/reason_parser.mly"
                  (
    let loc = mklocation _startpos _endpos in
    ([mkloc (Reason_parser_def.Term (Nolabel, None, mkpat_constructor_unit loc loc)) loc], false)
  )
# 5283 "src/reason-parser/reason_parser.ml"
              
            in
            
# 126 "<standard.mly>"
    ( Some x )
# 5289 "src/reason-parser/reason_parser.ml"
            
          in
          let _3 =
            let _1_inlined1 = _1_inlined2 in
            let x =
              let _1 =
                let _1 =
                  let x =
                    let _1 = _1_inlined1 in
                    let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 5302 "src/reason-parser/reason_parser.ml"
                     in
                    
# 2531 "src/reason-parser/reason_parser.mly"
                                                             (_1)
# 5307 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 205 "<standard.mly>"
    ( x )
# 5313 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 5319 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2535 "src/reason-parser/reason_parser.mly"
  ( _1 )
# 5325 "src/reason-parser/reason_parser.ml"
              
            in
            
# 126 "<standard.mly>"
    ( Some x )
# 5331 "src/reason-parser/reason_parser.ml"
            
          in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 5340 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2109 "src/reason-parser/reason_parser.mly"
  (
    let tree = match _4 with
    | None -> []
    | Some (lpl, _uncurried) -> lpl
    in
    let body = List.fold_right ~f:mkclass_fun tree ~init:_5 in
    let params = match _3 with None -> [] | Some x -> x in
    (_2, body, _1, params)
  )
# 5354 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined4;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined4_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined3;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _3;
                    MenhirLib.EngineTypes.startp = _startpos__3_;
                    MenhirLib.EngineTypes.endp = _endpos__3_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = _1_inlined2;
                        MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                        MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _;
                          MenhirLib.EngineTypes.semv = _1_inlined1;
                          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _;
                            MenhirLib.EngineTypes.semv = x;
                            MenhirLib.EngineTypes.startp = _startpos_x_;
                            MenhirLib.EngineTypes.endp = _endpos_x_;
                            MenhirLib.EngineTypes.next = {
                              MenhirLib.EngineTypes.state = _menhir_s;
                              MenhirLib.EngineTypes.semv = _1;
                              MenhirLib.EngineTypes.startp = _startpos__1_;
                              MenhirLib.EngineTypes.endp = _endpos__1_;
                              MenhirLib.EngineTypes.next = _menhir_stack;
                            };
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.class_expr) = Obj.magic _5 in
        let _3_inlined1 : unit = Obj.magic _3_inlined1 in
        let _2_inlined1 : (unit option) = Obj.magic _2_inlined1 in
        let _1_inlined4 : (Reason_parser_def.labelled_parameter Location.loc list) = Obj.magic _1_inlined4 in
        let _1_inlined3 : unit = Obj.magic _1_inlined3 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined2 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 5446 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.virtual_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 =
            let _1_inlined1 = _1_inlined4 in
            let x =
              let _1 =
                let _1 =
                  let x =
                    let _1 = _1_inlined1 in
                    let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 5463 "src/reason-parser/reason_parser.ml"
                     in
                    
# 2775 "src/reason-parser/reason_parser.mly"
                                                          ( _1 )
# 5468 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 205 "<standard.mly>"
    ( x )
# 5474 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 5480 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2782 "src/reason-parser/reason_parser.mly"
                                               (
    (_1, false)
  )
# 5488 "src/reason-parser/reason_parser.ml"
              
            in
            
# 126 "<standard.mly>"
    ( Some x )
# 5494 "src/reason-parser/reason_parser.ml"
            
          in
          let _3 =
            let _1_inlined1 = _1_inlined2 in
            let x =
              let _1 =
                let _1 =
                  let x =
                    let _1 = _1_inlined1 in
                    let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 5507 "src/reason-parser/reason_parser.ml"
                     in
                    
# 2531 "src/reason-parser/reason_parser.mly"
                                                             (_1)
# 5512 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 205 "<standard.mly>"
    ( x )
# 5518 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 5524 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2535 "src/reason-parser/reason_parser.mly"
  ( _1 )
# 5530 "src/reason-parser/reason_parser.ml"
              
            in
            
# 126 "<standard.mly>"
    ( Some x )
# 5536 "src/reason-parser/reason_parser.ml"
            
          in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 5545 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2109 "src/reason-parser/reason_parser.mly"
  (
    let tree = match _4 with
    | None -> []
    | Some (lpl, _uncurried) -> lpl
    in
    let body = List.fold_right ~f:mkclass_fun tree ~init:_5 in
    let params = match _3 with None -> [] | Some x -> x in
    (_2, body, _1, params)
  )
# 5559 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined3;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1_inlined2;
                      MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                      MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = _1_inlined1;
                        MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _;
                          MenhirLib.EngineTypes.semv = x;
                          MenhirLib.EngineTypes.startp = _startpos_x_;
                          MenhirLib.EngineTypes.endp = _endpos_x_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = _1;
                            MenhirLib.EngineTypes.startp = _startpos__1_;
                            MenhirLib.EngineTypes.endp = _endpos__1_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.class_expr) = Obj.magic _5 in
        let _3_inlined1 : unit = Obj.magic _3_inlined1 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1_inlined3 : unit = Obj.magic _1_inlined3 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined2 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 5644 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.virtual_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 =
            let (_endpos__3_, _startpos__1_) = (_endpos__3_inlined1_, _startpos__1_inlined3_) in
            let x =
              let _endpos = _endpos__3_ in
              let _startpos = _startpos__1_ in
              
# 2785 "src/reason-parser/reason_parser.mly"
                      (
      let loc = mklocation _startpos _endpos in
      ([mkloc (Reason_parser_def.Term (Nolabel, None, mkpat_constructor_unit loc loc)) loc], true)
  )
# 5662 "src/reason-parser/reason_parser.ml"
              
            in
            
# 126 "<standard.mly>"
    ( Some x )
# 5668 "src/reason-parser/reason_parser.ml"
            
          in
          let _3 =
            let _1_inlined1 = _1_inlined2 in
            let x =
              let _1 =
                let _1 =
                  let x =
                    let _1 = _1_inlined1 in
                    let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 5681 "src/reason-parser/reason_parser.ml"
                     in
                    
# 2531 "src/reason-parser/reason_parser.mly"
                                                             (_1)
# 5686 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 205 "<standard.mly>"
    ( x )
# 5692 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 5698 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2535 "src/reason-parser/reason_parser.mly"
  ( _1 )
# 5704 "src/reason-parser/reason_parser.ml"
              
            in
            
# 126 "<standard.mly>"
    ( Some x )
# 5710 "src/reason-parser/reason_parser.ml"
            
          in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 5719 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2109 "src/reason-parser/reason_parser.mly"
  (
    let tree = match _4 with
    | None -> []
    | Some (lpl, _uncurried) -> lpl
    in
    let body = List.fold_right ~f:mkclass_fun tree ~init:_5 in
    let params = match _3 with None -> [] | Some x -> x in
    (_2, body, _1, params)
  )
# 5733 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2_inlined2;
              MenhirLib.EngineTypes.startp = _startpos__2_inlined2_;
              MenhirLib.EngineTypes.endp = _endpos__2_inlined2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined4;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined4_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _1_inlined3;
                    MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
                    MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _3;
                      MenhirLib.EngineTypes.startp = _startpos__3_;
                      MenhirLib.EngineTypes.endp = _endpos__3_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = _2;
                        MenhirLib.EngineTypes.startp = _startpos__2_;
                        MenhirLib.EngineTypes.endp = _endpos__2_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _;
                          MenhirLib.EngineTypes.semv = _1_inlined2;
                          MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                          MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _;
                            MenhirLib.EngineTypes.semv = _1_inlined1;
                            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                            MenhirLib.EngineTypes.next = {
                              MenhirLib.EngineTypes.state = _;
                              MenhirLib.EngineTypes.semv = x;
                              MenhirLib.EngineTypes.startp = _startpos_x_;
                              MenhirLib.EngineTypes.endp = _endpos_x_;
                              MenhirLib.EngineTypes.next = {
                                MenhirLib.EngineTypes.state = _menhir_s;
                                MenhirLib.EngineTypes.semv = _1;
                                MenhirLib.EngineTypes.startp = _startpos__1_;
                                MenhirLib.EngineTypes.endp = _endpos__1_;
                                MenhirLib.EngineTypes.next = _menhir_stack;
                              };
                            };
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.class_expr) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _2_inlined2 : (unit option) = Obj.magic _2_inlined2 in
        let _1_inlined4 : (Reason_parser_def.labelled_parameter Location.loc list) = Obj.magic _1_inlined4 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1_inlined3 : unit = Obj.magic _1_inlined3 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined2 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 5832 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.virtual_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 =
            let _1_inlined1 = _1_inlined4 in
            let x =
              let _3 =
                let _1 = _1_inlined1 in
                let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 5847 "src/reason-parser/reason_parser.ml"
                 in
                
# 2775 "src/reason-parser/reason_parser.mly"
                                                          ( _1 )
# 5852 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2789 "src/reason-parser/reason_parser.mly"
                                                  (
      (_3, true)
  )
# 5860 "src/reason-parser/reason_parser.ml"
              
            in
            
# 126 "<standard.mly>"
    ( Some x )
# 5866 "src/reason-parser/reason_parser.ml"
            
          in
          let _3 =
            let _1_inlined1 = _1_inlined2 in
            let x =
              let _1 =
                let _1 =
                  let x =
                    let _1 = _1_inlined1 in
                    let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 5879 "src/reason-parser/reason_parser.ml"
                     in
                    
# 2531 "src/reason-parser/reason_parser.mly"
                                                             (_1)
# 5884 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 205 "<standard.mly>"
    ( x )
# 5890 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 5896 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2535 "src/reason-parser/reason_parser.mly"
  ( _1 )
# 5902 "src/reason-parser/reason_parser.ml"
              
            in
            
# 126 "<standard.mly>"
    ( Some x )
# 5908 "src/reason-parser/reason_parser.ml"
            
          in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 5917 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2109 "src/reason-parser/reason_parser.mly"
  (
    let tree = match _4 with
    | None -> []
    | Some (lpl, _uncurried) -> lpl
    in
    let body = List.fold_right ~f:mkclass_fun tree ~init:_5 in
    let params = match _3 with None -> [] | Some x -> x in
    (_2, body, _1, params)
  )
# 5931 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.class_type) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 5981 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.virtual_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 5994 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2540 "src/reason-parser/reason_parser.mly"
  ( (_2, _5, _1, _3) )
# 6000 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_type * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.class_description list) = Obj.magic _4 in
        let _3 : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_type * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 6043 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2516 "src/reason-parser/reason_parser.mly"
  ( let (ident, binding, virt, params) = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    (Ast_helper.Ci.mk ident binding ~virt ~params ~attrs:_1 ~loc :: _4)
  )
# 6057 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_description list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.class_description list) = Obj.magic _4 in
        let _3 : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_type * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 6107 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 6112 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2516 "src/reason-parser/reason_parser.mly"
  ( let (ident, binding, virt, params) = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    (Ast_helper.Ci.mk ident binding ~virt ~params ~attrs:_1 ~loc :: _4)
  )
# 6126 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_description list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.class_expr) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 2165 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 6154 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 6164 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2196 "src/reason-parser/reason_parser.mly"
    (_1)
# 6170 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.class_expr) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (unit) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _startpos__1_ = _startpos__1_inlined1_ in
                let _endpos = _endpos__2_ in
                let _startpos = _startpos__1_ in
                
# 2778 "src/reason-parser/reason_parser.mly"
                  (
    let loc = mklocation _startpos _endpos in
    ([mkloc (Reason_parser_def.Term (Nolabel, None, mkpat_constructor_unit loc loc)) loc], false)
  )
# 6234 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2167 "src/reason-parser/reason_parser.mly"
    ( let (lp, _) = _2 in
      List.fold_right ~f:mkclass_fun lp ~init:_4 )
# 6241 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 6252 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2196 "src/reason-parser/reason_parser.mly"
    (_1)
# 6258 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined2;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _1_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.class_expr) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _3_inlined1 : unit = Obj.magic _3_inlined1 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined2 : (Reason_parser_def.labelled_parameter Location.loc list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (unit) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _1_inlined1 = _1_inlined2 in
                let _1 =
                  let _1 =
                    let x =
                      let _1 = _1_inlined1 in
                      let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 6335 "src/reason-parser/reason_parser.ml"
                       in
                      
# 2775 "src/reason-parser/reason_parser.mly"
                                                          ( _1 )
# 6340 "src/reason-parser/reason_parser.ml"
                      
                    in
                    
# 205 "<standard.mly>"
    ( x )
# 6346 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 6352 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 2782 "src/reason-parser/reason_parser.mly"
                                               (
    (_1, false)
  )
# 6360 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2167 "src/reason-parser/reason_parser.mly"
    ( let (lp, _) = _2 in
      List.fold_right ~f:mkclass_fun lp ~init:_4 )
# 6367 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 6378 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2196 "src/reason-parser/reason_parser.mly"
    (_1)
# 6384 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.class_expr) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _3_inlined1 : unit = Obj.magic _3_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (unit) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let (_endpos__3_, _startpos__1_) = (_endpos__3_inlined1_, _startpos__1_inlined1_) in
                let _endpos = _endpos__3_ in
                let _startpos = _startpos__1_ in
                
# 2785 "src/reason-parser/reason_parser.mly"
                      (
      let loc = mklocation _startpos _endpos in
      ([mkloc (Reason_parser_def.Term (Nolabel, None, mkpat_constructor_unit loc loc)) loc], true)
  )
# 6455 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2167 "src/reason-parser/reason_parser.mly"
    ( let (lp, _) = _2 in
      List.fold_right ~f:mkclass_fun lp ~init:_4 )
# 6462 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 6473 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2196 "src/reason-parser/reason_parser.mly"
    (_1)
# 6479 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__4_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__4_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined2;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1_inlined1;
                      MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.class_expr) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _4_inlined1 : unit = Obj.magic _4_inlined1 in
        let _2_inlined1 : (unit option) = Obj.magic _2_inlined1 in
        let _1_inlined2 : (Reason_parser_def.labelled_parameter Location.loc list) = Obj.magic _1_inlined2 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (unit) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _1_inlined1 = _1_inlined2 in
                let _3 =
                  let _1 = _1_inlined1 in
                  let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 6561 "src/reason-parser/reason_parser.ml"
                   in
                  
# 2775 "src/reason-parser/reason_parser.mly"
                                                          ( _1 )
# 6566 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 2789 "src/reason-parser/reason_parser.mly"
                                                  (
      (_3, true)
  )
# 6574 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2167 "src/reason-parser/reason_parser.mly"
    ( let (lp, _) = _2 in
      List.fold_right ~f:mkclass_fun lp ~init:_4 )
# 6581 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 6592 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2196 "src/reason-parser/reason_parser.mly"
    (_1)
# 6598 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : ((Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _2 in
        let _1 : (Ppxlib.class_expr) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 2177 "src/reason-parser/reason_parser.mly"
    ( mkclass(Pcl_apply(_1, _2)) )
# 6633 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 6643 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2196 "src/reason-parser/reason_parser.mly"
    (_1)
# 6649 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.class_expr) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 2179 "src/reason-parser/reason_parser.mly"
    ( {_2 with pcl_attributes = _1 :: _2.pcl_attributes} )
# 6684 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 6694 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2196 "src/reason-parser/reason_parser.mly"
    (_1)
# 6700 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type list) = Obj.magic _3 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 6746 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2193 "src/reason-parser/reason_parser.mly"
    ( mkclass(Pcl_constr(_2, _3)) )
# 6752 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 6763 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2196 "src/reason-parser/reason_parser.mly"
    (_1)
# 6769 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Astlib.Ast_502.Parsetree.extension) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 2195 "src/reason-parser/reason_parser.mly"
    ( mkclass(Pcl_extension _1) )
# 6797 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 6807 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2196 "src/reason-parser/reason_parser.mly"
    (_1)
# 6813 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.class_expr) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 2131 "src/reason-parser/reason_parser.mly"
               ( _1 )
# 6841 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = if _startpos_x_ != _endpos_x_ then
              _startpos_x_
            else
              _endpos in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 6854 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2139 "src/reason-parser/reason_parser.mly"
    (_1)
# 6860 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.class_expr) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Reason_parser_def.let_bindings) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 2133 "src/reason-parser/reason_parser.mly"
    ( class_of_let_bindings _1 _3 )
# 6902 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = if _startpos_x_ != _endpos_x_ then
              _startpos_x_
            else
              _endpos in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 6915 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2139 "src/reason-parser/reason_parser.mly"
    (_1)
# 6921 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.class_structure) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 2134 "src/reason-parser/reason_parser.mly"
                ( mkclass (Pcl_structure _1) )
# 6949 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = if _startpos_x_ != _endpos_x_ then
              _startpos_x_
            else
              _endpos in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 6962 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2139 "src/reason-parser/reason_parser.mly"
    (_1)
# 6968 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.class_expr) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _3 : (Ppxlib.override_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (unit option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let x =
              let _4 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 7035 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2136 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos__2_ _endpos__3_ in
      let od = Ast_helper.Opn.mk ~override:_3 ~loc _4 in
      mkclass (Pcl_open (od, _6)) )
# 7043 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = if _startpos_x_ != _endpos_x_ then
              _startpos_x_
            else
              _endpos in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7057 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2139 "src/reason-parser/reason_parser.mly"
    (_1)
# 7063 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _5 : (string Location.loc option) = Obj.magic _5 in
        let _4 : (Ppxlib.class_expr) = Obj.magic _4 in
        let _3 : (Ppxlib.override_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 7113 "src/reason-parser/reason_parser.ml"
               in
              
# 2215 "src/reason-parser/reason_parser.mly"
      ( mkcf_attrs (Pcf_inherit (_3, _4, _5)) _1 )
# 7118 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5349 "src/reason-parser/reason_parser.mly"
   (
      let x: Ppxlib.class_field = x in
     {x with pcf_loc = {x.pcf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7129 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2226 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 7135 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (string Location.loc option) = Obj.magic _5 in
        let _4 : (Ppxlib.class_expr) = Obj.magic _4 in
        let _3 : (Ppxlib.override_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 7193 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 7198 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2215 "src/reason-parser/reason_parser.mly"
      ( mkcf_attrs (Pcf_inherit (_3, _4, _5)) _1 )
# 7204 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5349 "src/reason-parser/reason_parser.mly"
   (
      let x: Ppxlib.class_field = x in
     {x with pcf_loc = {x.pcf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7215 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2226 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 7221 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (string Location.loc * Ppxlib.mutable_flag * Ppxlib.class_field_kind) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 7257 "src/reason-parser/reason_parser.ml"
               in
              
# 2217 "src/reason-parser/reason_parser.mly"
      ( mkcf_attrs (Pcf_val _3) _1 )
# 7262 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5349 "src/reason-parser/reason_parser.mly"
   (
      let x: Ppxlib.class_field = x in
     {x with pcf_loc = {x.pcf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7273 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2226 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 7279 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (string Location.loc * Ppxlib.mutable_flag * Ppxlib.class_field_kind) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 7323 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 7328 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2217 "src/reason-parser/reason_parser.mly"
      ( mkcf_attrs (Pcf_val _3) _1 )
# 7334 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5349 "src/reason-parser/reason_parser.mly"
   (
      let x: Ppxlib.class_field = x in
     {x with pcf_loc = {x.pcf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7345 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2226 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 7351 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (string Location.loc * Ppxlib.class_field_kind) = Obj.magic _3 in
        let _2 : (Ppxlib.private_flag) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 7387 "src/reason-parser/reason_parser.ml"
               in
              
# 2219 "src/reason-parser/reason_parser.mly"
      ( let (a, b) = _3 in mkcf_attrs (Pcf_method (a, _2, b)) _1 )
# 7392 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5349 "src/reason-parser/reason_parser.mly"
   (
      let x: Ppxlib.class_field = x in
     {x with pcf_loc = {x.pcf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7403 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2226 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 7409 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (string Location.loc * Ppxlib.class_field_kind) = Obj.magic _3 in
        let _2 : (Ppxlib.private_flag) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 7453 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 7458 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2219 "src/reason-parser/reason_parser.mly"
      ( let (a, b) = _3 in mkcf_attrs (Pcf_method (a, _2, b)) _1 )
# 7464 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5349 "src/reason-parser/reason_parser.mly"
   (
      let x: Ppxlib.class_field = x in
     {x with pcf_loc = {x.pcf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7475 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2226 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 7481 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type * Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 7517 "src/reason-parser/reason_parser.ml"
               in
              
# 2221 "src/reason-parser/reason_parser.mly"
      ( mkcf_attrs (Pcf_constraint _3) _1 )
# 7522 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5349 "src/reason-parser/reason_parser.mly"
   (
      let x: Ppxlib.class_field = x in
     {x with pcf_loc = {x.pcf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7533 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2226 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 7539 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type * Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 7583 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 7588 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2221 "src/reason-parser/reason_parser.mly"
      ( mkcf_attrs (Pcf_constraint _3) _1 )
# 7594 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5349 "src/reason-parser/reason_parser.mly"
   (
      let x: Ppxlib.class_field = x in
     {x with pcf_loc = {x.pcf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7605 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2226 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 7611 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x =
              let _3 =
                let x =
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 7651 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7662 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 7668 "src/reason-parser/reason_parser.ml"
               in
              
# 2223 "src/reason-parser/reason_parser.mly"
      ( mkcf_attrs (Pcf_initializer _3) _1 )
# 7673 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5349 "src/reason-parser/reason_parser.mly"
   (
      let x: Ppxlib.class_field = x in
     {x with pcf_loc = {x.pcf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7684 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2226 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 7690 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let x =
              let _3 =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                let x =
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 7738 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7749 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 7756 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 7761 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2223 "src/reason-parser/reason_parser.mly"
      ( mkcf_attrs (Pcf_initializer _3) _1 )
# 7767 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5349 "src/reason-parser/reason_parser.mly"
   (
      let x: Ppxlib.class_field = x in
     {x with pcf_loc = {x.pcf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7778 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2226 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 7784 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _2 : (Ppxlib.extension) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 7813 "src/reason-parser/reason_parser.ml"
               in
              
# 2225 "src/reason-parser/reason_parser.mly"
      ( mkcf_attrs (Pcf_extension _2) _1 )
# 7818 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5349 "src/reason-parser/reason_parser.mly"
   (
      let x: Ppxlib.class_field = x in
     {x with pcf_loc = {x.pcf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7829 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2226 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 7835 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.extension) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 7872 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 7877 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2225 "src/reason-parser/reason_parser.mly"
      ( mkcf_attrs (Pcf_extension _2) _1 )
# 7883 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5349 "src/reason-parser/reason_parser.mly"
   (
      let x: Ppxlib.class_field = x in
     {x with pcf_loc = {x.pcf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7894 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2226 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 7900 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 7927 "src/reason-parser/reason_parser.ml"
           in
          (
# 2228 "src/reason-parser/reason_parser.mly"
    ( List.map
      ~f:(fun x -> mkcf ~loc:x.loc (Pcf_attribute (make_floating_doc x.txt)))
      _1 )
# 7934 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.core_type list) = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 7973 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2432 "src/reason-parser/reason_parser.mly"
    ( mkcty (Pcty_constr (_1, _2)) )
# 7979 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__2_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5295 "src/reason-parser/reason_parser.mly"
  (
    let x : Ppxlib.class_type = x in
    {x with pcty_loc = {x.pcty_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 7990 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2441 "src/reason-parser/reason_parser.mly"
    (_1)
# 7996 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.class_type) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 2436 "src/reason-parser/reason_parser.mly"
    ( {_2 with pcty_attributes = _1 :: _2.pcty_attributes} )
# 8031 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5295 "src/reason-parser/reason_parser.mly"
  (
    let x : Ppxlib.class_type = x in
    {x with pcty_loc = {x.pcty_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 8041 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2441 "src/reason-parser/reason_parser.mly"
    (_1)
# 8047 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.class_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 2438 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 8075 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5295 "src/reason-parser/reason_parser.mly"
  (
    let x : Ppxlib.class_type = x in
    {x with pcty_loc = {x.pcty_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 8085 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2441 "src/reason-parser/reason_parser.mly"
    (_1)
# 8091 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Astlib.Ast_502.Parsetree.extension) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 2440 "src/reason-parser/reason_parser.mly"
    ( mkcty (Pcty_extension _1) )
# 8119 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5295 "src/reason-parser/reason_parser.mly"
  (
    let x : Ppxlib.class_type = x in
    {x with pcty_loc = {x.pcty_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 8129 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2441 "src/reason-parser/reason_parser.mly"
    (_1)
# 8135 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 8157 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.longident) = 
# 5058 "src/reason-parser/reason_parser.mly"
                                 ( Lident _1 )
# 8165 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 8198 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.longident) = 
# 5059 "src/reason-parser/reason_parser.mly"
                                 ( Ppxlib.Longident.Ldot(_1, _3) )
# 8208 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.pattern) = 
# 2160 "src/reason-parser/reason_parser.mly"
               ( _2 )
# 8240 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.core_type) = 
# 2475 "src/reason-parser/reason_parser.mly"
                 ( _2 )
# 8272 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.class_signature) = 
# 2467 "src/reason-parser/reason_parser.mly"
  ( Ast_helper.Csig.mk _1 [] )
# 8297 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.class_type_field list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.class_signature) = 
# 2469 "src/reason-parser/reason_parser.mly"
  ( Ast_helper.Csig.mk _1 _3 )
# 8336 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.class_type_field list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _endpos in
          (
# 2471 "src/reason-parser/reason_parser.mly"
  ( Ast_helper.Csig.mk (Ast_helper.Typ.mk ~loc:(mklocation _symbolstartpos _endpos) Ptyp_any) _1 )
# 8367 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_signature))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.class_signature) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.class_type_desc) = 
# 2458 "src/reason-parser/reason_parser.mly"
                   ( Pcty_signature _1 )
# 8393 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x_inlined1;
          MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let x_inlined1 : (Ppxlib.class_type_desc) = Obj.magic x_inlined1 in
        let _5 : unit = Obj.magic _5 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _3 : (Ppxlib.override_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (unit option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_inlined1_ in
        let _v =
          let _6 =
            let (_endpos_x_, _startpos_x_, x) = (_endpos_x_inlined1_, _startpos_x_inlined1_, x_inlined1) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = if _startpos_x_ != _endpos_x_ then
              _startpos_x_
            else
              _endpos in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 8461 "src/reason-parser/reason_parser.ml"
            
          in
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 8470 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2460 "src/reason-parser/reason_parser.mly"
    ( let {txt; loc} = _6 in
      let od = Ast_helper.Opn.mk ~override:_3 ~loc:(mklocation _startpos__2_ _endpos__3_) _4 in
      Pcty_open (od, mkcty ~loc txt) )
# 8478 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5391 "src/reason-parser/reason_parser.mly"
                ( [] )
# 8505 "src/reason-parser/reason_parser.ml"
           in
          (
# 2454 "src/reason-parser/reason_parser.mly"
                                               ( List.concat _1 )
# 8510 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : (Ppxlib.class_type_field list list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 8545 "src/reason-parser/reason_parser.ml"
             in
            
# 5392 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 8550 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2454 "src/reason-parser/reason_parser.mly"
                                               ( List.concat _1 )
# 8556 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.class_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 8592 "src/reason-parser/reason_parser.ml"
               in
              
# 2481 "src/reason-parser/reason_parser.mly"
      ( mkctf_attrs (Pctf_inherit _3) _1 )
# 8597 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5301 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_type_field = x in
    {x with pctf_loc = {x.pctf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 8608 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2492 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 8614 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.class_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 8658 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 8663 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2481 "src/reason-parser/reason_parser.mly"
      ( mkctf_attrs (Pctf_inherit _3) _1 )
# 8669 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5301 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_type_field = x in
    {x with pctf_loc = {x.pctf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 8680 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2492 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 8686 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (string Location.loc * Ppxlib.mutable_flag * Ppxlib.virtual_flag *
  Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 8723 "src/reason-parser/reason_parser.ml"
               in
              
# 2483 "src/reason-parser/reason_parser.mly"
      ( mkctf_attrs (Pctf_val _3) _1 )
# 8728 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5301 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_type_field = x in
    {x with pctf_loc = {x.pctf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 8739 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2492 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 8745 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (string Location.loc * Ppxlib.mutable_flag * Ppxlib.virtual_flag *
  Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 8790 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 8795 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2483 "src/reason-parser/reason_parser.mly"
      ( mkctf_attrs (Pctf_val _3) _1 )
# 8801 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5301 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_type_field = x in
    {x with pctf_loc = {x.pctf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 8812 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2492 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 8818 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 8866 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _3 : (Ppxlib.virtual_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let x =
              let _4 =
                let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 8880 "src/reason-parser/reason_parser.ml"
                 in
                let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 8888 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 8894 "src/reason-parser/reason_parser.ml"
               in
              
# 2485 "src/reason-parser/reason_parser.mly"
      ( mkctf_attrs (Pctf_method (_4, Private, _3, _6)) _1 )
# 8899 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5301 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_type_field = x in
    {x with pctf_loc = {x.pctf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 8910 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2492 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 8916 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 8970 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _3 : (Ppxlib.virtual_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let x =
              let _4 =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 8986 "src/reason-parser/reason_parser.ml"
                 in
                let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 8994 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 9001 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 9006 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2485 "src/reason-parser/reason_parser.mly"
      ( mkctf_attrs (Pctf_method (_4, Private, _3, _6)) _1 )
# 9012 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5301 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_type_field = x in
    {x with pctf_loc = {x.pctf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 9023 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2492 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 9029 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 9077 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _3 : (Ppxlib.virtual_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let x =
              let _4 =
                let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 9091 "src/reason-parser/reason_parser.ml"
                 in
                let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 9099 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 9105 "src/reason-parser/reason_parser.ml"
               in
              
# 2487 "src/reason-parser/reason_parser.mly"
      ( mkctf_attrs (Pctf_method (_4, Public, _3, _6)) _1 )
# 9110 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5301 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_type_field = x in
    {x with pctf_loc = {x.pctf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 9121 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2492 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 9127 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 9181 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _3 : (Ppxlib.virtual_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let x =
              let _4 =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 9197 "src/reason-parser/reason_parser.ml"
                 in
                let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 9205 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 9212 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 9217 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2487 "src/reason-parser/reason_parser.mly"
      ( mkctf_attrs (Pctf_method (_4, Public, _3, _6)) _1 )
# 9223 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5301 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_type_field = x in
    {x with pctf_loc = {x.pctf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 9234 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2492 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 9240 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type * Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 9276 "src/reason-parser/reason_parser.ml"
               in
              
# 2489 "src/reason-parser/reason_parser.mly"
      ( mkctf_attrs (Pctf_constraint _3) _1 )
# 9281 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5301 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_type_field = x in
    {x with pctf_loc = {x.pctf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 9292 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2492 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 9298 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type * Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 9342 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 9347 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2489 "src/reason-parser/reason_parser.mly"
      ( mkctf_attrs (Pctf_constraint _3) _1 )
# 9353 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5301 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_type_field = x in
    {x with pctf_loc = {x.pctf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 9364 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2492 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 9370 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _2 : (Ppxlib.extension) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 9399 "src/reason-parser/reason_parser.ml"
               in
              
# 2491 "src/reason-parser/reason_parser.mly"
      ( mkctf_attrs (Pctf_extension _2) _1 )
# 9404 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5301 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_type_field = x in
    {x with pctf_loc = {x.pctf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 9415 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2492 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 9421 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.extension) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 9458 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 9463 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2491 "src/reason-parser/reason_parser.mly"
      ( mkctf_attrs (Pctf_extension _2) _1 )
# 9469 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5301 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_type_field = x in
    {x with pctf_loc = {x.pctf_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 9480 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2492 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 9486 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 9513 "src/reason-parser/reason_parser.ml"
           in
          (
# 2494 "src/reason-parser/reason_parser.mly"
    ( List.map
      ~f:(fun x -> mkctf ~loc:x.loc (Pctf_attribute (make_floating_doc x.txt)))
      _1 )
# 9520 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 9552 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2201 "src/reason-parser/reason_parser.mly"
    ( mkclass(Pcl_constr(_1, [])) )
# 9558 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 9568 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2208 "src/reason-parser/reason_parser.mly"
    (_1)
# 9574 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.class_expr) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 2210 "src/reason-parser/reason_parser.mly"
                                                                ( _2 )
# 9617 "src/reason-parser/reason_parser.ml"
               in
              
# 2203 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 9622 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 9633 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2208 "src/reason-parser/reason_parser.mly"
    (_1)
# 9639 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.class_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.class_expr) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x = 
# 2205 "src/reason-parser/reason_parser.mly"
    ( mkclass(Pcl_constraint(_2, _4)) )
# 9695 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 9705 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2208 "src/reason-parser/reason_parser.mly"
    (_1)
# 9711 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.class_expr) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 2207 "src/reason-parser/reason_parser.mly"
    ( _2 )
# 9753 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5343 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.class_expr = x in
    {x with pcl_loc = {x.pcl_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 9763 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2208 "src/reason-parser/reason_parser.mly"
    (_1)
# 9769 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : (Ppxlib.core_type list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 9803 "src/reason-parser/reason_parser.ml"
           in
          (
# 2425 "src/reason-parser/reason_parser.mly"
                                                     (_1)
# 9808 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.class_type_desc) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _endpos = _endpos__3_ in
          let _startpos = _startpos__1_ in
          (
# 2445 "src/reason-parser/reason_parser.mly"
    ( mkcty ~loc:(mklocation _startpos _endpos) _2 )
# 9851 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.class_type_desc) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _endpos = _endpos__4_ in
          let _startpos = _startpos__1_ in
          (
# 2447 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      let ct = mkcty ~loc _3 in
      {ct with pcty_attributes = [uncurry_payload loc]}
    )
# 9904 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.class_type) = Obj.magic _4 in
        let _3 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 9946 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.virtual_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 9959 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2563 "src/reason-parser/reason_parser.mly"
  ( (_2, _4, _1, _3) )
# 9965 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_type * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.class_type_declaration list) = Obj.magic _5 in
        let _4 : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_type * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 10015 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2546 "src/reason-parser/reason_parser.mly"
  ( let (ident, instance_type, virt, params) = _4 in
    let loc = mklocation _symbolstartpos _endpos in
    (Ast_helper.Ci.mk ident instance_type ~virt ~params ~attrs:_1 ~loc :: _5)
  )
# 10029 "src/reason-parser/reason_parser.ml"
           : (Astlib.Ast_502.Parsetree.class_type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.class_type_declaration list) = Obj.magic _5 in
        let _4 : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_type * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 10086 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 10091 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2546 "src/reason-parser/reason_parser.mly"
  ( let (ident, instance_type, virt, params) = _4 in
    let loc = mklocation _symbolstartpos _endpos in
    (Ast_helper.Ci.mk ident instance_type ~virt ~params ~attrs:_1 ~loc :: _5)
  )
# 10105 "src/reason-parser/reason_parser.ml"
           : (Astlib.Ast_502.Parsetree.class_type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 10127 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.longident) = 
# 5053 "src/reason-parser/reason_parser.mly"
                                 ( Lident _1 )
# 10135 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 10168 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.longident) = 
# 5054 "src/reason-parser/reason_parser.mly"
                                 ( Ppxlib.Longident.Ldot(_1, _3) )
# 10178 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1186 "src/reason-parser/reason_parser.mly"
       (string * char option)
# 10199 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = 
# 4872 "src/reason-parser/reason_parser.mly"
                   ( let (n, m) = _1 in ([], Pconst_integer (n, m)) )
# 10207 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1142 "src/reason-parser/reason_parser.mly"
       (char)
# 10228 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = 
# 4873 "src/reason-parser/reason_parser.mly"
                   ( ([], Pconst_char _1) )
# 10236 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1163 "src/reason-parser/reason_parser.mly"
       (string * char option)
# 10257 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = 
# 4874 "src/reason-parser/reason_parser.mly"
                   ( let (f, m) = _1 in ([], Pconst_float (f, m)) )
# 10265 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : 
# 1244 "src/reason-parser/reason_parser.mly"
       (string * string option * string option)
# 10286 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 10298 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4875 "src/reason-parser/reason_parser.mly"
                   (
    let { txt = (s, raw, d); loc } = _1 in
    let attr = match raw with
      | None -> []
      | Some raw ->
        let constant = Ast_helper.Exp.constant (Pconst_string (raw, loc, None)) in
        [ { Ppxlib.attr_name = mkloc "reason.raw_literal" loc;
            attr_payload = PStr [mkstrexp constant []];
            attr_loc = Location.none
          } ]
    in
    (attr, Pconst_string (s, loc, d))
  )
# 10316 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.longident) = 
# 4967 "src/reason-parser/reason_parser.mly"
                                  ( _1 )
# 10342 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.longident) = 
# 4968 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident "[]" )
# 10374 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.longident) = 
# 4969 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident "()" )
# 10406 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.longident) = 
# 4970 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident "false" )
# 10431 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.longident) = 
# 4971 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident "true" )
# 10456 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 2506 "src/reason-parser/reason_parser.mly"
  ( (_1, _3, mklocation _symbolstartpos _endpos) )
# 10498 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type * Ppxlib.core_type * Location.t))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.core_type * Ppxlib.core_type) = 
# 2511 "src/reason-parser/reason_parser.mly"
  ( (_1, _3) )
# 10538 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.constructor_arguments) = 
# 4329 "src/reason-parser/reason_parser.mly"
                       ( Pcstr_tuple [_1] )
# 10563 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.label_declaration list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.constructor_arguments) = 
# 4333 "src/reason-parser/reason_parser.mly"
                       ( Pcstr_record _1 )
# 10588 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let x : (Ppxlib.label_declaration list) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 205 "<standard.mly>"
    ( x )
# 10629 "src/reason-parser/reason_parser.ml"
             in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 10634 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4334 "src/reason-parser/reason_parser.mly"
                                      ( Pcstr_record _1 )
# 10640 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_arguments))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let x : (Ppxlib.core_type list) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 205 "<standard.mly>"
    ( x )
# 10682 "src/reason-parser/reason_parser.ml"
             in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 10687 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4336 "src/reason-parser/reason_parser.mly"
    ( Pcstr_tuple _1 )
# 10693 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_arguments))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : (Ppxlib.core_type list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 10727 "src/reason-parser/reason_parser.ml"
           in
          (
# 4325 "src/reason-parser/reason_parser.mly"
                                                    (_1)
# 10732 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _3 in
        let _1 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 10761 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let x = 
# 4952 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 10771 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 10779 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_ in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 10786 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4293 "src/reason-parser/reason_parser.mly"
  ( let args, res = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Type.constructor ~attrs:_1 _2 ~args ?res ~loc )
# 10799 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let x = 
# 4953 "src/reason-parser/reason_parser.mly"
                      ( "[]" )
# 10841 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 10849 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_ in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 10856 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4293 "src/reason-parser/reason_parser.mly"
  ( let args, res = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Type.constructor ~attrs:_1 _2 ~args ?res ~loc )
# 10869 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let x = 
# 4954 "src/reason-parser/reason_parser.mly"
                      ( "()" )
# 10911 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 10919 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_ in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 10926 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4293 "src/reason-parser/reason_parser.mly"
  ( let args, res = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Type.constructor ~attrs:_1 _2 ~args ?res ~loc )
# 10939 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _3 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let x = 
# 4955 "src/reason-parser/reason_parser.mly"
                      ( "::" )
# 10974 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 10982 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_ in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 10989 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4293 "src/reason-parser/reason_parser.mly"
  ( let args, res = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Type.constructor ~attrs:_1 _2 ~args ?res ~loc )
# 11002 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _3 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let x = 
# 4957 "src/reason-parser/reason_parser.mly"
                      ( "false" )
# 11037 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 11045 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_ in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 11052 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4293 "src/reason-parser/reason_parser.mly"
  ( let args, res = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Type.constructor ~attrs:_1 _2 ~args ?res ~loc )
# 11065 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _3 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let x = 
# 4958 "src/reason-parser/reason_parser.mly"
                      ( "true" )
# 11100 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 11108 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_ in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 11115 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4293 "src/reason-parser/reason_parser.mly"
  ( let args, res = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Type.constructor ~attrs:_1 _2 ~args ?res ~loc )
# 11128 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _3 in
        let _1_inlined1 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 11163 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 4952 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 11175 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 11183 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_inlined1_ in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 11191 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 11196 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4293 "src/reason-parser/reason_parser.mly"
  ( let args, res = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Type.constructor ~attrs:_1 _2 ~args ?res ~loc )
# 11209 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let _startpos__1_ = _startpos__1_inlined1_ in
            let x = 
# 4953 "src/reason-parser/reason_parser.mly"
                      ( "[]" )
# 11259 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 11267 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_inlined1_ in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 11275 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 11280 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4293 "src/reason-parser/reason_parser.mly"
  ( let args, res = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Type.constructor ~attrs:_1 _2 ~args ?res ~loc )
# 11293 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let _startpos__1_ = _startpos__1_inlined1_ in
            let x = 
# 4954 "src/reason-parser/reason_parser.mly"
                      ( "()" )
# 11343 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 11351 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_inlined1_ in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 11359 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 11364 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4293 "src/reason-parser/reason_parser.mly"
  ( let args, res = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Type.constructor ~attrs:_1 _2 ~args ?res ~loc )
# 11377 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
            let x = 
# 4955 "src/reason-parser/reason_parser.mly"
                      ( "::" )
# 11420 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 11428 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_inlined1_ in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 11436 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 11441 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4293 "src/reason-parser/reason_parser.mly"
  ( let args, res = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Type.constructor ~attrs:_1 _2 ~args ?res ~loc )
# 11454 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
            let x = 
# 4957 "src/reason-parser/reason_parser.mly"
                      ( "false" )
# 11497 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 11505 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_inlined1_ in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 11513 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 11518 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4293 "src/reason-parser/reason_parser.mly"
  ( let args, res = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Type.constructor ~attrs:_1 _2 ~args ?res ~loc )
# 11531 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
            let x = 
# 4958 "src/reason-parser/reason_parser.mly"
                      ( "true" )
# 11574 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 11582 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_inlined1_ in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 11590 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 11595 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4293 "src/reason-parser/reason_parser.mly"
  ( let args, res = _3 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Type.constructor ~attrs:_1 _2 ~args ?res ~loc )
# 11608 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.type_declaration list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _endpos = _endpos__2_ in
          (
# 4252 "src/reason-parser/reason_parser.mly"
                             ( ([], [], _endpos, _2) )
# 11643 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic _2 in
        let _1 : (Ppxlib.constructor_declaration) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = 
# 4255 "src/reason-parser/reason_parser.mly"
  ( let (cstrs, constraints, endpos, and_types) = _2 in
    (_1 :: cstrs, constraints, endpos, and_types)
  )
# 11684 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic _2 in
        let _1 : (Ppxlib.constructor_declaration) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = 
# 4262 "src/reason-parser/reason_parser.mly"
    ( let (cstrs, constraints, endpos, and_types) = _2 in
      (_1 :: cstrs, constraints, endpos, and_types)
    )
# 11722 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _2 : (Ppxlib.type_declaration list) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 4179 "src/reason-parser/reason_parser.mly"
    ( [] )
# 11748 "src/reason-parser/reason_parser.ml"
           in
          let _endpos__1_ = _endpos__0_ in
          (
# 4266 "src/reason-parser/reason_parser.mly"
    ( ([], _1, _endpos__1_, _2) )
# 11754 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.type_declaration list) = Obj.magic _2 in
        let _1 : ((Ppxlib.core_type * Ppxlib.core_type * Location.t) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 4180 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 11790 "src/reason-parser/reason_parser.ml"
           in
          (
# 4266 "src/reason-parser/reason_parser.mly"
    ( ([], _1, _endpos__1_, _2) )
# 11795 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 4610 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 11825 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 11839 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4613 "src/reason-parser/reason_parser.mly"
    (_1)
# 11845 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x : (string) = Obj.magic x in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _4 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 11898 "src/reason-parser/reason_parser.ml"
                
              in
              
# 4612 "src/reason-parser/reason_parser.mly"
    ( mktyp(Ptyp_alias(_1, _4)) )
# 11904 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 11919 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4613 "src/reason-parser/reason_parser.mly"
    (_1)
# 11925 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = ct;
          MenhirLib.EngineTypes.startp = _startpos_ct_;
          MenhirLib.EngineTypes.endp = _endpos_ct_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let ct : (Ppxlib.core_type) = Obj.magic ct in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_ct_ in
        let _endpos = _endpos_ct_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 11952 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos_ct_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos_ct_ in
          (
# 4626 "src/reason-parser/reason_parser.mly"
  ( match _1 with
    | [] -> ct
    | attrs ->
      let loc_start = _symbolstartpos and loc_end = _endpos in
      let ptyp_loc = {ct.ptyp_loc with loc_start; loc_end} in
      let ptyp_attributes = attrs @ ct.ptyp_attributes in
      {ct with ptyp_attributes; ptyp_loc}
  )
# 11970 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = ct;
          MenhirLib.EngineTypes.startp = _startpos_ct_;
          MenhirLib.EngineTypes.endp = _endpos_ct_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let ct : (Ppxlib.core_type) = Obj.magic ct in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_ct_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 12005 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 12010 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos_ct_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos_ct_ in
          (
# 4626 "src/reason-parser/reason_parser.mly"
  ( match _1 with
    | [] -> ct
    | attrs ->
      let loc_start = _symbolstartpos and loc_end = _endpos in
      let ptyp_loc = {ct.ptyp_loc with loc_start; loc_end} in
      let ptyp_attributes = attrs @ ct.ptyp_attributes in
      {ct with ptyp_attributes; ptyp_loc}
  )
# 12028 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.direction_flag) = 
# 5109 "src/reason-parser/reason_parser.mly"
                  ( Upto )
# 12054 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.direction_flag) = 
# 5110 "src/reason-parser/reason_parser.mly"
                  ( Downto )
# 12079 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (unit) = 
# 5367 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12104 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (unit) = 
# 5368 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12129 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 2218 "src/reason-parser/reason_parser.mly"
                                 (Public)
# 12155 "src/reason-parser/reason_parser.ml"
           in
          (
# 5367 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12160 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.private_flag))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 2218 "src/reason-parser/reason_parser.mly"
                                               (Private)
# 12187 "src/reason-parser/reason_parser.ml"
           in
          (
# 5368 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12192 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.private_flag))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.constructor_declaration) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.constructor_declaration) = 
# 5367 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12218 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.constructor_declaration) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.constructor_declaration) = 
# 5368 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12243 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.extension_constructor) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.extension_constructor) = 
# 5367 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12268 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.extension_constructor) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.extension_constructor) = 
# 5368 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12293 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let x : (Ppxlib.longident Location.loc *
  (Ppxlib.core_type option * Ppxlib.core_type option) option) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 205 "<standard.mly>"
    ( x )
# 12335 "src/reason-parser/reason_parser.ml"
             in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 12340 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5367 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12346 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident Location.loc *
  (Ppxlib.core_type option * Ppxlib.core_type option) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.longident Location.loc *
  (Ppxlib.core_type option * Ppxlib.core_type option) option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.longident Location.loc *
  (Ppxlib.core_type option * Ppxlib.core_type option) option) = 
# 5368 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12375 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.class_expr) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 = 
# 188 "<standard.mly>"
    ( x )
# 12408 "src/reason-parser/reason_parser.ml"
           in
          (
# 5367 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12413 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.class_expr) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 = 
# 2210 "src/reason-parser/reason_parser.mly"
                                                                ( _2 )
# 12454 "src/reason-parser/reason_parser.ml"
           in
          (
# 5368 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12459 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.class_type) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 = 
# 188 "<standard.mly>"
    ( x )
# 12493 "src/reason-parser/reason_parser.ml"
           in
          (
# 5367 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12498 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.class_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.class_type) = 
# 5368 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12524 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.expression) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 = 
# 188 "<standard.mly>"
    ( x )
# 12557 "src/reason-parser/reason_parser.ml"
           in
          (
# 5367 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12562 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.expression) = 
# 5368 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12588 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.expression) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 = 
# 188 "<standard.mly>"
    ( x )
# 12621 "src/reason-parser/reason_parser.ml"
           in
          (
# 5367 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12626 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.expression) = 
# 5368 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 12652 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let x = 
# 1467 "src/reason-parser/reason_parser.mly"
                                     ( raise End_of_file )
# 12678 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 12683 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.toplevel_phrase))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.structure) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let x = 
# 1468 "src/reason-parser/reason_parser.mly"
                                     ( Ppxlib.Ptop_def _1 )
# 12717 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 12722 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.toplevel_phrase))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.toplevel_phrase) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let x = 
# 1469 "src/reason-parser/reason_parser.mly"
                                     (
    let x: Ppxlib.toplevel_phrase = _1
    in
    x
  )
# 12760 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 12765 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.toplevel_phrase))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let x = 
# 1478 "src/reason-parser/reason_parser.mly"
                                   ( [] )
# 12792 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 12797 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.toplevel_phrase list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.toplevel_phrase list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.structure) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let x = 
# 1479 "src/reason-parser/reason_parser.mly"
                                               ( Ppxlib.Ptop_def _1  :: _3 )
# 12838 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 12843 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.toplevel_phrase list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.toplevel_phrase list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.toplevel_phrase) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let x = 
# 1480 "src/reason-parser/reason_parser.mly"
                                               ( _1 :: _3 )
# 12884 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 12889 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.toplevel_phrase list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.structure) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let x = 
# 1481 "src/reason-parser/reason_parser.mly"
                                     ( [Ppxlib.Ptop_def _1 ] )
# 12923 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 12928 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.toplevel_phrase list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.toplevel_phrase) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let x = 
# 1482 "src/reason-parser/reason_parser.mly"
                                     ( [_1] )
# 12962 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 12967 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.toplevel_phrase list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (string) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let x = 
# 4223 "src/reason-parser/reason_parser.mly"
                      ( (mktyp (Ptyp_var _2) , (NoVariance, NoInjectivity)    ) )
# 13001 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13006 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let x = 
# 4224 "src/reason-parser/reason_parser.mly"
                      ( (mktyp (Ptyp_any)    , (NoVariance, NoInjectivity)    ) )
# 13033 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13038 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (string) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let x = 
# 4225 "src/reason-parser/reason_parser.mly"
                      ( (mktyp (Ptyp_var _3) , (Covariant, NoInjectivity)    ) )
# 13079 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13084 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let x = 
# 4226 "src/reason-parser/reason_parser.mly"
                      ( (mktyp (Ptyp_any)    , (Covariant, NoInjectivity)    ) )
# 13118 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13123 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (string) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let x = 
# 4227 "src/reason-parser/reason_parser.mly"
                      ( (mktyp (Ptyp_var _3) , (Contravariant, NoInjectivity)) )
# 13164 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13169 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let x = 
# 4228 "src/reason-parser/reason_parser.mly"
                      ( (mktyp Ptyp_any      , (Contravariant, NoInjectivity)) )
# 13203 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13208 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v =
          let x = 
# 5066 "src/reason-parser/reason_parser.mly"
                          ( None )
# 13228 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13233 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.directive_argument_desc option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1244 "src/reason-parser/reason_parser.mly"
       (string * string option * string option)
# 13255 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let x = 
# 5067 "src/reason-parser/reason_parser.mly"
                          ( let (s, _, _) = _1 in Some(Ppxlib.Pdir_string s) )
# 13264 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13269 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.directive_argument_desc option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1186 "src/reason-parser/reason_parser.mly"
       (string * char option)
# 13291 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let x = 
# 5068 "src/reason-parser/reason_parser.mly"
                          ( let (n, m) = _1 in Some(Ppxlib.Pdir_int (n, m)) )
# 13300 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13305 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.directive_argument_desc option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let x = 
# 5069 "src/reason-parser/reason_parser.mly"
                          ( Some(Ppxlib.Pdir_ident _1) )
# 13332 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13337 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.directive_argument_desc option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let x = 
# 5070 "src/reason-parser/reason_parser.mly"
                          ( Some(Ppxlib.Pdir_ident _1) )
# 13364 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13369 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.directive_argument_desc option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let x = 
# 5071 "src/reason-parser/reason_parser.mly"
                          ( Some(Ppxlib.Pdir_bool false) )
# 13396 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13401 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.directive_argument_desc option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let x = 
# 5072 "src/reason-parser/reason_parser.mly"
                          ( Some(Ppxlib.Pdir_bool true) )
# 13428 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13433 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.directive_argument_desc option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v =
          let x = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 13453 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13458 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.private_flag))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let x = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 13485 "src/reason-parser/reason_parser.ml"
           in
          (
# 101 "<standard.mly>"
    ( x )
# 13490 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.private_flag))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _endpos = _endpos__2_ in
            let _startpos = _startpos__1_ in
            
# 2778 "src/reason-parser/reason_parser.mly"
                  (
    let loc = mklocation _startpos _endpos in
    ([mkloc (Reason_parser_def.Term (Nolabel, None, mkpat_constructor_unit loc loc)) loc], false)
  )
# 13530 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2795 "src/reason-parser/reason_parser.mly"
                         ( _1 )
# 13536 "src/reason-parser/reason_parser.ml"
           : (Reason_parser_def.labelled_parameter Location.loc list * bool))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined1 : (Reason_parser_def.labelled_parameter Location.loc list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let _1 =
                let x =
                  let _1 = _1_inlined1 in
                  let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 13589 "src/reason-parser/reason_parser.ml"
                   in
                  
# 2775 "src/reason-parser/reason_parser.mly"
                                                          ( _1 )
# 13594 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 205 "<standard.mly>"
    ( x )
# 13600 "src/reason-parser/reason_parser.ml"
                
              in
              
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 13606 "src/reason-parser/reason_parser.ml"
              
            in
            
# 2782 "src/reason-parser/reason_parser.mly"
                                               (
    (_1, false)
  )
# 13614 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2795 "src/reason-parser/reason_parser.mly"
                         ( _1 )
# 13620 "src/reason-parser/reason_parser.ml"
           : (Reason_parser_def.labelled_parameter Location.loc list * bool))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _endpos = _endpos__3_ in
            let _startpos = _startpos__1_ in
            
# 2785 "src/reason-parser/reason_parser.mly"
                      (
      let loc = mklocation _startpos _endpos in
      ([mkloc (Reason_parser_def.Term (Nolabel, None, mkpat_constructor_unit loc loc)) loc], true)
  )
# 13667 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2795 "src/reason-parser/reason_parser.mly"
                         ( _1 )
# 13673 "src/reason-parser/reason_parser.ml"
           : (Reason_parser_def.labelled_parameter Location.loc list * bool))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _2_inlined1 : (unit option) = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Reason_parser_def.labelled_parameter Location.loc list) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _3 =
              let _1 = _1_inlined1 in
              let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 13731 "src/reason-parser/reason_parser.ml"
               in
              
# 2775 "src/reason-parser/reason_parser.mly"
                                                          ( _1 )
# 13736 "src/reason-parser/reason_parser.ml"
              
            in
            
# 2789 "src/reason-parser/reason_parser.mly"
                                                  (
      (_3, true)
  )
# 13744 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2795 "src/reason-parser/reason_parser.mly"
                         ( _1 )
# 13750 "src/reason-parser/reason_parser.ml"
           : (Reason_parser_def.labelled_parameter Location.loc list * bool))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 13780 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2797 "src/reason-parser/reason_parser.mly"
    ( ([{_1 with txt = Term (Nolabel, None, mkpat ~loc:_1.loc Ppat_any)}], false) )
# 13786 "src/reason-parser/reason_parser.ml"
           : (Reason_parser_def.labelled_parameter Location.loc list * bool))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Reason_parser_def.labelled_parameter Location.loc list * bool) = 
# 2799 "src/reason-parser/reason_parser.mly"
    ( ([mkloc (Reason_parser_def.Term (Nolabel, None, _1)) _1.ppat_loc], false) )
# 13812 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 13844 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 2984 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 13850 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 13861 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 13867 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 13873 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _endpos = _endpos__3_ in
                let _startpos = _startpos__1_ in
                
# 2986 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc _3 )
# 13920 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 13931 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 13937 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 13943 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Reason_parser_def.labelled_parameter Location.loc list * bool) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _endpos = _endpos__4_ in
                let _startpos = _startpos__1_ in
                
# 2989 "src/reason-parser/reason_parser.mly"
    ( let (ps, uncurried) = _2 in
      let exp = List.fold_right ~f:mkexp_fun ps ~init:_4 in
      if uncurried then
        let loc = mklocation _startpos _endpos in
        {exp with pexp_attributes = (uncurry_payload loc)::exp.pexp_attributes}
      else exp
    )
# 14002 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 14013 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 14019 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 14025 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4;
              MenhirLib.EngineTypes.startp = _startpos__4_;
              MenhirLib.EngineTypes.endp = _endpos__4_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.expression) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Reason_parser_def.labelled_parameter Location.loc list * bool) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _endpos = _endpos__6_ in
                let _startpos = _startpos__1_ in
                
# 2997 "src/reason-parser/reason_parser.mly"
    ( let (ps, uncurried) = _2 in
    let exp = List.fold_right ~f:mkexp_fun ps
        ~init:(ghexp_constraint (mklocation _startpos__4_ _endpos) _6 (Some _4, None))  in
    if uncurried then
      let loc = mklocation _startpos _endpos in
      {exp with pexp_attributes = (uncurry_payload loc)::exp.pexp_attributes}
    else exp
    )
# 14099 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 14110 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 14116 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 14122 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _2_inlined1 : (Ppxlib.case list) = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Ppxlib.case) = Obj.magic _1_inlined1 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_inlined1_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _3 =
                  let (_1, _2) = (_1_inlined1, _2_inlined1) in
                  let _1 = 
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 14175 "src/reason-parser/reason_parser.ml"
                   in
                  
# 3594 "src/reason-parser/reason_parser.mly"
                                                            ( _1 )
# 14180 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__3_ = _endpos__2_inlined1_ in
                let _endpos = _endpos__3_ in
                let _startpos = _startpos__1_ in
                
# 3010 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc (mkexp (Pexp_function ([], None, (Pfunction_cases (_3, loc, []))))) )
# 14190 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__2_inlined1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 14201 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 14207 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 14213 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : unit = Obj.magic _6 in
        let _2_inlined1 : (Ppxlib.case list) = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Ppxlib.case) = Obj.magic _1_inlined1 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _5 =
                  let (_1, _2) = (_1_inlined1, _2_inlined1) in
                  let _1 = 
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 14287 "src/reason-parser/reason_parser.ml"
                   in
                  
# 3594 "src/reason-parser/reason_parser.mly"
                                                            ( _1 )
# 14292 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos = _endpos__6_ in
                let _startpos = _startpos__1_ in
                
# 3014 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc (mkexp (Pexp_match (_3, _5))) )
# 14301 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 14312 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 14318 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 14324 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : unit = Obj.magic _6 in
        let _2_inlined1 : (Ppxlib.case list) = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Ppxlib.case) = Obj.magic _1_inlined1 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _5 =
                  let (_1, _2) = (_1_inlined1, _2_inlined1) in
                  let _1 = 
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 14398 "src/reason-parser/reason_parser.ml"
                   in
                  
# 3594 "src/reason-parser/reason_parser.mly"
                                                            ( _1 )
# 14403 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos = _endpos__6_ in
                let _startpos = _startpos__1_ in
                
# 3018 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc (mkexp (Pexp_try (_3, _5))) )
# 14412 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 14423 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 14429 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 14435 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _5 = 
# 123 "<standard.mly>"
    ( None )
# 14486 "src/reason-parser/reason_parser.ml"
                 in
                let _endpos__5_ = _endpos__1_inlined1_ in
                let _4 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 14496 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos = _endpos__5_ in
                let _startpos = _startpos__1_ in
                
# 3022 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc (mkexp (Pexp_ifthenelse(_3, _4, _5))) )
# 14505 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 14516 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 14522 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 14528 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.expression) = Obj.magic x in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _5 =
                  let x = 
# 188 "<standard.mly>"
    ( x )
# 14594 "src/reason-parser/reason_parser.ml"
                   in
                  
# 126 "<standard.mly>"
    ( Some x )
# 14599 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__5_ = _endpos_x_ in
                let _4 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 14610 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos = _endpos__5_ in
                let _startpos = _startpos__1_ in
                
# 3022 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc (mkexp (Pexp_ifthenelse(_3, _4, _5))) )
# 14619 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_x_ = _startpos__1_ in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 14630 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 14636 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 14642 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _4 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 14697 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__4_ = _endpos__1_inlined1_ in
                let _endpos = _endpos__4_ in
                let _startpos = _startpos__1_ in
                
# 3025 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc (mkexp (Pexp_while(_3, _4))) )
# 14707 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 14718 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 14724 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 14730 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _9;
            MenhirLib.EngineTypes.startp = _startpos__9_;
            MenhirLib.EngineTypes.endp = _endpos__9_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _8;
              MenhirLib.EngineTypes.startp = _startpos__8_;
              MenhirLib.EngineTypes.endp = _endpos__8_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _7;
                MenhirLib.EngineTypes.startp = _startpos__7_;
                MenhirLib.EngineTypes.endp = _endpos__7_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _6;
                  MenhirLib.EngineTypes.startp = _startpos__6_;
                  MenhirLib.EngineTypes.endp = _endpos__6_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _5;
                    MenhirLib.EngineTypes.startp = _startpos__5_;
                    MenhirLib.EngineTypes.endp = _endpos__5_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _4;
                      MenhirLib.EngineTypes.startp = _startpos__4_;
                      MenhirLib.EngineTypes.endp = _endpos__4_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = _3;
                        MenhirLib.EngineTypes.startp = _startpos__3_;
                        MenhirLib.EngineTypes.endp = _endpos__3_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _;
                          MenhirLib.EngineTypes.semv = _2;
                          MenhirLib.EngineTypes.startp = _startpos__2_;
                          MenhirLib.EngineTypes.endp = _endpos__2_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = _1;
                            MenhirLib.EngineTypes.startp = _startpos__1_;
                            MenhirLib.EngineTypes.endp = _endpos__1_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _9 : unit = Obj.magic _9 in
        let _8 : (Ppxlib.expression) = Obj.magic _8 in
        let _7 : (Ppxlib.direction_flag) = Obj.magic _7 in
        let _6 : (Ppxlib.expression) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.pattern) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _10 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 14827 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__10_ = _endpos__1_inlined1_ in
                let _endpos = _endpos__10_ in
                let _startpos = _startpos__1_ in
                
# 3029 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc (mkexp (Pexp_for(_4, _6, _8, _7, _10))) )
# 14837 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 14848 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 14854 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 14860 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _8;
          MenhirLib.EngineTypes.startp = _startpos__8_;
          MenhirLib.EngineTypes.endp = _endpos__8_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _7;
            MenhirLib.EngineTypes.startp = _startpos__7_;
            MenhirLib.EngineTypes.endp = _endpos__7_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _5;
                MenhirLib.EngineTypes.startp = _startpos__5_;
                MenhirLib.EngineTypes.endp = _endpos__5_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _4;
                  MenhirLib.EngineTypes.startp = _startpos__4_;
                  MenhirLib.EngineTypes.endp = _endpos__4_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _3;
                    MenhirLib.EngineTypes.startp = _startpos__3_;
                    MenhirLib.EngineTypes.endp = _endpos__3_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _8 : unit = Obj.magic _8 in
        let _7 : (Ppxlib.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__8_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _endpos = _endpos__8_ in
                let _symbolstartpos = _startpos__1_ in
                
# 3032 "src/reason-parser/reason_parser.mly"
    ( let loc_colon = mklocation _startpos__2_ _endpos__2_ in
      let loc = mklocation _symbolstartpos _endpos in
      mkexp_cons loc_colon (mkexp ~ghost:true ~loc (Pexp_tuple[_5;_7])) loc
    )
# 14944 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__8_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 14955 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 14961 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 14967 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4912 "src/reason-parser/reason_parser.mly"
                      ( ">" )
# 15013 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 15021 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 15031 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 15042 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 15048 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 15054 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : 
# 1175 "src/reason-parser/reason_parser.mly"
       (string)
# 15089 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let x = 
# 4913 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 15104 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 15112 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 15122 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 15133 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 15139 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 15145 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : 
# 1176 "src/reason-parser/reason_parser.mly"
       (string)
# 15180 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let x = 
# 4914 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 15195 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 15203 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 15213 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 15224 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 15230 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 15236 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : 
# 1177 "src/reason-parser/reason_parser.mly"
       (string)
# 15271 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let x = 
# 4915 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 15286 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 15294 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 15304 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 15315 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 15321 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 15327 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : 
# 1178 "src/reason-parser/reason_parser.mly"
       (string)
# 15362 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let x = 
# 4916 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 15377 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 15385 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 15395 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 15406 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 15412 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 15418 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4918 "src/reason-parser/reason_parser.mly"
                      ( "/>" )
# 15464 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 15472 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 15482 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 15493 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 15499 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 15505 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : 
# 1181 "src/reason-parser/reason_parser.mly"
       (string)
# 15540 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let x = 
# 4919 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 15555 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 15563 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 15573 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 15584 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 15590 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 15596 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4920 "src/reason-parser/reason_parser.mly"
                  ( "+"  )
# 15642 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 15650 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 15660 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 15671 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 15677 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 15683 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4921 "src/reason-parser/reason_parser.mly"
                  ( "+." )
# 15729 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 15737 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 15747 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 15758 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 15764 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 15770 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4922 "src/reason-parser/reason_parser.mly"
                  ( "-"  )
# 15816 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 15824 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 15834 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 15845 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 15851 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 15857 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4923 "src/reason-parser/reason_parser.mly"
                  ( "-." )
# 15903 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 15911 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 15921 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 15932 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 15938 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 15944 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4924 "src/reason-parser/reason_parser.mly"
                      ( "*" )
# 15990 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 15998 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 16008 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 16019 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 16025 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 16031 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4925 "src/reason-parser/reason_parser.mly"
                      ( "<" )
# 16077 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 16085 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 16095 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 16106 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 16112 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 16118 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4926 "src/reason-parser/reason_parser.mly"
                      ( "or" )
# 16164 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 16172 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 16182 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 16193 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 16199 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 16205 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4927 "src/reason-parser/reason_parser.mly"
                      ( "||" )
# 16251 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 16259 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 16269 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 16280 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 16286 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 16292 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4928 "src/reason-parser/reason_parser.mly"
                      ( "&" )
# 16338 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 16346 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 16356 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 16367 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 16373 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 16379 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4929 "src/reason-parser/reason_parser.mly"
                      ( "&&" )
# 16425 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 16433 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 16443 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 16454 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 16460 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 16466 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4930 "src/reason-parser/reason_parser.mly"
                      ( ":=" )
# 16512 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 16520 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 16530 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 16541 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 16547 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 16553 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4931 "src/reason-parser/reason_parser.mly"
                      ( "+=" )
# 16599 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 16607 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 16617 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 16628 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 16634 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 16640 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4932 "src/reason-parser/reason_parser.mly"
                      ( "%" )
# 16686 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 16694 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 16704 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 16715 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 16721 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 16727 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4933 "src/reason-parser/reason_parser.mly"
                     ( ">..." )
# 16773 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 16781 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 16791 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 16802 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 16808 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 16814 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4940 "src/reason-parser/reason_parser.mly"
                      ( "<..>" )
# 16860 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 16868 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 16878 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 16889 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 16895 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 16901 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let _startpos__1_ = _startpos__1_inlined1_ in
                  let x = 
# 4941 "src/reason-parser/reason_parser.mly"
                      ( ">>" )
# 16954 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 16962 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 16972 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 16983 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 16989 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 16995 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let x = 
# 5140 "src/reason-parser/reason_parser.mly"
                  ( "-"  )
# 17033 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 17041 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3043 "src/reason-parser/reason_parser.mly"
    ( mkuminus _1 _2 )
# 17047 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 17058 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 17064 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 17070 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let x = 
# 5141 "src/reason-parser/reason_parser.mly"
                  ( "-." )
# 17108 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 17116 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3043 "src/reason-parser/reason_parser.mly"
    ( mkuminus _1 _2 )
# 17122 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 17133 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 17139 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 17145 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let x = 
# 5145 "src/reason-parser/reason_parser.mly"
                  ( "+"  )
# 17183 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 17191 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3045 "src/reason-parser/reason_parser.mly"
    ( mkuplus _1 _2 )
# 17197 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 17208 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 17214 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 17220 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let x = 
# 5146 "src/reason-parser/reason_parser.mly"
                  ( "+." )
# 17258 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 17266 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3045 "src/reason-parser/reason_parser.mly"
    ( mkuplus _1 _2 )
# 17272 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 17283 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 17289 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 17295 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let x = 
# 3046 "src/reason-parser/reason_parser.mly"
                ("!")
# 17333 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 17341 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3047 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_apply(mkoperator _1, [Nolabel,_2])) )
# 17347 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 17358 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 17364 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 17370 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _3 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 17431 "src/reason-parser/reason_parser.ml"
                  
                in
                let _1 =
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 17440 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3049 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_setfield(_1, _3, _5)) )
# 17446 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 17457 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 17463 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 17469 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4;
              MenhirLib.EngineTypes.startp = _startpos__4_;
              MenhirLib.EngineTypes.endp = _endpos__4_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.expression) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 17537 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos = _endpos__6_ in
                let _symbolstartpos = _startpos__1_ in
                
# 3051 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let exp = Ppxlib.Pexp_ident(array_function ~loc "Array" "set") in
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc exp,
                       [Nolabel,_1; Nolabel,_3; Nolabel,_6]))
    )
# 17549 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 17560 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 17566 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 17572 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : (Ppxlib.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 17647 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos = _endpos__7_ in
                let _symbolstartpos = _startpos__1_ in
                
# 3057 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let exp = Ppxlib.Pexp_ident(array_function ~loc "String" "set") in
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc exp,
                       [Nolabel,_1; Nolabel,_4; Nolabel,_7]))
    )
# 17659 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__7_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 17670 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 17676 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 17682 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__4_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__4_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined2;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1_inlined1;
                      MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _5 : unit = Obj.magic _5 in
        let _4_inlined1 : (unit option) = Obj.magic _4_inlined1 in
        let _1_inlined2 : (Ppxlib.expression list) = Obj.magic _1_inlined2 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let _1_inlined1 = _1_inlined2 in
                  let _3 =
                    let _1 = _1_inlined1 in
                    
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 17765 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3149 "src/reason-parser/reason_parser.mly"
                                                                 ( _3 )
# 17771 "src/reason-parser/reason_parser.ml"
                  
                in
                let _1 =
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 17780 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos = _endpos__4_ in
                let _symbolstartpos = _startpos__1_ in
                
# 3063 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      bigarray_set ~loc _1 _2 _4
    )
# 17790 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 17801 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 17807 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 17813 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 17849 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 17862 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 17870 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3067 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_setinstvar(_1, _3)) )
# 17876 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 17887 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 17893 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 17899 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 17940 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3069 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_assert _2) )
# 17946 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 17957 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 17963 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 17969 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 18010 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3071 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_lazy _2) )
# 18016 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 18027 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 18033 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 18039 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let _1 =
              let x = 
# 3097 "src/reason-parser/reason_parser.mly"
    ( (* Should use ghost expressions, but not sure how that would work with source maps *)
      (* So ? will become true and : becomes false for now*)
      let loc_question = mklocation _startpos__2_ _endpos__2_ in
      let loc_colon = mklocation _startpos__4_ _endpos__4_ in
      let fauxTruePat =
        Ast_helper.Pat.mk ~loc:loc_question (Ppat_construct({txt = Lident "true"; loc = loc_question}, None)) in
      let fauxFalsePat =
        Ast_helper.Pat.mk ~loc:loc_colon (Ppat_construct({txt = Lident "false"; loc = loc_colon}, None)) in
      let fauxMatchCaseTrue = Ast_helper.Exp.case fauxTruePat _3 in
      let fauxMatchCaseFalse = Ast_helper.Exp.case fauxFalsePat _5 in
      mkexp (Pexp_match (_1, [fauxMatchCaseTrue; fauxMatchCaseFalse]))
    )
# 18107 "src/reason-parser/reason_parser.ml"
               in
              let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 18117 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 18123 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3118 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 18129 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 3120 "src/reason-parser/reason_parser.mly"
                     ( {_2 with pexp_attributes = _1 :: _2.pexp_attributes} )
# 18164 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 18174 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3123 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 18180 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : ((Location.t option * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 18214 "src/reason-parser/reason_parser.ml"
           in
          (
# 3647 "src/reason-parser/reason_parser.mly"
  ( match List.rev _1 with
    (* Check if the last expr has been spread with `...` *)
    | ((dotdotdot, e) as hd)::es ->
      let (es, ext) = match dotdotdot with
      | Some _ -> (es, Some e)
      | None -> (hd::es, None)
      in
      let msg = "Lists can only have one `...` spread, at the end.
Explanation: lists are singly-linked list, where a node contains a value and points to the next node. `[a, ...bc]` efficiently creates a new item and links `bc` as its next nodes. `[...bc, a]` would be expensive, as it'd need to traverse `bc` and prepend each item to `a` one by one. We therefore disallow such syntax sugar.
Solution: directly use `concat` or other List helpers." in
      let exprList = filter_raise_spread_syntax msg es in
      (List.rev exprList, ext)
    | [] -> [], None
  )
# 18232 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression list * Ppxlib.expression option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : (Ppxlib.expression list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 18266 "src/reason-parser/reason_parser.ml"
           in
          (
# 3641 "src/reason-parser/reason_parser.mly"
  ( _1 )
# 18271 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.expression list) = 
# 3152 "src/reason-parser/reason_parser.mly"
              ( _1 )
# 18297 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.expression list) = 
# 3153 "src/reason-parser/reason_parser.mly"
                   ( [_1] )
# 18322 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.expression) = 
# 3669 "src/reason-parser/reason_parser.mly"
         ( _1 )
# 18347 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.core_type option * Ppxlib.core_type option) = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 3671 "src/reason-parser/reason_parser.mly"
    ( ghexp_constraint (mklocation _symbolstartpos _endpos) _1 _2 )
# 18382 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.payload) = Obj.magic _3 in
        let _2 : (string Location.loc) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v : (Astlib.Ast_502.Parsetree.extension) = 
# 5239 "src/reason-parser/reason_parser.mly"
                                           ( (_2, _3) )
# 18429 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1247 "src/reason-parser/reason_parser.mly"
  (string * Location.t * string * string option)
# 18450 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 5241 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mk_quotedext ~loc _1 )
# 18462 "src/reason-parser/reason_parser.ml"
           : (Astlib.Ast_502.Parsetree.extension))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _2 in
        let _1 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 18491 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 4952 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 18501 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 18509 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4437 "src/reason-parser/reason_parser.mly"
  ( let args, res = _2 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Te.decl _1 ~args ?res ~loc
  )
# 18520 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _2 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _endpos__2_ = _endpos__2_inlined1_ in
            let x = 
# 4953 "src/reason-parser/reason_parser.mly"
                      ( "[]" )
# 18563 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 18571 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4437 "src/reason-parser/reason_parser.mly"
  ( let args, res = _2 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Te.decl _1 ~args ?res ~loc
  )
# 18582 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _2 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _endpos__2_ = _endpos__2_inlined1_ in
            let x = 
# 4954 "src/reason-parser/reason_parser.mly"
                      ( "()" )
# 18625 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 18633 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4437 "src/reason-parser/reason_parser.mly"
  ( let args, res = _2 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Te.decl _1 ~args ?res ~loc
  )
# 18644 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 4955 "src/reason-parser/reason_parser.mly"
                      ( "::" )
# 18679 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 18687 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4437 "src/reason-parser/reason_parser.mly"
  ( let args, res = _2 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Te.decl _1 ~args ?res ~loc
  )
# 18698 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 4957 "src/reason-parser/reason_parser.mly"
                      ( "false" )
# 18733 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 18741 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4437 "src/reason-parser/reason_parser.mly"
  ( let args, res = _2 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Te.decl _1 ~args ?res ~loc
  )
# 18752 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 4958 "src/reason-parser/reason_parser.mly"
                      ( "true" )
# 18787 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 18795 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4437 "src/reason-parser/reason_parser.mly"
  ( let args, res = _2 in
    let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Te.decl _1 ~args ?res ~loc
  )
# 18806 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 18842 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 18854 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__3_ = _endpos_x_ in
          let _1 =
            let x = 
# 4952 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 18862 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 18870 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4445 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Te.rebind _1 _3 ~loc
  )
# 18880 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 18931 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__3_ = _endpos_x_ in
          let _1 =
            let _endpos__2_ = _endpos__2_inlined1_ in
            let x = 
# 4953 "src/reason-parser/reason_parser.mly"
                      ( "[]" )
# 18940 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 18948 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4445 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Te.rebind _1 _3 ~loc
  )
# 18958 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 19009 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__3_ = _endpos_x_ in
          let _1 =
            let _endpos__2_ = _endpos__2_inlined1_ in
            let x = 
# 4954 "src/reason-parser/reason_parser.mly"
                      ( "()" )
# 19018 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 19026 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4445 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Te.rebind _1 _3 ~loc
  )
# 19036 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 19080 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__3_ = _endpos_x_ in
          let _1 =
            let x = 
# 4955 "src/reason-parser/reason_parser.mly"
                      ( "::" )
# 19088 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 19096 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4445 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Te.rebind _1 _3 ~loc
  )
# 19106 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 19150 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__3_ = _endpos_x_ in
          let _1 =
            let x = 
# 4957 "src/reason-parser/reason_parser.mly"
                      ( "false" )
# 19158 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 19166 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4445 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Te.rebind _1 _3 ~loc
  )
# 19176 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 19220 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__3_ = _endpos_x_ in
          let _1 =
            let x = 
# 4958 "src/reason-parser/reason_parser.mly"
                      ( "true" )
# 19228 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 19236 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4445 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _symbolstartpos _endpos in
    Ast_helper.Te.rebind _1 _3 ~loc
  )
# 19246 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 19282 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 19294 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3776 "src/reason-parser/reason_parser.mly"
   ( (_1, _3) )
# 19300 "src/reason-parser/reason_parser.ml"
           : (string Location.loc * Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 19322 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 3778 "src/reason-parser/reason_parser.mly"
   ( let loc = mklocation _symbolstartpos _endpos in
     let lident_loc = mkloc _1 loc in
     let lident_lident_loc = mkloc (Ppxlib.Longident.Lident _1) loc in
     (lident_loc, mkexp (Pexp_ident lident_lident_loc))
   )
# 19337 "src/reason-parser/reason_parser.ml"
           : (string Location.loc * Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (Ppxlib.core_type option) = Obj.magic _2 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _endpos__2_ = _endpos__2_inlined1_ in
            let _endpos = _endpos__2_ in
            let _startpos = _startpos__1_ in
            
# 2778 "src/reason-parser/reason_parser.mly"
                  (
    let loc = mklocation _startpos _endpos in
    ([mkloc (Reason_parser_def.Term (Nolabel, None, mkpat_constructor_unit loc loc)) loc], false)
  )
# 19392 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _startpos = _startpos__1_ in
          (
# 3625 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos _endpos in
    let (pl, uncurried) = _1 in
    let exp = List.fold_right ~f:mkexp_fun pl
        ~init:(match _2 with
        | None -> _3
        | Some ct -> Ast_helper.Exp.constraint_ ~loc _3 ct)
    in
    if uncurried then
      {exp with pexp_attributes = (uncurry_payload loc)::exp.pexp_attributes}
    else exp
  )
# 19410 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (Ppxlib.core_type option) = Obj.magic _2 in
        let _3_inlined1 : unit = Obj.magic _3_inlined1 in
        let _2_inlined1 : (unit option) = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Reason_parser_def.labelled_parameter Location.loc list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let _1 =
                let x =
                  let _1 = _1_inlined1 in
                  let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 19477 "src/reason-parser/reason_parser.ml"
                   in
                  
# 2775 "src/reason-parser/reason_parser.mly"
                                                          ( _1 )
# 19482 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 205 "<standard.mly>"
    ( x )
# 19488 "src/reason-parser/reason_parser.ml"
                
              in
              
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 19494 "src/reason-parser/reason_parser.ml"
              
            in
            
# 2782 "src/reason-parser/reason_parser.mly"
                                               (
    (_1, false)
  )
# 19502 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _startpos = _startpos__1_ in
          (
# 3625 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos _endpos in
    let (pl, uncurried) = _1 in
    let exp = List.fold_right ~f:mkexp_fun pl
        ~init:(match _2 with
        | None -> _3
        | Some ct -> Ast_helper.Exp.constraint_ ~loc _3 ct)
    in
    if uncurried then
      {exp with pexp_attributes = (uncurry_payload loc)::exp.pexp_attributes}
    else exp
  )
# 19520 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (Ppxlib.core_type option) = Obj.magic _2 in
        let _3_inlined1 : unit = Obj.magic _3_inlined1 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _endpos__3_ = _endpos__3_inlined1_ in
            let _endpos = _endpos__3_ in
            let _startpos = _startpos__1_ in
            
# 2785 "src/reason-parser/reason_parser.mly"
                      (
      let loc = mklocation _startpos _endpos in
      ([mkloc (Reason_parser_def.Term (Nolabel, None, mkpat_constructor_unit loc loc)) loc], true)
  )
# 19582 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _startpos = _startpos__1_ in
          (
# 3625 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos _endpos in
    let (pl, uncurried) = _1 in
    let exp = List.fold_right ~f:mkexp_fun pl
        ~init:(match _2 with
        | None -> _3
        | Some ct -> Ast_helper.Exp.constraint_ ~loc _3 ct)
    in
    if uncurried then
      {exp with pexp_attributes = (uncurry_payload loc)::exp.pexp_attributes}
    else exp
  )
# 19600 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4;
              MenhirLib.EngineTypes.startp = _startpos__4_;
              MenhirLib.EngineTypes.endp = _endpos__4_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined2;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined2_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (Ppxlib.core_type option) = Obj.magic _2 in
        let _4 : unit = Obj.magic _4 in
        let _2_inlined2 : (unit option) = Obj.magic _2_inlined2 in
        let _1_inlined1 : (Reason_parser_def.labelled_parameter Location.loc list) = Obj.magic _1_inlined1 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _3 =
              let _1 = _1_inlined1 in
              let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 19672 "src/reason-parser/reason_parser.ml"
               in
              
# 2775 "src/reason-parser/reason_parser.mly"
                                                          ( _1 )
# 19677 "src/reason-parser/reason_parser.ml"
              
            in
            
# 2789 "src/reason-parser/reason_parser.mly"
                                                  (
      (_3, true)
  )
# 19685 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _startpos = _startpos__1_ in
          (
# 3625 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos _endpos in
    let (pl, uncurried) = _1 in
    let exp = List.fold_right ~f:mkexp_fun pl
        ~init:(match _2 with
        | None -> _3
        | Some ct -> Ast_helper.Exp.constraint_ ~loc _3 ct)
    in
    if uncurried then
      {exp with pexp_attributes = (uncurry_payload loc)::exp.pexp_attributes}
    else exp
  )
# 19703 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (Ppxlib.core_type option) = Obj.magic _2 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _endpos__2_ = _endpos__2_inlined1_ in
            let _endpos = _endpos__2_ in
            let _startpos = _startpos__1_ in
            
# 2778 "src/reason-parser/reason_parser.mly"
                  (
    let loc = mklocation _startpos _endpos in
    ([mkloc (Reason_parser_def.Term (Nolabel, None, mkpat_constructor_unit loc loc)) loc], false)
  )
# 19758 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _startpos = _startpos__1_ in
          (
# 3625 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos _endpos in
    let (pl, uncurried) = _1 in
    let exp = List.fold_right ~f:mkexp_fun pl
        ~init:(match _2 with
        | None -> _3
        | Some ct -> Ast_helper.Exp.constraint_ ~loc _3 ct)
    in
    if uncurried then
      {exp with pexp_attributes = (uncurry_payload loc)::exp.pexp_attributes}
    else exp
  )
# 19776 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (Ppxlib.core_type option) = Obj.magic _2 in
        let _3_inlined1 : unit = Obj.magic _3_inlined1 in
        let _2_inlined1 : (unit option) = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Reason_parser_def.labelled_parameter Location.loc list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let _1 =
                let x =
                  let _1 = _1_inlined1 in
                  let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 19843 "src/reason-parser/reason_parser.ml"
                   in
                  
# 2775 "src/reason-parser/reason_parser.mly"
                                                          ( _1 )
# 19848 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 205 "<standard.mly>"
    ( x )
# 19854 "src/reason-parser/reason_parser.ml"
                
              in
              
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 19860 "src/reason-parser/reason_parser.ml"
              
            in
            
# 2782 "src/reason-parser/reason_parser.mly"
                                               (
    (_1, false)
  )
# 19868 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _startpos = _startpos__1_ in
          (
# 3625 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos _endpos in
    let (pl, uncurried) = _1 in
    let exp = List.fold_right ~f:mkexp_fun pl
        ~init:(match _2 with
        | None -> _3
        | Some ct -> Ast_helper.Exp.constraint_ ~loc _3 ct)
    in
    if uncurried then
      {exp with pexp_attributes = (uncurry_payload loc)::exp.pexp_attributes}
    else exp
  )
# 19886 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (Ppxlib.core_type option) = Obj.magic _2 in
        let _3_inlined1 : unit = Obj.magic _3_inlined1 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _endpos__3_ = _endpos__3_inlined1_ in
            let _endpos = _endpos__3_ in
            let _startpos = _startpos__1_ in
            
# 2785 "src/reason-parser/reason_parser.mly"
                      (
      let loc = mklocation _startpos _endpos in
      ([mkloc (Reason_parser_def.Term (Nolabel, None, mkpat_constructor_unit loc loc)) loc], true)
  )
# 19948 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _startpos = _startpos__1_ in
          (
# 3625 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos _endpos in
    let (pl, uncurried) = _1 in
    let exp = List.fold_right ~f:mkexp_fun pl
        ~init:(match _2 with
        | None -> _3
        | Some ct -> Ast_helper.Exp.constraint_ ~loc _3 ct)
    in
    if uncurried then
      {exp with pexp_attributes = (uncurry_payload loc)::exp.pexp_attributes}
    else exp
  )
# 19966 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4;
              MenhirLib.EngineTypes.startp = _startpos__4_;
              MenhirLib.EngineTypes.endp = _endpos__4_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined2;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined2_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (Ppxlib.core_type option) = Obj.magic _2 in
        let _4 : unit = Obj.magic _4 in
        let _2_inlined2 : (unit option) = Obj.magic _2_inlined2 in
        let _1_inlined1 : (Reason_parser_def.labelled_parameter Location.loc list) = Obj.magic _1_inlined1 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _3 =
              let _1 = _1_inlined1 in
              let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 20038 "src/reason-parser/reason_parser.ml"
               in
              
# 2775 "src/reason-parser/reason_parser.mly"
                                                          ( _1 )
# 20043 "src/reason-parser/reason_parser.ml"
              
            in
            
# 2789 "src/reason-parser/reason_parser.mly"
                                                  (
      (_3, true)
  )
# 20051 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _startpos = _startpos__1_ in
          (
# 3625 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos _endpos in
    let (pl, uncurried) = _1 in
    let exp = List.fold_right ~f:mkexp_fun pl
        ~init:(match _2 with
        | None -> _3
        | Some ct -> Ast_helper.Exp.constraint_ ~loc _3 ct)
    in
    if uncurried then
      {exp with pexp_attributes = (uncurry_payload loc)::exp.pexp_attributes}
    else exp
  )
# 20069 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _endpos = _endpos__2_ in
          let _startpos = _startpos__1_ in
          (
# 1526 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      [mkloc Ppxlib.Unit loc]
    )
# 20107 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.functor_parameter Location.loc list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.functor_parameter Location.loc) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.functor_parameter Location.loc list) = 
# 1537 "src/reason-parser/reason_parser.mly"
                                   ([_2])
# 20147 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.functor_parameter Location.loc) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v : (Ppxlib.functor_parameter Location.loc list) = 
# 1538 "src/reason-parser/reason_parser.mly"
                                         ([_2])
# 20193 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined2;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined2 : (Ppxlib.functor_parameter Location.loc list) = Obj.magic _1_inlined2 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Ppxlib.functor_parameter Location.loc) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let (_1, _1_inlined1) = (_1_inlined1, _1_inlined2) in
                let _1 =
                  let _3 =
                    let _1 = _1_inlined1 in
                    
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 20261 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 5403 "src/reason-parser/reason_parser.mly"
                                         ( _1 :: _3 )
# 20267 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 1521 "src/reason-parser/reason_parser.mly"
                                                         (_1)
# 20273 "src/reason-parser/reason_parser.ml"
                
              in
              
# 205 "<standard.mly>"
    ( x )
# 20279 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 20285 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1539 "src/reason-parser/reason_parser.mly"
                                                            ( _1 )
# 20291 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.functor_parameter Location.loc list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.core_type option) = Obj.magic _2 in
        let _1 : (Ppxlib.constructor_arguments option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.constructor_arguments * Ppxlib.core_type option) = 
# 4321 "src/reason-parser/reason_parser.mly"
  ( ((match _1 with None -> Ppxlib.Pcstr_tuple [] | Some x -> x), _2) )
# 20324 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 2876 "src/reason-parser/reason_parser.mly"
                      ( ">..." )
# 20349 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (string) = 
# 2876 "src/reason-parser/reason_parser.mly"
                      ( ">..." )
# 20381 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 20402 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 4900 "src/reason-parser/reason_parser.mly"
                       ( _1 )
# 20410 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 20431 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 4900 "src/reason-parser/reason_parser.mly"
                       ( _1 )
# 20439 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.structure) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.Parsetree.structure) = 
# 1458 "src/reason-parser/reason_parser.mly"
  ( reason_mapper Reason_syntax_util.apply_mapper_to_structure _1 )
# 20471 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.signature) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.Parsetree.signature) = 
# 1463 "src/reason-parser/reason_parser.mly"
  ( reason_mapper Reason_syntax_util.apply_mapper_to_signature _1 )
# 20503 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.payload) = Obj.magic _3 in
        let _2 : (string Location.loc) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v : (Ppxlib.extension) = 
# 5246 "src/reason-parser/reason_parser.mly"
                                                  ( (_2, _3) )
# 20549 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1249 "src/reason-parser/reason_parser.mly"
  (string * Location.t * string * string option)
# 20570 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 5248 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mk_quotedext ~loc _1 )
# 20582 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (string Location.loc) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = 
# 5235 "src/reason-parser/reason_parser.mly"
                  ( ([], _2) )
# 20615 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 2880 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let body = mktailexp_extension loc _2 None in
      makeFrag loc body
    )
# 20660 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : (((Ppxlib.arg_label * Ppxlib.expression) list ->
   Location.t -> Ppxlib.expression) *
  Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 2892 "src/reason-parser/reason_parser.mly"
    ( let (component, _) = _1 in
      let loc = mklocation _symbolstartpos _endpos in
      component [
        (Labelled "children", mktailexp_extension loc [] None);
        (Nolabel, mkexp_constructor_unit loc loc)
      ] loc
    )
# 20704 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : 
# 1236 "src/reason-parser/reason_parser.mly"
       (string)
# 20744 "src/reason-parser/reason_parser.ml"
         = Obj.magic _4 in
        let _3 : (Ppxlib.expression list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (((Ppxlib.arg_label * Ppxlib.expression) list ->
   Location.t -> Ppxlib.expression) *
  Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _endpos = _endpos__4_ in
          (
# 2900 "src/reason-parser/reason_parser.mly"
    ( let (component, start) = _1 in
      let loc = mklocation _startpos__4_ _endpos in
      (* TODO: Make this tag check simply a warning *)
      let endName = Reason_syntax_util.parse_lid _4 in
      let _ = ensureTagsAreEqual start endName loc in
      let siblings = _3 in
      component [
        (Labelled "children", mktailexp_extension loc siblings None);
        (Nolabel, mkexp_constructor_unit loc loc)
      ] loc
    )
# 20769 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : 
# 1236 "src/reason-parser/reason_parser.mly"
       (string)
# 20809 "src/reason-parser/reason_parser.ml"
         = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (string) = Obj.magic _2 in
        let _1 : (((Ppxlib.arg_label * Ppxlib.expression) list ->
   Location.t -> Ppxlib.expression) *
  Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _endpos = _endpos__4_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 2913 "src/reason-parser/reason_parser.mly"
    ( let (component, start) = _1 in
      let loc = mklocation _symbolstartpos _endpos in
      (* TODO: Make this tag check simply a warning *)
      let endName = Reason_syntax_util.parse_lid _4 in
      let _ = ensureTagsAreEqual start endName loc in
      let child = _3 in
      component [
        (Labelled "children", child);
        (Nolabel, mkexp_constructor_unit loc loc)
      ] loc
    )
# 20835 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : ((Ppxlib.arg_label * Ppxlib.expression) list) = 
# 2804 "src/reason-parser/reason_parser.mly"
              ( [] )
# 20854 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : ((Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _5 in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 20903 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let _endpos = _endpos__1_ in
            let _startpos = _startpos__1_ in
            
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 20916 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2806 "src/reason-parser/reason_parser.mly"
    ( (* a=?b *)
      [(Optional _1, _4)] @ _5
    )
# 20924 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : ((Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _3 in
        let _2 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 20959 "src/reason-parser/reason_parser.ml"
         = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : ((Ppxlib.arg_label * Ppxlib.expression) list) = 
# 2810 "src/reason-parser/reason_parser.mly"
    ( (* <Foo ?bar /> punning with explicitly passed optional *)
      let loc_lident = mklocation _startpos__2_ _endpos__2_ in
      [(Optional _2, mkexp (Pexp_ident {txt = Lident _2; loc = loc_lident}) ~loc:loc_lident)] @ _3
    )
# 20971 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : ((Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _4 in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 21013 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _3 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let _endpos = _endpos__1_ in
            let _startpos = _startpos__1_ in
            
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 21026 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2815 "src/reason-parser/reason_parser.mly"
    ( (* a=b *)
      [(Labelled _1, _3)] @ _4
    )
# 21034 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : ((Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _2 in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 21063 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : ((Ppxlib.arg_label * Ppxlib.expression) list) = 
# 2819 "src/reason-parser/reason_parser.mly"
    ( (* a (punning) *)
      let loc_lident = mklocation _startpos__1_ _endpos__1_ in
      [(Labelled _1, mkexp (Pexp_ident {txt = Lident _1; loc = loc_lident}) ~loc:loc_lident)] @ _2
    )
# 21074 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : 
# 1178 "src/reason-parser/reason_parser.mly"
       (string)
# 21095 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 21107 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2828 "src/reason-parser/reason_parser.mly"
  (
    begin match _1.txt with
      | "/>>" ->
         syntax_error _1.loc
          {|JSX in a JSX-argument needs to be wrapped in braces.
      If you wrote:
        <Description term=<Text text="Age" />> child </Description>
      Try wrapping <Text /> in braces.
        <Description term={<Text text="Age" />}> child </Description>|}
      | "/>/>" ->
         syntax_error _1.loc
           {|JSX in a JSX-argument needs to be wrapped in braces.
      If you wrote:
        <Description term=<Text text="Age" />/>
      Try wrapping <Text /> in braces.
        <Description term={<Text text="Age" />} />|}
      | _ -> syntax_error _1.loc "Syntax error"
    end;
    []
  )
# 21132 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : ((Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _2 in
        let x : 
# 1198 "src/reason-parser/reason_parser.mly"
       (string)
# 21161 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 21173 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2852 "src/reason-parser/reason_parser.mly"
     ( let name = Reason_syntax_util.parse_lid _1.txt in
      (jsx_component {_1 with txt = name} _2, name)
    )
# 21181 "src/reason-parser/reason_parser.ml"
           : (((Ppxlib.arg_label * Ppxlib.expression) list ->
   Location.t -> Ppxlib.expression) *
  Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : ((Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _3 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 21218 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 21231 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2856 "src/reason-parser/reason_parser.mly"
    ( let name = Reason_syntax_util.parse_lid _2.txt in
      (jsx_component {_2 with txt = name} _3, name)
    )
# 21239 "src/reason-parser/reason_parser.ml"
           : (((Ppxlib.arg_label * Ppxlib.expression) list ->
   Location.t -> Ppxlib.expression) *
  Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : ((Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _3 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 21285 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2860 "src/reason-parser/reason_parser.mly"
    ( jsx_component _2 _3, _2.txt )
# 21291 "src/reason-parser/reason_parser.ml"
           : (((Ppxlib.arg_label * Ppxlib.expression) list ->
   Location.t -> Ppxlib.expression) *
  Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : ((Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 21330 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2862 "src/reason-parser/reason_parser.mly"
    ( jsx_component _1 _2, _1.txt )
# 21336 "src/reason-parser/reason_parser.ml"
           : (((Ppxlib.arg_label * Ppxlib.expression) list ->
   Location.t -> Ppxlib.expression) *
  Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : ((Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 21375 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2867 "src/reason-parser/reason_parser.mly"
    ( (jsx_component _1 _2, _1.txt) )
# 21381 "src/reason-parser/reason_parser.ml"
           : (((Ppxlib.arg_label * Ppxlib.expression) list ->
   Location.t -> Ppxlib.expression) *
  Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : ((Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _2 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 21412 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 21424 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2869 "src/reason-parser/reason_parser.mly"
    ( let lident = Ppxlib.Longident.Lident _1.txt in
      (jsx_component {_1 with txt = lident } _2, lident)
    )
# 21432 "src/reason-parser/reason_parser.ml"
           : (((Ppxlib.arg_label * Ppxlib.expression) list ->
   Location.t -> Ppxlib.expression) *
  Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 2927 "src/reason-parser/reason_parser.mly"
                                                  (
    let loc = mklocation _symbolstartpos _endpos in
    let body = mktailexp_extension loc _2 None in
    makeFrag loc body
  )
# 21481 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : (((Ppxlib.arg_label * Ppxlib.expression) list ->
   Location.t -> Ppxlib.expression) *
  Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 2932 "src/reason-parser/reason_parser.mly"
                                                             (
    let (component, _) = _1 in
    let loc = mklocation _symbolstartpos _endpos in
    component [
      (Labelled "children", mktailexp_extension loc [] None);
      (Nolabel, mkexp_constructor_unit loc loc)
    ] loc
  )
# 21526 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : 
# 1236 "src/reason-parser/reason_parser.mly"
       (string)
# 21566 "src/reason-parser/reason_parser.ml"
         = Obj.magic _4 in
        let _3 : (Ppxlib.expression list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (((Ppxlib.arg_label * Ppxlib.expression) list ->
   Location.t -> Ppxlib.expression) *
  Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _endpos = _endpos__4_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 2940 "src/reason-parser/reason_parser.mly"
                                                                                                   (
    let (component, start) = _1 in
    let loc = mklocation _symbolstartpos _endpos in
    (* TODO: Make this tag check simply a warning *)
    let endName = Reason_syntax_util.parse_lid _4 in
    let _ = ensureTagsAreEqual start endName loc in
    let siblings = _3 in
    component [
      (Labelled "children", mktailexp_extension loc siblings None);
      (Nolabel, mkexp_constructor_unit loc loc)
    ] loc
  )
# 21593 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : 
# 1236 "src/reason-parser/reason_parser.mly"
       (string)
# 21633 "src/reason-parser/reason_parser.ml"
         = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (string) = Obj.magic _2 in
        let _1 : (((Ppxlib.arg_label * Ppxlib.expression) list ->
   Location.t -> Ppxlib.expression) *
  Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _endpos = _endpos__4_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 2952 "src/reason-parser/reason_parser.mly"
                                                                                                           (
    let (component, start) = _1 in
    let loc = mklocation _symbolstartpos _endpos in
    (* TODO: Make this tag check simply a warning *)
    let endName = Reason_syntax_util.parse_lid _4 in
    let _ = ensureTagsAreEqual start endName loc in
    let child = _3 in
    component [
      (Labelled "children", child);
      (Nolabel, mkexp_constructor_unit loc loc)
    ] loc
  )
# 21660 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 21682 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.longident) = 
# 4975 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident _1 )
# 21690 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 21723 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.longident) = 
# 4976 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Ldot(_1, _3) )
# 21733 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.expression) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 21764 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3375 "src/reason-parser/reason_parser.mly"
    ( [(Nolabel, _1)] )
# 21770 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 = 
# 5391 "src/reason-parser/reason_parser.mly"
                ( [] )
# 21814 "src/reason-parser/reason_parser.ml"
                 in
                
# 3371 "src/reason-parser/reason_parser.mly"
                                                        ( _1 )
# 21819 "src/reason-parser/reason_parser.ml"
                
              in
              
# 205 "<standard.mly>"
    ( x )
# 21825 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 21831 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _startpos = _startpos__1_ in
          (
# 3377 "src/reason-parser/reason_parser.mly"
    ( match _1 with
      | [] -> let loc = mklocation _startpos _endpos in
              [(Nolabel, mkexp_constructor_unit loc loc)]
      | xs -> xs
    )
# 21844 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined1 : ((Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 = _1_inlined1 in
                let _1 =
                  let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 21897 "src/reason-parser/reason_parser.ml"
                   in
                  
# 5392 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 21902 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3371 "src/reason-parser/reason_parser.mly"
                                                        ( _1 )
# 21908 "src/reason-parser/reason_parser.ml"
                
              in
              
# 205 "<standard.mly>"
    ( x )
# 21914 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 21920 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _startpos = _startpos__1_ in
          (
# 3377 "src/reason-parser/reason_parser.mly"
    ( match _1 with
      | [] -> let loc = mklocation _startpos _endpos in
              [(Nolabel, mkexp_constructor_unit loc loc)]
      | xs -> xs
    )
# 21933 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _endpos = _endpos__3_ in
          let _startpos = _startpos__1_ in
          (
# 3383 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      [(Nolabel, mkexp_constructor_unit ~uncurried:true loc loc)]
    )
# 21978 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.arg_label * Ppxlib.expression) = 
# 3417 "src/reason-parser/reason_parser.mly"
                             ( (Nolabel, _1) )
# 22004 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident Location.loc *
  (Ppxlib.core_type option * Ppxlib.core_type option) option) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22041 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3419 "src/reason-parser/reason_parser.mly"
    ( (* add(~a, ~b) -> parses ~a & ~b *)
      let lident_loc, maybe_typ = _2.txt in
      let exp = mkexp (Pexp_ident lident_loc) ~loc:lident_loc.loc in
      let labeled_exp = match maybe_typ with
      | None -> exp
      | Some typ ->
          ghexp_constraint _2.loc exp typ
      in
      (Labelled (Ppxlib.Longident.last_exn lident_loc.txt), labeled_exp)
    )
# 22056 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.arg_label * Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22100 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3430 "src/reason-parser/reason_parser.mly"
    ( (* foo(~a?)  -> parses ~a? *)
      let exp = mkexp (Pexp_ident _2) ~loc:_2.loc in
      (Optional (Ppxlib.Longident.last_exn _2.txt), exp)
    )
# 22109 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.arg_label * Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.longident Location.loc -> Ppxlib.expression) = Obj.magic _5 in
        let _4 : (string -> Ppxlib.arg_label) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 22158 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22171 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3435 "src/reason-parser/reason_parser.mly"
    ( (* foo(~bar=?Some(1)) or add(~x=1, ~y=2) -> parses ~bar=?Some(1) & ~x=1 & ~y=1 *)
      (_4 _2.txt, _5 { _2 with txt = Lident _2.txt })
    )
# 22179 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.arg_label * Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x_inlined1;
          MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let x_inlined1 : unit = Obj.magic x_inlined1 in
        let _4 : (string -> Ppxlib.arg_label) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 22228 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_inlined1_ in
        let _v =
          let _5 =
            let (_endpos_x_, _startpos_x_, x) = (_endpos_x_inlined1_, _startpos_x_inlined1_, x_inlined1) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22242 "src/reason-parser/reason_parser.ml"
            
          in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22251 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3439 "src/reason-parser/reason_parser.mly"
    ( (* foo(~l =_) *)
      let loc = _5.loc in
      let exp = mkexp (Pexp_ident (mkloc (Ppxlib.Longident.Lident "_") loc)) ~loc in
      (_4 _2.txt, exp)
    )
# 22261 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.arg_label * Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22291 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3445 "src/reason-parser/reason_parser.mly"
    ( (* foo(_) *)
      let loc = _1.loc in
      let exp = mkexp (Pexp_ident (mkloc (Ppxlib.Longident.Lident "_") loc)) ~loc in
      (Nolabel, exp)
    )
# 22301 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.arg_label * Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.longident Location.loc -> Ppxlib.expression) = 
# 3389 "src/reason-parser/reason_parser.mly"
                             ( fun _punned -> _1 )
# 22327 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type option * Ppxlib.core_type option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _endpos = _endpos__1_ in
          (
# 3391 "src/reason-parser/reason_parser.mly"
    ( fun punned ->
      let exp = mkexp (Pexp_ident punned) ~loc:punned.loc in
      match _1 with
      | typ ->
        let loc = mklocation punned.loc.loc_start _endpos in
        ghexp_constraint loc exp typ
    )
# 22360 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident Location.loc -> Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (string Location.loc -> Ppxlib.pattern) = Obj.magic _3 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 22395 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22410 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2761 "src/reason-parser/reason_parser.mly"
    ( Reason_parser_def.Term (Labelled _2.txt, None, _3 _2) )
# 22416 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22425 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2770 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 22431 "src/reason-parser/reason_parser.ml"
           : (Reason_parser_def.labelled_parameter Location.loc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (string Location.loc -> Ppxlib.pattern) = Obj.magic _3 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 22480 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22495 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2763 "src/reason-parser/reason_parser.mly"
    ( Reason_parser_def.Term (Optional _2.txt, Some _5, _3 _2) )
# 22501 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22510 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2770 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 22516 "src/reason-parser/reason_parser.ml"
           : (Reason_parser_def.labelled_parameter Location.loc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (string Location.loc -> Ppxlib.pattern) = Obj.magic _3 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 22565 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22580 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2765 "src/reason-parser/reason_parser.mly"
    ( Reason_parser_def.Term (Optional _2.txt, None, _3 _2) )
# 22586 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22595 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2770 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 22601 "src/reason-parser/reason_parser.ml"
           : (Reason_parser_def.labelled_parameter Location.loc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 2767 "src/reason-parser/reason_parser.mly"
    ( Reason_parser_def.Term (Nolabel, None, _1) )
# 22629 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22637 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2770 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 22643 "src/reason-parser/reason_parser.ml"
           : (Reason_parser_def.labelled_parameter Location.loc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 22671 "src/reason-parser/reason_parser.ml"
         = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 2769 "src/reason-parser/reason_parser.mly"
    ( Reason_parser_def.Type _2 )
# 22682 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22690 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2770 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 22696 "src/reason-parser/reason_parser.ml"
           : (Reason_parser_def.labelled_parameter Location.loc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (string Location.loc -> Ppxlib.pattern) = 
# 2746 "src/reason-parser/reason_parser.mly"
                                   ( fun _punned -> _2 )
# 22729 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _endpos = _endpos__1_ in
          (
# 2748 "src/reason-parser/reason_parser.mly"
    ( fun punned ->
      let pat = mkpat (Ppat_var punned) ~loc:punned.loc in
      match _1 with
      | None -> pat
      | Some typ ->
        let loc = mklocation punned.loc.loc_start _endpos in
        mkpat ~loc (Ppat_constraint(pat, typ))
    )
# 22763 "src/reason-parser/reason_parser.ml"
           : (string Location.loc -> Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4;
              MenhirLib.EngineTypes.startp = _startpos__4_;
              MenhirLib.EngineTypes.endp = _endpos__4_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (string -> Ppxlib.arg_label) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 22819 "src/reason-parser/reason_parser.ml"
         = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v : (Ppxlib.arg_label * Ppxlib.core_type) = 
# 4654 "src/reason-parser/reason_parser.mly"
    ( (_6 _2, _4) )
# 22828 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.pattern) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22871 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4055 "src/reason-parser/reason_parser.mly"
                                          ( (_1,_3) )
# 22877 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident Location.loc * Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22907 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4056 "src/reason-parser/reason_parser.mly"
                                          ( (_1, pat_of_label _1) )
# 22913 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident Location.loc * Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x_inlined1;
          MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x_inlined1 : (string) = Obj.magic x_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_inlined1_ in
        let _v =
          let _3 =
            let (_endpos_x_, _startpos_x_, x) = (_endpos_x_inlined1_, _startpos_x_inlined1_, x_inlined1) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22958 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 22967 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4058 "src/reason-parser/reason_parser.mly"
    ( (* punning with alias eg. {ReasonReact.state as prevState}
       *  -> {ReasonReact.state: state as prevState} *)
      (_1, mkpat(Ppat_alias(pat_of_label _1, _3)))
    )
# 22976 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident Location.loc * Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.value_constraint option) = Obj.magic _5 in
        let _4 : (Ppxlib.rec_flag) = Obj.magic _4 in
        let _3 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 23024 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 3468 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _symbolstartpos _endpos in
    let pat, expr, ct = _5 in
    mklbs _3 _4 (Ast_helper.Vb.mk ~loc ~attrs:_1 ?value_constraint:ct pat expr) loc )
# 23037 "src/reason-parser/reason_parser.ml"
           : (Reason_parser_def.let_bindings))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.value_constraint option) = Obj.magic _5 in
        let _4 : (Ppxlib.rec_flag) = Obj.magic _4 in
        let _3 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 23093 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 23098 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 3468 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _symbolstartpos _endpos in
    let pat, expr, ct = _5 in
    mklbs _3 _4 (Ast_helper.Vb.mk ~loc ~attrs:_1 ?value_constraint:ct pat expr) loc )
# 23111 "src/reason-parser/reason_parser.ml"
           : (Reason_parser_def.let_bindings))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type option * Ppxlib.core_type option) = Obj.magic _2 in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.value_constraint option) = 
# 3475 "src/reason-parser/reason_parser.mly"
    ( let t =
        match _2 with
          Some t, None ->
           Ppxlib.Pvc_constraint { locally_abstract_univars = []; typ=t }
        | ground, Some coercion -> Pvc_coercion { ground; coercion}
        | _ -> assert false
      in
      (_1, _4, Some t) )
# 23165 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.value_constraint option) = 
# 3484 "src/reason-parser/reason_parser.mly"
    ( (_1, _2, None) )
# 23197 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.expression) = Obj.magic x in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.core_type) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (string Location.loc list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _7 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 23270 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3487 "src/reason-parser/reason_parser.mly"
    ( let typ = mktyp ~ghost:true (Ptyp_poly(_3, _5)) in
      (_1, _7, Some (Ppxlib.Pvc_constraint { locally_abstract_univars = []; typ }))
    )
# 23278 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.value_constraint option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _7;
            MenhirLib.EngineTypes.startp = _startpos__7_;
            MenhirLib.EngineTypes.endp = _endpos__7_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _5;
                MenhirLib.EngineTypes.startp = _startpos__5_;
                MenhirLib.EngineTypes.endp = _endpos__5_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _4;
                  MenhirLib.EngineTypes.startp = _startpos__4_;
                  MenhirLib.EngineTypes.endp = _endpos__4_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _3;
                    MenhirLib.EngineTypes.startp = _startpos__3_;
                    MenhirLib.EngineTypes.endp = _endpos__3_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.expression) = Obj.magic x in
        let _7 : unit = Obj.magic _7 in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (string Location.loc list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _8 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 23359 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3539 "src/reason-parser/reason_parser.mly"
   ( (_1, _8, Some (Pvc_constraint { locally_abstract_univars = _4; typ=_6 })) )
# 23365 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.value_constraint option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.value_constraint option) = 
# 3552 "src/reason-parser/reason_parser.mly"
    ( (_1, _3, None) )
# 23405 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.value_constraint option) = 
# 3554 "src/reason-parser/reason_parser.mly"
    ( let t =
         Ppxlib.Pvc_constraint { locally_abstract_univars = []; typ=_3 }
      in
      (_1, _5, Some t)
    )
# 23462 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.value_binding list) = Obj.magic _2 in
        let _1 : (Reason_parser_def.let_bindings) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Reason_parser_def.let_bindings) = 
# 3463 "src/reason-parser/reason_parser.mly"
                                           ( addlbs _1 _2 )
# 23494 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = exp;
          MenhirLib.EngineTypes.startp = _startpos_exp_;
          MenhirLib.EngineTypes.endp = _endpos_exp_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = pat;
            MenhirLib.EngineTypes.startp = _startpos_pat_;
            MenhirLib.EngineTypes.endp = _endpos_pat_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let exp : (Ppxlib.expression) = Obj.magic exp in
        let pat : (Ppxlib.pattern) = Obj.magic pat in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_pat_ in
        let _endpos = _endpos_exp_ in
        let _v : (Ppxlib.pattern * Ppxlib.expression) = 
# 3563 "src/reason-parser/reason_parser.mly"
    ( (pat, exp) )
# 23526 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = exp;
          MenhirLib.EngineTypes.startp = _startpos_exp_;
          MenhirLib.EngineTypes.endp = _endpos_exp_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = typ;
              MenhirLib.EngineTypes.startp = _startpos_typ_;
              MenhirLib.EngineTypes.endp = _endpos_typ_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = pat;
                  MenhirLib.EngineTypes.startp = _startpos_pat_;
                  MenhirLib.EngineTypes.endp = _endpos_pat_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let exp : (Ppxlib.expression) = Obj.magic exp in
        let _4 : unit = Obj.magic _4 in
        let typ : (Ppxlib.core_type) = Obj.magic typ in
        let _2 : unit = Obj.magic _2 in
        let pat : (Ppxlib.pattern) = Obj.magic pat in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_pat_ in
        let _endpos = _endpos_exp_ in
        let _v : (Ppxlib.pattern * Ppxlib.expression) = 
# 3565 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos_pat_ _endpos_typ_ in
      (mkpat ~ghost:true ~loc (Ppat_constraint(pat, typ)), exp) )
# 23580 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = exp;
          MenhirLib.EngineTypes.startp = _startpos_exp_;
          MenhirLib.EngineTypes.endp = _endpos_exp_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = pat;
              MenhirLib.EngineTypes.startp = _startpos_pat_;
              MenhirLib.EngineTypes.endp = _endpos_pat_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let exp : (Ppxlib.expression) = Obj.magic exp in
        let _2 : unit = Obj.magic _2 in
        let pat : (Ppxlib.pattern) = Obj.magic pat in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_pat_ in
        let _endpos = _endpos_exp_ in
        let _v : (Ppxlib.pattern * Ppxlib.expression) = 
# 3568 "src/reason-parser/reason_parser.mly"
    ( (pat, exp) )
# 23619 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = body;
          MenhirLib.EngineTypes.startp = _startpos_body_;
          MenhirLib.EngineTypes.endp = _endpos_body_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let body : (Ppxlib.pattern * Ppxlib.expression) = Obj.magic body in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_body_ in
        let _endpos = _endpos_body_ in
        let _v : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.binding_op list) = 
# 3573 "src/reason-parser/reason_parser.mly"
      ( let let_pat, let_exp = body in
        let_pat, let_exp, [] )
# 23645 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = body;
          MenhirLib.EngineTypes.startp = _startpos_body_;
          MenhirLib.EngineTypes.endp = _endpos_body_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = bindings;
              MenhirLib.EngineTypes.startp = _startpos_bindings_;
              MenhirLib.EngineTypes.endp = _endpos_bindings_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let body : (Ppxlib.pattern * Ppxlib.expression) = Obj.magic body in
        let x : 
# 1183 "src/reason-parser/reason_parser.mly"
       (string)
# 23679 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let bindings : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.binding_op list) = Obj.magic bindings in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_bindings_ in
        let _endpos = _endpos_body_ in
        let _v =
          let pbop_op =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 23692 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos_body_ in
          let _symbolstartpos = _startpos_bindings_ in
          (
# 3576 "src/reason-parser/reason_parser.mly"
      ( let let_pat, let_exp, rev_ands = bindings in
        let pbop_pat, pbop_exp = body in
        let pbop_loc = mklocation _symbolstartpos _endpos in
        let and_ = {Ppxlib.pbop_op; pbop_pat; pbop_exp; pbop_loc} in
        let_pat, let_exp, and_ :: rev_ands )
# 23704 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.binding_op list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Astlib.Ast_502.Parsetree.class_declaration list) = 
# 216 "<standard.mly>"
    ( [] )
# 23723 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let xs : (Astlib.Ast_502.Parsetree.class_declaration list) = Obj.magic xs in
        let x : (Ppxlib.class_expr Ppxlib.class_infos) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_xs_ in
        let _v : (Astlib.Ast_502.Parsetree.class_declaration list) = 
# 219 "<standard.mly>"
    ( x :: xs )
# 23755 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.class_description list) = 
# 216 "<standard.mly>"
    ( [] )
# 23773 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let xs : (Ppxlib.class_description list) = Obj.magic xs in
        let x : (Ppxlib.class_description) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_xs_ in
        let _v : (Ppxlib.class_description list) = 
# 219 "<standard.mly>"
    ( x :: xs )
# 23805 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.class_type_declaration list) = 
# 216 "<standard.mly>"
    ( [] )
# 23823 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let xs : (Ppxlib.class_type_declaration list) = Obj.magic xs in
        let x : (Ppxlib.class_type_declaration) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_xs_ in
        let _v : (Ppxlib.class_type_declaration list) = 
# 219 "<standard.mly>"
    ( x :: xs )
# 23855 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.value_binding list) = 
# 216 "<standard.mly>"
    ( [] )
# 23873 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.value_binding list) = Obj.magic xs in
        let _3 : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.value_constraint option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 23914 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
              _startpos__1_
            else
              _startpos__2_ in
            
# 3459 "src/reason-parser/reason_parser.mly"
  ( let pat, expr, ct = _3 in
    Ast_helper.Vb.mk ?value_constraint:ct ~loc:(mklocation _symbolstartpos _endpos) ~attrs:_1 pat expr )
# 23926 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 219 "<standard.mly>"
    ( x :: xs )
# 23932 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.value_binding list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.value_binding list) = Obj.magic xs in
        let _3 : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.value_constraint option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _1 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 23982 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 23987 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
              _startpos__1_
            else
              _startpos__2_ in
            
# 3459 "src/reason-parser/reason_parser.mly"
  ( let pat, expr, ct = _3 in
    Ast_helper.Vb.mk ?value_constraint:ct ~loc:(mklocation _symbolstartpos _endpos) ~attrs:_1 pat expr )
# 23999 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 219 "<standard.mly>"
    ( x :: xs )
# 24005 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.value_binding list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.module_binding list) = 
# 216 "<standard.mly>"
    ( [] )
# 24024 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let xs : (Ppxlib.module_binding list) = Obj.magic xs in
        let x : (Ppxlib.module_binding) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_xs_ in
        let _v : (Ppxlib.module_binding list) = 
# 219 "<standard.mly>"
    ( x :: xs )
# 24056 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.module_declaration list) = 
# 216 "<standard.mly>"
    ( [] )
# 24074 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let xs : (Ppxlib.module_declaration list) = Obj.magic xs in
        let x : (Ppxlib.module_declaration) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_xs_ in
        let _v : (Ppxlib.module_declaration list) = 
# 219 "<standard.mly>"
    ( x :: xs )
# 24106 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.extension_constructor list) = 
# 216 "<standard.mly>"
    ( [] )
# 24124 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 24165 "src/reason-parser/reason_parser.ml"
             in
            let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 24170 "src/reason-parser/reason_parser.ml"
             in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 24175 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 219 "<standard.mly>"
    ( x :: xs )
# 24181 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 24231 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 24236 "src/reason-parser/reason_parser.ml"
              
            in
            let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 24242 "src/reason-parser/reason_parser.ml"
             in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 24247 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 219 "<standard.mly>"
    ( x :: xs )
# 24253 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 24302 "src/reason-parser/reason_parser.ml"
             in
            let _1 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 24308 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 24313 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 24319 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 219 "<standard.mly>"
    ( x :: xs )
# 24325 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _1_inlined1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 =
              let _1 = _1_inlined1 in
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 24383 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 24388 "src/reason-parser/reason_parser.ml"
              
            in
            let _1 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 24395 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 24400 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 24406 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 219 "<standard.mly>"
    ( x :: xs )
# 24412 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.extension_constructor list) = 
# 216 "<standard.mly>"
    ( [] )
# 24431 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 24472 "src/reason-parser/reason_parser.ml"
             in
            let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 24477 "src/reason-parser/reason_parser.ml"
             in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 24482 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 219 "<standard.mly>"
    ( x :: xs )
# 24488 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 24538 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 24543 "src/reason-parser/reason_parser.ml"
              
            in
            let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 24549 "src/reason-parser/reason_parser.ml"
             in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 24554 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 219 "<standard.mly>"
    ( x :: xs )
# 24560 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 24609 "src/reason-parser/reason_parser.ml"
             in
            let _1 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 24615 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 24620 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 24626 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 219 "<standard.mly>"
    ( x :: xs )
# 24632 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _1_inlined1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 =
              let _1 = _1_inlined1 in
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 24690 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 24695 "src/reason-parser/reason_parser.ml"
              
            in
            let _1 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 24702 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 24707 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 24713 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 219 "<standard.mly>"
    ( x :: xs )
# 24719 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.row_field list) = 
# 216 "<standard.mly>"
    ( [] )
# 24738 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let xs : (Ppxlib.row_field list) = Obj.magic xs in
        let x : (Ppxlib.row_field) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_xs_ in
        let _v : (Ppxlib.row_field list) = 
# 219 "<standard.mly>"
    ( x :: xs )
# 24770 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.expression list) = 
# 216 "<standard.mly>"
    ( [] )
# 24788 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let xs : (Ppxlib.expression list) = Obj.magic xs in
        let x : (Ppxlib.expression) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_xs_ in
        let _v : (Ppxlib.expression list) = 
# 219 "<standard.mly>"
    ( x :: xs )
# 24820 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.case list) = 
# 5386 "src/reason-parser/reason_parser.mly"
                ( [] )
# 24838 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.case) = Obj.magic _2 in
        let _1 : (Ppxlib.case list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.case list) = 
# 5387 "src/reason-parser/reason_parser.mly"
                   ( _2 :: _1 )
# 24870 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.case list) = 
# 5386 "src/reason-parser/reason_parser.mly"
                ( [] )
# 24888 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.case) = Obj.magic _2 in
        let _1 : (Ppxlib.case list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.case list) = 
# 5387 "src/reason-parser/reason_parser.mly"
                   ( _2 :: _1 )
# 24920 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = 
# 5386 "src/reason-parser/reason_parser.mly"
                ( [] )
# 24939 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined2;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1_inlined2 : (unit option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let (_startpos__1_inlined1_, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined2) in
            let x =
              let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
              let _2 =
                let _1 =
                  let _1 =
                    let _endpos = _endpos_x_ in
                    let _symbolstartpos = _startpos_x_ in
                    
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 25010 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 25016 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3712 "src/reason-parser/reason_parser.mly"
                        (_1)
# 25022 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos__2_ = _endpos__3_ in
              
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 25034 "src/reason-parser/reason_parser.ml"
              
            in
            
# 188 "<standard.mly>"
    ( x )
# 25040 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5387 "src/reason-parser/reason_parser.mly"
                   ( _2 :: _1 )
# 25046 "src/reason-parser/reason_parser.ml"
           : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1_inlined2 : (unit option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _2 =
            let (_startpos__1_inlined1_, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined2) in
            let x =
              let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
              let _2 =
                let _1 =
                  let _1 =
                    let _endpos = _endpos_x_ in
                    let _symbolstartpos = _startpos_x_ in
                    
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 25105 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3708 "src/reason-parser/reason_parser.mly"
                            ( (_1, exp_of_label _1) )
# 25111 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3713 "src/reason-parser/reason_parser.mly"
                    (_1)
# 25117 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos__2_ = _endpos_x_ in
              
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 25129 "src/reason-parser/reason_parser.ml"
              
            in
            
# 188 "<standard.mly>"
    ( x )
# 25135 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5387 "src/reason-parser/reason_parser.mly"
                   ( _2 :: _1 )
# 25141 "src/reason-parser/reason_parser.ml"
           : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : ((Ppxlib.core_type option * Ppxlib.core_type option) option) = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 25179 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3414 "src/reason-parser/reason_parser.mly"
 ( _1, _2 )
# 25185 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident Location.loc *
  (Ppxlib.core_type option * Ppxlib.core_type option) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = 
# 145 "<standard.mly>"
    ( [] )
# 25205 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined1 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let x =
            let _1 =
              let _1 =
                let x =
                  let _1 = _1_inlined1 in
                  let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 25257 "src/reason-parser/reason_parser.ml"
                   in
                  
# 2531 "src/reason-parser/reason_parser.mly"
                                                             (_1)
# 25262 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 205 "<standard.mly>"
    ( x )
# 25268 "src/reason-parser/reason_parser.ml"
                
              in
              
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 25274 "src/reason-parser/reason_parser.ml"
              
            in
            
# 2535 "src/reason-parser/reason_parser.mly"
  ( _1 )
# 25280 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 148 "<standard.mly>"
    ( x )
# 25286 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.functor_parameter Location.loc list) = 
# 145 "<standard.mly>"
    ( [] )
# 25305 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.functor_parameter Location.loc list) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : (Ppxlib.functor_parameter Location.loc list) = 
# 148 "<standard.mly>"
    ( x )
# 25330 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.attribute Location.loc list) = 
# 145 "<standard.mly>"
    ( [] )
# 25348 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let x = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 25374 "src/reason-parser/reason_parser.ml"
           in
          (
# 148 "<standard.mly>"
    ( x )
# 25379 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.attribute Location.loc list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.object_field list) = 
# 145 "<standard.mly>"
    ( [] )
# 25398 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.object_field list) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : (Ppxlib.object_field list) = 
# 148 "<standard.mly>"
    ( x )
# 25423 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.core_type list) = 
# 145 "<standard.mly>"
    ( [] )
# 25441 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let x : (Ppxlib.core_type list) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let x =
            let _1 = 
# 205 "<standard.mly>"
    ( x )
# 25482 "src/reason-parser/reason_parser.ml"
             in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 25487 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 148 "<standard.mly>"
    ( x )
# 25493 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = 
# 145 "<standard.mly>"
    ( [] )
# 25512 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let x : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let x =
            let _1 = 
# 205 "<standard.mly>"
    ( x )
# 25553 "src/reason-parser/reason_parser.ml"
             in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 25558 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 148 "<standard.mly>"
    ( x )
# 25564 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (string list) = 
# 145 "<standard.mly>"
    ( [] )
# 25583 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (string list) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let x = 
# 188 "<standard.mly>"
    ( x )
# 25616 "src/reason-parser/reason_parser.ml"
           in
          (
# 148 "<standard.mly>"
    ( x )
# 25621 "src/reason-parser/reason_parser.ml"
           : (string list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.row_field list) = 
# 145 "<standard.mly>"
    ( [] )
# 25640 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.row_field list) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : (Ppxlib.row_field list) = 
# 148 "<standard.mly>"
    ( x )
# 25665 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.pattern list) = 
# 145 "<standard.mly>"
    ( [] )
# 25683 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : ((Location.t option * Ppxlib.pattern) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let x =
            let x =
              let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 25718 "src/reason-parser/reason_parser.ml"
               in
              
# 4016 "src/reason-parser/reason_parser.mly"
  ( let msg = "Array's `...` spread is not supported in pattern matches.
Explanation: such spread would create a subarray; out of performance concern, our pattern matching currently guarantees to never create new intermediate data.
Solution: if it's to validate the first few elements, use a `when` clause + Array size check + `get` checks on the current pattern. If it's to obtain a subarray, use `Array.sub` or `Belt.Array.slice`." in
    filter_raise_spread_syntax msg _1 )
# 25726 "src/reason-parser/reason_parser.ml"
              
            in
            
# 196 "<standard.mly>"
    ( x )
# 25732 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 148 "<standard.mly>"
    ( x )
# 25738 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.core_type list) = 
# 145 "<standard.mly>"
    ( [] )
# 25757 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.core_type list) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : (Ppxlib.core_type list) = 
# 148 "<standard.mly>"
    ( x )
# 25782 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.with_constraint) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.with_constraint list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 25807 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.with_constraint) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.with_constraint list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.with_constraint list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 25846 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.core_type list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 25871 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.core_type list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.core_type list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 25910 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.expression list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 25935 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.expression list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 25974 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.expression list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 25999 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.expression list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 26038 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (string Location.loc * Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : ((string Location.loc * Ppxlib.expression) list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 26063 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (string Location.loc * Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : ((string Location.loc * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : ((string Location.loc * Ppxlib.expression) list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 26102 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Reason_parser_def.labelled_parameter Location.loc) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Reason_parser_def.labelled_parameter Location.loc list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 26127 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Reason_parser_def.labelled_parameter Location.loc) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Reason_parser_def.labelled_parameter Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Reason_parser_def.labelled_parameter Location.loc list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 26166 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.longident list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 26191 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.longident) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.longident list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.longident list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 26230 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.module_expr) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.module_expr list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 26255 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.module_expr) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.module_expr list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.module_expr list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 26294 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.functor_parameter Location.loc) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.functor_parameter Location.loc list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 26319 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.functor_parameter Location.loc) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.functor_parameter Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.functor_parameter Location.loc list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 26358 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.object_field) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.object_field list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 26383 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.object_field) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.object_field list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.object_field list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 26422 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : (unit option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 26460 "src/reason-parser/reason_parser.ml"
           in
          (
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 26465 "src/reason-parser/reason_parser.ml"
           : ((Location.t option * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _2_inlined1 : (Ppxlib.expression) = Obj.magic _2_inlined1 in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : ((Location.t option * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_inlined1_ in
        let _v =
          let _3 =
            let (_endpos__2_, _startpos__1_, _1, _2) = (_endpos__2_inlined1_, _startpos__1_inlined1_, _1_inlined1, _2_inlined1) in
            
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 26520 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 26526 "src/reason-parser/reason_parser.ml"
           : ((Location.t option * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1 : (unit option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _2 =
              let _1 =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 26580 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 26586 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3712 "src/reason-parser/reason_parser.mly"
                        (_1)
# 26592 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos__2_ = _endpos__3_ in
            
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 26604 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 26610 "src/reason-parser/reason_parser.ml"
           : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1 : (unit option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _2 =
              let _1 =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 26651 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3708 "src/reason-parser/reason_parser.mly"
                            ( (_1, exp_of_label _1) )
# 26657 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3713 "src/reason-parser/reason_parser.mly"
                    (_1)
# 26663 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos__2_ = _endpos_x_ in
            
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 26675 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 26681 "src/reason-parser/reason_parser.ml"
           : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _3 =
            let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
            let _2 =
              let _1 =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 26752 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 26758 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3712 "src/reason-parser/reason_parser.mly"
                        (_1)
# 26764 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos__2_ = _endpos__3_ in
            
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 26776 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 26782 "src/reason-parser/reason_parser.ml"
           : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _3 =
            let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
            let _2 =
              let _1 =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 26839 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3708 "src/reason-parser/reason_parser.mly"
                            ( (_1, exp_of_label _1) )
# 26845 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3713 "src/reason-parser/reason_parser.mly"
                    (_1)
# 26851 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos__2_ = _endpos_x_ in
            
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 26863 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 26869 "src/reason-parser/reason_parser.ml"
           : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let _1 : (unit option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 26909 "src/reason-parser/reason_parser.ml"
           in
          (
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 26914 "src/reason-parser/reason_parser.ml"
           : ((Location.t option * Ppxlib.pattern) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _2_inlined1 : (Ppxlib.pattern) = Obj.magic _2_inlined1 in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : ((Location.t option * Ppxlib.pattern) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_inlined1_ in
        let _v =
          let _3 =
            let (_endpos__2_, _startpos__1_, _1, _2) = (_endpos__2_inlined1_, _startpos__1_inlined1_, _1_inlined1, _2_inlined1) in
            
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 26969 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 26975 "src/reason-parser/reason_parser.ml"
           : ((Location.t option * Ppxlib.pattern) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.pattern list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 27001 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.pattern) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.pattern list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.pattern list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 27040 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.core_type list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 27065 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.core_type list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.core_type list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 27104 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.label_declaration) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.label_declaration list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 27129 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.label_declaration) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.label_declaration list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.label_declaration list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 27168 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.longident Location.loc * Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : ((Ppxlib.longident Location.loc * Ppxlib.expression) list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 27193 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.longident Location.loc * Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : ((Ppxlib.longident Location.loc * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : ((Ppxlib.longident Location.loc * Ppxlib.expression) list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 27232 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.object_field) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.object_field list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 27257 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.object_field) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.object_field list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.object_field list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 27296 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 27321 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 27360 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 27385 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 27424 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.arg_label * Ppxlib.core_type) = Obj.magic x in
        let _1 : (unit option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _2 =
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 27461 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4666 "src/reason-parser/reason_parser.mly"
  ( let uncurried = match _1 with | Some _ -> true | None -> false in
    (_2, uncurried)
  )
# 27469 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 27475 "src/reason-parser/reason_parser.ml"
           : (((Ppxlib.arg_label * Ppxlib.core_type) Location.loc * bool) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.arg_label * Ppxlib.core_type) = Obj.magic x in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (((Ppxlib.arg_label * Ppxlib.core_type) Location.loc * bool) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _3 =
            let _1 = _1_inlined1 in
            let _2 =
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 27528 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4666 "src/reason-parser/reason_parser.mly"
  ( let uncurried = match _1 with | Some _ -> true | None -> false in
    (_2, uncurried)
  )
# 27536 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 27542 "src/reason-parser/reason_parser.ml"
           : (((Ppxlib.arg_label * Ppxlib.core_type) Location.loc * bool) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.arg_label * Ppxlib.expression) = Obj.magic _2 in
        let _1 : (unit option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _endpos = _endpos__2_ in
            let _startpos = _startpos__1_ in
            
# 3401 "src/reason-parser/reason_parser.mly"
                      (
    let uncurried = match _1 with | Some _ -> true | None -> false in
    if uncurried then
      let (lbl, (argExpr: Ppxlib.expression)) = _2 in
      let loc = mklocation _startpos _endpos in
      let up = uncurry_payload ~name:"uncurry" loc in
      (lbl, {argExpr with pexp_attributes = up::argExpr.pexp_attributes})
    else _2
  )
# 27587 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 27593 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _2_inlined1 : (Ppxlib.arg_label * Ppxlib.expression) = Obj.magic _2_inlined1 in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : ((Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_inlined1_ in
        let _v =
          let _3 =
            let (_endpos__2_, _startpos__1_, _1, _2) = (_endpos__2_inlined1_, _startpos__1_inlined1_, _1_inlined1, _2_inlined1) in
            let _endpos = _endpos__2_ in
            let _startpos = _startpos__1_ in
            
# 3401 "src/reason-parser/reason_parser.mly"
                      (
    let uncurried = match _1 with | Some _ -> true | None -> false in
    if uncurried then
      let (lbl, (argExpr: Ppxlib.expression)) = _2 in
      let loc = mklocation _startpos _endpos in
      let up = uncurry_payload ~name:"uncurry" loc in
      (lbl, {argExpr with pexp_attributes = up::argExpr.pexp_attributes})
    else _2
  )
# 27653 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 27659 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.class_field list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.class_field list list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 27685 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.class_field list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.class_field list list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.class_field list list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 27724 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.class_type_field list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.class_type_field list list) = 
# 5398 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 27749 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.class_type_field list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.class_type_field list list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.class_type_field list list) = 
# 5399 "src/reason-parser/reason_parser.mly"
                                               ( _3 :: _1 )
# 27788 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 27838 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3598 "src/reason-parser/reason_parser.mly"
  ( let pat = {_2 with ppat_loc =
      { _2.ppat_loc with
        loc_start = _1.loc.loc_start
      }
    } in
    Ast_helper.Exp.case pat _4 )
# 27849 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.case))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x_inlined1;
              MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = x;
                    MenhirLib.EngineTypes.startp = _startpos_x_;
                    MenhirLib.EngineTypes.endp = _endpos_x_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let x_inlined1 : (Ppxlib.expression) = Obj.magic x_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _3 =
            let x = x_inlined1 in
            
# 188 "<standard.mly>"
    ( x )
# 27913 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 27922 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3605 "src/reason-parser/reason_parser.mly"
  ( let pat = {_2 with ppat_loc =
      { _2.ppat_loc with
        loc_start = _1.loc.loc_start
      }
    } in
    Ast_helper.Exp.case pat ~guard:_3 _5 )
# 27933 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.case))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x_inlined1;
          MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x_inlined1 : unit = Obj.magic x_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_inlined1_ in
        let _v =
          let _4 =
            let (_endpos_x_, _startpos_x_, x) = (_endpos_x_inlined1_, _startpos_x_inlined1_, x_inlined1) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 27985 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 27994 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3612 "src/reason-parser/reason_parser.mly"
  (
    let pat = {
      _2 with ppat_loc =
      { _2.ppat_loc with loc_start = _1.loc.loc_start }
    } in
    Ast_helper.Exp.(case pat (unreachable ~loc:_4.loc ()))
  )
# 28006 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.case))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 28057 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3598 "src/reason-parser/reason_parser.mly"
  ( let pat = {_2 with ppat_loc =
      { _2.ppat_loc with
        loc_start = _1.loc.loc_start
      }
    } in
    Ast_helper.Exp.case pat _4 )
# 28068 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.case))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x_inlined1;
              MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = x;
                    MenhirLib.EngineTypes.startp = _startpos_x_;
                    MenhirLib.EngineTypes.endp = _endpos_x_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let x_inlined1 : (Ppxlib.expression) = Obj.magic x_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _3 =
            let x = x_inlined1 in
            
# 188 "<standard.mly>"
    ( x )
# 28132 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 28141 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3605 "src/reason-parser/reason_parser.mly"
  ( let pat = {_2 with ppat_loc =
      { _2.ppat_loc with
        loc_start = _1.loc.loc_start
      }
    } in
    Ast_helper.Exp.case pat ~guard:_3 _5 )
# 28152 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.case))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x_inlined1;
          MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x_inlined1 : unit = Obj.magic x_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_inlined1_ in
        let _v =
          let _4 =
            let (_endpos_x_, _startpos_x_, x) = (_endpos_x_inlined1_, _startpos_x_inlined1_, x_inlined1) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 28204 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 28213 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3612 "src/reason-parser/reason_parser.mly"
  (
    let pat = {
      _2 with ppat_loc =
      { _2.ppat_loc with loc_start = _1.loc.loc_start }
    } in
    Ast_helper.Exp.(case pat (unreachable ~loc:_4.loc ()))
  )
# 28225 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.case))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.core_type) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 28273 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.override_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _3 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 28286 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 28294 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__5_ in
          let _startpos = _startpos__1_ in
          (
# 2266 "src/reason-parser/reason_parser.mly"
    ( if _1 = Override then
        syntax_error (mklocation _startpos _endpos)
          "cannot override a virtual method";
      (_3, Cfk_virtual _5)
    )
# 28306 "src/reason-parser/reason_parser.ml"
           : (string Location.loc * Ppxlib.class_field_kind))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 28341 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.override_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 28353 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 28361 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_inlined1_ in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2272 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      (_2, Cfk_concrete (_1, mkexp ~ghost:true ~loc (Pexp_poly (_3, None))))
    )
# 28375 "src/reason-parser/reason_parser.ml"
           : (string Location.loc * Ppxlib.class_field_kind))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : (Ppxlib.core_type option) = Obj.magic _3 in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 28417 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.override_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _2 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 28429 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 28437 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_inlined1_ in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2278 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      (_2, Cfk_concrete (_1, mkexp ~ghost:true ~loc (Pexp_poly(_4, _3))))
    )
# 28451 "src/reason-parser/reason_parser.ml"
           : (string Location.loc * Ppxlib.class_field_kind))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _8;
          MenhirLib.EngineTypes.startp = _startpos__8_;
          MenhirLib.EngineTypes.endp = _endpos__8_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _7;
            MenhirLib.EngineTypes.startp = _startpos__7_;
            MenhirLib.EngineTypes.endp = _endpos__7_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _5;
                MenhirLib.EngineTypes.startp = _startpos__5_;
                MenhirLib.EngineTypes.endp = _endpos__5_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _4;
                  MenhirLib.EngineTypes.startp = _startpos__4_;
                  MenhirLib.EngineTypes.endp = _endpos__4_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _3;
                    MenhirLib.EngineTypes.startp = _startpos__3_;
                    MenhirLib.EngineTypes.endp = _endpos__3_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1_inlined1;
                      MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _8 : (Ppxlib.expression) = Obj.magic _8 in
        let _7 : (Ppxlib.core_type) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (string Location.loc list) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 28521 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.override_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__8_ in
        let _v =
          let _2 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 28533 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 28541 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_inlined1_ in
          let _endpos = _endpos__8_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2286 "src/reason-parser/reason_parser.mly"
    (
      (* For non, methods we'd create a pattern binding:
         ((Ppat_constraint(mkpatvar ..., Ptyp_poly (typeVars, poly_type_varified))),
          exp_with_newtypes_constrained_by_non_varified)

         For methods, we create:
         Pexp_poly (Pexp_constraint (methodFunWithNewtypes, non_varified), Some (Ptyp_poly newTypes varified))
       *)
      let (exp_non_varified, poly_vars) = wrap_type_annotation _5 _7 _8 in
      let exp = Ppxlib.Pexp_poly(exp_non_varified, Some poly_vars) in
      let loc = mklocation _symbolstartpos _endpos in
      (_2, Ppxlib.Cfk_concrete (_1, mkexp ~ghost:true ~loc exp))
    )
# 28565 "src/reason-parser/reason_parser.ml"
           : (string Location.loc * Ppxlib.class_field_kind))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined2 : (Ppxlib.longident list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 28608 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let _1_inlined1 = _1_inlined2 in
            let _1 =
              let x =
                let _1 = _1_inlined1 in
                
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 28622 "src/reason-parser/reason_parser.ml"
                
              in
              
# 205 "<standard.mly>"
    ( x )
# 28628 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 28634 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__2_ = _endpos__3_ in
          let _1 = 
# 5005 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident _1 )
# 28641 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos__2_ in
          let _startpos = _startpos__1_ in
          (
# 5013 "src/reason-parser/reason_parser.mly"
  ( if not !Clflags.applicative_functors then (
      let loc = mklocation _startpos _endpos in
      raise_error (Applicative_path loc) loc
    );
    List.fold_left ~f:(fun p1 p2 -> Ppxlib.Longident.Lapply (p1, p2)) ~init:_1 _2
  )
# 28653 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3_inlined1 : unit = Obj.magic _3_inlined1 in
        let _1_inlined2 : (Ppxlib.longident list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _3 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 28708 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_inlined1_ in
        let _v =
          let _2 =
            let _1_inlined1 = _1_inlined2 in
            let _1 =
              let x =
                let _1 = _1_inlined1 in
                
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 28724 "src/reason-parser/reason_parser.ml"
                
              in
              
# 205 "<standard.mly>"
    ( x )
# 28730 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 28736 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__2_ = _endpos__3_inlined1_ in
          let _1 = 
# 5006 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Ldot(_1, _3) )
# 28743 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos__2_ in
          let _startpos = _startpos__1_ in
          (
# 5013 "src/reason-parser/reason_parser.mly"
  ( if not !Clflags.applicative_functors then (
      let loc = mklocation _startpos _endpos in
      raise_error (Applicative_path loc) loc
    );
    List.fold_left ~f:(fun p1 p2 -> Ppxlib.Longident.Lapply (p1, p2)) ~init:_1 _2
  )
# 28755 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined2 : (Ppxlib.longident list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let _1_inlined1 = _1_inlined2 in
            let _1 =
              let x =
                let _1 = _1_inlined1 in
                
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 28808 "src/reason-parser/reason_parser.ml"
                
              in
              
# 205 "<standard.mly>"
    ( x )
# 28814 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 28820 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__2_ = _endpos__3_ in
          let _1 = 
# 5007 "src/reason-parser/reason_parser.mly"
                                  ( _1 )
# 28827 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos__2_ in
          let _startpos = _startpos__1_ in
          (
# 5013 "src/reason-parser/reason_parser.mly"
  ( if not !Clflags.applicative_functors then (
      let loc = mklocation _startpos _endpos in
      raise_error (Applicative_path loc) loc
    );
    List.fold_left ~f:(fun p1 p2 -> Ppxlib.Longident.Lapply (p1, p2)) ~init:_1 _2
  )
# 28839 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined2 : (Ppxlib.longident list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : 
# 1199 "src/reason-parser/reason_parser.mly"
       (string)
# 28882 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let _1_inlined1 = _1_inlined2 in
            let _1 =
              let x =
                let _1 = _1_inlined1 in
                
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 28896 "src/reason-parser/reason_parser.ml"
                
              in
              
# 205 "<standard.mly>"
    ( x )
# 28902 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 28908 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__2_ = _endpos__3_ in
          let _1 = 
# 5024 "src/reason-parser/reason_parser.mly"
                                      ( Ppxlib.Longident.Lident _1 )
# 28915 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos__2_ in
          let _startpos = _startpos__1_ in
          (
# 5032 "src/reason-parser/reason_parser.mly"
  ( if not !Clflags.applicative_functors then (
      let loc = mklocation _startpos _endpos in
      raise_error (Applicative_path loc) loc
    );
    List.fold_left ~f:(fun p1 p2 -> Ppxlib.Longident.Lapply (p1, p2)) ~init:_1 _2
  )
# 28927 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3_inlined1 : unit = Obj.magic _3_inlined1 in
        let _1_inlined2 : (Ppxlib.longident list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _3 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 28982 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_inlined1_ in
        let _v =
          let _2 =
            let _1_inlined1 = _1_inlined2 in
            let _1 =
              let x =
                let _1 = _1_inlined1 in
                
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 28998 "src/reason-parser/reason_parser.ml"
                
              in
              
# 205 "<standard.mly>"
    ( x )
# 29004 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 29010 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__2_ = _endpos__3_inlined1_ in
          let _1 = 
# 5025 "src/reason-parser/reason_parser.mly"
                                      ( Ppxlib.Longident.Ldot(_1, _3) )
# 29017 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos__2_ in
          let _startpos = _startpos__1_ in
          (
# 5032 "src/reason-parser/reason_parser.mly"
  ( if not !Clflags.applicative_functors then (
      let loc = mklocation _startpos _endpos in
      raise_error (Applicative_path loc) loc
    );
    List.fold_left ~f:(fun p1 p2 -> Ppxlib.Longident.Lapply (p1, p2)) ~init:_1 _2
  )
# 29029 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined2 : (Ppxlib.longident list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let _1_inlined1 = _1_inlined2 in
            let _1 =
              let x =
                let _1 = _1_inlined1 in
                
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 29082 "src/reason-parser/reason_parser.ml"
                
              in
              
# 205 "<standard.mly>"
    ( x )
# 29088 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 29094 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__2_ = _endpos__3_ in
          let _1 = 
# 5026 "src/reason-parser/reason_parser.mly"
                                       ( _1 )
# 29101 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos__2_ in
          let _startpos = _startpos__1_ in
          (
# 5032 "src/reason-parser/reason_parser.mly"
  ( if not !Clflags.applicative_functors then (
      let loc = mklocation _startpos _endpos in
      raise_error (Applicative_path loc) loc
    );
    List.fold_left ~f:(fun p1 p2 -> Ppxlib.Longident.Lapply (p1, p2)) ~init:_1 _2
  )
# 29113 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1199 "src/reason-parser/reason_parser.mly"
       (string)
# 29135 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 5024 "src/reason-parser/reason_parser.mly"
                                      ( Ppxlib.Longident.Lident _1 )
# 29144 "src/reason-parser/reason_parser.ml"
           in
          (
# 5021 "src/reason-parser/reason_parser.mly"
                                              ( _1 )
# 29149 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 29183 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 = 
# 5025 "src/reason-parser/reason_parser.mly"
                                      ( Ppxlib.Longident.Ldot(_1, _3) )
# 29194 "src/reason-parser/reason_parser.ml"
           in
          (
# 5021 "src/reason-parser/reason_parser.mly"
                                              ( _1 )
# 29199 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 5026 "src/reason-parser/reason_parser.mly"
                                       ( _1 )
# 29226 "src/reason-parser/reason_parser.ml"
           in
          (
# 5021 "src/reason-parser/reason_parser.mly"
                                              ( _1 )
# 29231 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 29253 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 5005 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident _1 )
# 29262 "src/reason-parser/reason_parser.ml"
           in
          (
# 5002 "src/reason-parser/reason_parser.mly"
                                      ( _1 )
# 29267 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 29301 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 = 
# 5006 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Ldot(_1, _3) )
# 29312 "src/reason-parser/reason_parser.ml"
           in
          (
# 5002 "src/reason-parser/reason_parser.mly"
                                      ( _1 )
# 29317 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 5007 "src/reason-parser/reason_parser.mly"
                                  ( _1 )
# 29344 "src/reason-parser/reason_parser.ml"
           in
          (
# 5002 "src/reason-parser/reason_parser.mly"
                                      ( _1 )
# 29349 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 29371 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string option) = 
# 4903 "src/reason-parser/reason_parser.mly"
           ( Some _1 )
# 29379 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string option) = 
# 4904 "src/reason-parser/reason_parser.mly"
               ( None )
# 29404 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 29425 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.longident) = 
# 4987 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident _1 )
# 29433 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 29466 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.longident) = 
# 4988 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Ldot(_1, _3) )
# 29476 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.module_expr) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.module_expr list) = 
# 1568 "src/reason-parser/reason_parser.mly"
                          ( [_1] )
# 29501 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let x : (Ppxlib.module_expr list) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 205 "<standard.mly>"
    ( x )
# 29542 "src/reason-parser/reason_parser.ml"
             in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 29547 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1570 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 29553 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5391 "src/reason-parser/reason_parser.mly"
                ( [] )
# 29580 "src/reason-parser/reason_parser.ml"
           in
          (
# 1565 "src/reason-parser/reason_parser.mly"
                                                     (_1)
# 29585 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : (Ppxlib.module_expr list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 29620 "src/reason-parser/reason_parser.ml"
             in
            
# 5392 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 29625 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1565 "src/reason-parser/reason_parser.mly"
                                                     (_1)
# 29631 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.module_expr) = Obj.magic _2 in
        let _1 : (Ppxlib.functor_parameter Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.module_expr) = 
# 1803 "src/reason-parser/reason_parser.mly"
    ( mk_functor_mod _1 _2 )
# 29664 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.module_expr) = Obj.magic _4 in
        let _3 : (Ppxlib.module_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.functor_parameter Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v : (Ppxlib.module_expr) = 
# 1805 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos__3_ _endpos__4_ in
      mk_functor_mod _1 (mkmod ~loc (Pmod_constraint(_4, _3))) )
# 29711 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.module_expr) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 1545 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 29738 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5289 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_expr = x in
    {x with pmod_loc = {x.pmod_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 29748 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1562 "src/reason-parser/reason_parser.mly"
    (_1)
# 29754 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.module_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.module_expr) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 1547 "src/reason-parser/reason_parser.mly"
    ( mkmod(Pmod_constraint(_1, _3)) )
# 29796 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5289 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_expr = x in
    {x with pmod_loc = {x.pmod_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 29806 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1562 "src/reason-parser/reason_parser.mly"
    (_1)
# 29812 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 1549 "src/reason-parser/reason_parser.mly"
    ( mkmod(Pmod_unpack _2) )
# 29847 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5289 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_expr = x in
    {x with pmod_loc = {x.pmod_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 29857 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1562 "src/reason-parser/reason_parser.mly"
    (_1)
# 29863 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.core_type) = Obj.magic _5 in
        let _4 : (unit option) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos__1_ in
              
# 1551 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mkmod (Pmod_unpack(
           mkexp ~ghost:true ~loc (Pexp_constraint(_2, _5))))
    )
# 29925 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5289 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_expr = x in
    {x with pmod_loc = {x.pmod_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 29936 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1562 "src/reason-parser/reason_parser.mly"
    (_1)
# 29942 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _8;
          MenhirLib.EngineTypes.startp = _startpos__8_;
          MenhirLib.EngineTypes.endp = _endpos__8_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _7;
            MenhirLib.EngineTypes.startp = _startpos__7_;
            MenhirLib.EngineTypes.endp = _endpos__7_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _5;
                MenhirLib.EngineTypes.startp = _startpos__5_;
                MenhirLib.EngineTypes.endp = _endpos__5_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _4;
                  MenhirLib.EngineTypes.startp = _startpos__4_;
                  MenhirLib.EngineTypes.endp = _endpos__4_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _3;
                    MenhirLib.EngineTypes.startp = _startpos__3_;
                    MenhirLib.EngineTypes.endp = _endpos__3_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _8 : (Ppxlib.core_type) = Obj.magic _8 in
        let _7 : (unit option) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.core_type) = Obj.magic _5 in
        let _4 : (unit option) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__8_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__8_ in
              let _symbolstartpos = _startpos__1_ in
              
# 1556 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mkmod (Pmod_unpack(mkexp ~ghost:true ~loc (Pexp_coerce(_2, Some _5, _8)))) )
# 30023 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__8_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5289 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_expr = x in
    {x with pmod_loc = {x.pmod_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 30034 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1562 "src/reason-parser/reason_parser.mly"
    (_1)
# 30040 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.core_type) = Obj.magic _5 in
        let _4 : (unit option) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos__1_ in
              
# 1559 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mkmod (Pmod_unpack(mkexp ~ghost:true ~loc (Pexp_coerce(_2, None, _5))))
    )
# 30101 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5289 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_expr = x in
    {x with pmod_loc = {x.pmod_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 30112 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1562 "src/reason-parser/reason_parser.mly"
    (_1)
# 30118 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.module_type) = Obj.magic _2 in
        let _1 : (Ppxlib.functor_parameter Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.module_type) = 
# 2083 "src/reason-parser/reason_parser.mly"
  ( mk_functor_mty _1 _2 )
# 30151 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 30182 "src/reason-parser/reason_parser.ml"
                
              in
              
# 1583 "src/reason-parser/reason_parser.mly"
    ( mkmod(Pmod_ident _1) )
# 30188 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5289 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_expr = x in
    {x with pmod_loc = {x.pmod_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 30198 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1613 "src/reason-parser/reason_parser.mly"
    (_1)
# 30204 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.module_expr) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 1584 "src/reason-parser/reason_parser.mly"
                          ( _1 )
# 30232 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5289 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_expr = x in
    {x with pmod_loc = {x.pmod_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 30242 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1613 "src/reason-parser/reason_parser.mly"
    (_1)
# 30248 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.module_expr) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 1586 "src/reason-parser/reason_parser.mly"
    ( _2 )
# 30290 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5289 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_expr = x in
    {x with pmod_loc = {x.pmod_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 30300 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1613 "src/reason-parser/reason_parser.mly"
    (_1)
# 30306 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 1588 "src/reason-parser/reason_parser.mly"
    ( mkmod (Pmod_structure []) )
# 30341 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5289 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_expr = x in
    {x with pmod_loc = {x.pmod_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 30351 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1613 "src/reason-parser/reason_parser.mly"
    (_1)
# 30357 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Astlib.Ast_502.Parsetree.extension) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 1590 "src/reason-parser/reason_parser.mly"
    ( mkmod (Pmod_extension _1) )
# 30385 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5289 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_expr = x in
    {x with pmod_loc = {x.pmod_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 30395 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1613 "src/reason-parser/reason_parser.mly"
    (_1)
# 30401 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.module_expr) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.module_type option) = Obj.magic _3 in
        let _2 : (Ppxlib.functor_parameter Location.loc list) = Obj.magic _2 in
        let _1 : (unit) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__5_ in
              
# 1598 "src/reason-parser/reason_parser.mly"
    ( let me = match _3 with
        | None -> _5
        | Some mt ->
          let loc = mklocation _startpos__3_ _endpos in
          mkmod ~loc (Pmod_constraint(_5, mt))
      in
      mk_functor_mod _2 me
    )
# 30466 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5289 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_expr = x in
    {x with pmod_loc = {x.pmod_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 30477 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1613 "src/reason-parser/reason_parser.mly"
    (_1)
# 30483 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.module_expr list) = Obj.magic _2 in
        let _1 : (Ppxlib.module_expr) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__2_ in
              let _symbolstartpos = _startpos__1_ in
              
# 1607 "src/reason-parser/reason_parser.mly"
    ( match _2 with
      | [] -> mkmod_app_unit ~loc:(mklocation _symbolstartpos _endpos) _1
      | xs -> List.fold_left ~f:mkmod_app ~init:_1 xs
    )
# 30524 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5289 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_expr = x in
    {x with pmod_loc = {x.pmod_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 30535 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1613 "src/reason-parser/reason_parser.mly"
    (_1)
# 30541 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.module_expr) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 1612 "src/reason-parser/reason_parser.mly"
    ( {_2 with pmod_attributes = _1 :: _2.pmod_attributes} )
# 30576 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5289 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_expr = x in
    {x with pmod_loc = {x.pmod_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 30586 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1613 "src/reason-parser/reason_parser.mly"
    (_1)
# 30592 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.module_expr) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 = 
# 188 "<standard.mly>"
    ( x )
# 30626 "src/reason-parser/reason_parser.ml"
           in
          (
# 1573 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 30631 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.module_expr) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.module_expr) = 
# 1573 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 30657 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.structure) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _endpos = _endpos__3_ in
          let _startpos = _startpos__1_ in
          (
# 1577 "src/reason-parser/reason_parser.mly"
  ( mkmod ~loc:(mklocation _startpos _endpos) (Pmod_structure(_2)) )
# 30699 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_expr))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 1513 "src/reason-parser/reason_parser.mly"
    ( Ppxlib.Unit )
# 30734 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 30742 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1518 "src/reason-parser/reason_parser.mly"
  (_1)
# 30748 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.functor_parameter Location.loc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.module_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (string option) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 30794 "src/reason-parser/reason_parser.ml"
                
              in
              
# 1515 "src/reason-parser/reason_parser.mly"
    ( Ppxlib.Named (_1, _3) )
# 30800 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__3_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 30809 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1518 "src/reason-parser/reason_parser.mly"
  (_1)
# 30815 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.functor_parameter Location.loc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.module_type) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 30847 "src/reason-parser/reason_parser.ml"
                
              in
              
# 1517 "src/reason-parser/reason_parser.mly"
    ( Ppxlib.Named ({ txt = None; loc = _1.loc}, _1.txt) )
# 30853 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 30861 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1518 "src/reason-parser/reason_parser.mly"
  (_1)
# 30867 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.functor_parameter Location.loc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined2;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined2 : (Ppxlib.with_constraint list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.module_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined2_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _1_inlined1 = _1_inlined2 in
                let _2 =
                  let _1 = _1_inlined1 in
                  
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 30914 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 1868 "src/reason-parser/reason_parser.mly"
                                                      ( _2 )
# 30920 "src/reason-parser/reason_parser.ml"
                
              in
              
# 1888 "src/reason-parser/reason_parser.mly"
    ( mkmty (Pmty_with(_1, _2)) )
# 30926 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5323 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_type = x in
    { x
      with pmty_loc =
      {x.pmty_loc with loc_start = _symbolstartpos; loc_end = _endpos}
    }
  )
# 30941 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1939 "src/reason-parser/reason_parser.mly"
    (_1)
# 30947 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.module_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 1890 "src/reason-parser/reason_parser.mly"
    (_1)
# 30975 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5323 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_type = x in
    { x
      with pmty_loc =
      {x.pmty_loc with loc_start = _symbolstartpos; loc_end = _endpos}
    }
  )
# 30989 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1939 "src/reason-parser/reason_parser.mly"
    (_1)
# 30995 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.module_type) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 1892 "src/reason-parser/reason_parser.mly"
    ( {_2 with pmty_attributes = _1 :: _2.pmty_attributes} )
# 31030 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5323 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_type = x in
    { x
      with pmty_loc =
      {x.pmty_loc with loc_start = _symbolstartpos; loc_end = _endpos}
    }
  )
# 31044 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1939 "src/reason-parser/reason_parser.mly"
    (_1)
# 31050 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.module_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.functor_parameter Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 1938 "src/reason-parser/reason_parser.mly"
    ( mk_functor_mty _1 _3 )
# 31092 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5323 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_type = x in
    { x
      with pmty_loc =
      {x.pmty_loc with loc_start = _symbolstartpos; loc_end = _endpos}
    }
  )
# 31106 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1939 "src/reason-parser/reason_parser.mly"
    (_1)
# 31112 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.module_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.module_type) = 
# 2087 "src/reason-parser/reason_parser.mly"
                      ( _2 )
# 31145 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.module_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.module_type) = 
# 2088 "src/reason-parser/reason_parser.mly"
                          ( _1 )
# 31170 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.module_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.module_type) = 
# 2087 "src/reason-parser/reason_parser.mly"
                      ( _2 )
# 31202 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.module_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.module_type) = 
# 2088 "src/reason-parser/reason_parser.mly"
                          ( _1 )
# 31227 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.signature) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _endpos = _endpos__3_ in
          let _startpos = _startpos__1_ in
          (
# 1850 "src/reason-parser/reason_parser.mly"
  ( mkmty ~loc:(mklocation _startpos _endpos) (Pmty_signature _2) )
# 31269 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (string) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.longident) = 
# 5048 "src/reason-parser/reason_parser.mly"
                                 ( Lident _1 )
# 31295 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (string) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.longident) = 
# 5049 "src/reason-parser/reason_parser.mly"
                                 ( Ppxlib.Longident.Ldot(_1, _3) )
# 31334 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.mutable_flag) = 
# 5119 "src/reason-parser/reason_parser.mly"
                  ( Immutable )
# 31352 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.mutable_flag) = 
# 5120 "src/reason-parser/reason_parser.mly"
                  ( Mutable )
# 31377 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.mutable_flag * Ppxlib.virtual_flag) = 
# 5129 "src/reason-parser/reason_parser.mly"
                  ( Immutable, Concrete )
# 31395 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.mutable_flag) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.mutable_flag * Ppxlib.virtual_flag) = 
# 5130 "src/reason-parser/reason_parser.mly"
                         ( _2, Virtual )
# 31427 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.virtual_flag) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.mutable_flag * Ppxlib.virtual_flag) = 
# 5131 "src/reason-parser/reason_parser.mly"
                         ( Mutable, _2 )
# 31459 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.core_type) = 
# 4702 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 31484 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.core_type) = 
# 4704 "src/reason-parser/reason_parser.mly"
    ( {_2 with ptyp_attributes = _1 :: _2.ptyp_attributes} )
# 31516 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.core_type) = 
# 4753 "src/reason-parser/reason_parser.mly"
                                        ( _1 )
# 31541 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.core_type) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 31576 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4754 "src/reason-parser/reason_parser.mly"
                                       ( _1 )
# 31582 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 4746 "src/reason-parser/reason_parser.mly"
    ( match _1 with
      | [one] -> one
      | many -> mktyp (Ptyp_tuple many)
    )
# 31613 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 31627 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4750 "src/reason-parser/reason_parser.mly"
    (_1)
# 31633 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined1 : (Ppxlib.expression list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 = _1_inlined1 in
                let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 31685 "src/reason-parser/reason_parser.ml"
                 in
                
# 3361 "src/reason-parser/reason_parser.mly"
                                                                   ( _1 )
# 31690 "src/reason-parser/reason_parser.ml"
                
              in
              
# 205 "<standard.mly>"
    ( x )
# 31696 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 31702 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3364 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 31708 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _endpos = _endpos__2_ in
          let _startpos = _startpos__1_ in
          (
# 3366 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      [mkexp_constructor_unit loc loc] )
# 31745 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1244 "src/reason-parser/reason_parser.mly"
       (string * string option * string option)
# 31767 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let x = 
# 4066 "src/reason-parser/reason_parser.mly"
                                            ( let (s, _, _) = _1 in s )
# 31776 "src/reason-parser/reason_parser.ml"
           in
          (
# 228 "<standard.mly>"
    ( [ x ] )
# 31781 "src/reason-parser/reason_parser.ml"
           : (string list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let xs : (string list) = Obj.magic xs in
        let _1 : 
# 1244 "src/reason-parser/reason_parser.mly"
       (string * string option * string option)
# 31810 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x = 
# 4066 "src/reason-parser/reason_parser.mly"
                                            ( let (s, _, _) = _1 in s )
# 31819 "src/reason-parser/reason_parser.ml"
           in
          (
# 231 "<standard.mly>"
    ( x :: xs )
# 31824 "src/reason-parser/reason_parser.ml"
           : (string list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 31846 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let x =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 31858 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 228 "<standard.mly>"
    ( [ x ] )
# 31864 "src/reason-parser/reason_parser.ml"
           : (string Location.loc list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let xs : (string Location.loc list) = Obj.magic xs in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 31893 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 31905 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 231 "<standard.mly>"
    ( x :: xs )
# 31911 "src/reason-parser/reason_parser.ml"
           : (string Location.loc list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.attribute) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let x =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 31941 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 228 "<standard.mly>"
    ( [ x ] )
# 31947 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.attribute Location.loc list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let xs : (Ppxlib.attribute Location.loc list) = Obj.magic xs in
        let x : (Ppxlib.attribute) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 31984 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 231 "<standard.mly>"
    ( x :: xs )
# 31990 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.attribute Location.loc list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (string) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let x =
            let x = 
# 188 "<standard.mly>"
    ( x )
# 32025 "src/reason-parser/reason_parser.ml"
             in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 32033 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 228 "<standard.mly>"
    ( [ x ] )
# 32039 "src/reason-parser/reason_parser.ml"
           : (string Location.loc list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let xs : (string Location.loc list) = Obj.magic xs in
        let x : (string) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let x = 
# 188 "<standard.mly>"
    ( x )
# 32081 "src/reason-parser/reason_parser.ml"
             in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 32089 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 231 "<standard.mly>"
    ( x :: xs )
# 32095 "src/reason-parser/reason_parser.ml"
           : (string Location.loc list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__4_ in
        let _v =
          let x =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 32130 "src/reason-parser/reason_parser.ml"
             in
            let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 32135 "src/reason-parser/reason_parser.ml"
             in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 32140 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 228 "<standard.mly>"
    ( [ x ] )
# 32146 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__4_ in
        let _v =
          let x =
            let _3 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 32189 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 32194 "src/reason-parser/reason_parser.ml"
              
            in
            let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 32200 "src/reason-parser/reason_parser.ml"
             in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 32205 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 228 "<standard.mly>"
    ( [ x ] )
# 32211 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let x =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 32253 "src/reason-parser/reason_parser.ml"
             in
            let _1 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 32259 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 32264 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 32270 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 228 "<standard.mly>"
    ( [ x ] )
# 32276 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _1_inlined1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let x =
            let _3 =
              let _1 = _1_inlined1 in
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 32327 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 32332 "src/reason-parser/reason_parser.ml"
              
            in
            let _1 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 32339 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 32344 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 32350 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 228 "<standard.mly>"
    ( [ x ] )
# 32356 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 32398 "src/reason-parser/reason_parser.ml"
             in
            let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 32403 "src/reason-parser/reason_parser.ml"
             in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 32408 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 231 "<standard.mly>"
    ( x :: xs )
# 32414 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 32464 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 32469 "src/reason-parser/reason_parser.ml"
              
            in
            let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 32475 "src/reason-parser/reason_parser.ml"
             in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 32480 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 231 "<standard.mly>"
    ( x :: xs )
# 32486 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 32535 "src/reason-parser/reason_parser.ml"
             in
            let _1 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 32541 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 32546 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 32552 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 231 "<standard.mly>"
    ( x :: xs )
# 32558 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _1_inlined1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 =
              let _1 = _1_inlined1 in
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 32616 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 32621 "src/reason-parser/reason_parser.ml"
              
            in
            let _1 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 32628 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 32633 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 32639 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 231 "<standard.mly>"
    ( x :: xs )
# 32645 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__4_ in
        let _v =
          let x =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 32680 "src/reason-parser/reason_parser.ml"
             in
            let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 32685 "src/reason-parser/reason_parser.ml"
             in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 32690 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 228 "<standard.mly>"
    ( [ x ] )
# 32696 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__4_ in
        let _v =
          let x =
            let _3 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 32739 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 32744 "src/reason-parser/reason_parser.ml"
              
            in
            let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 32750 "src/reason-parser/reason_parser.ml"
             in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 32755 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 228 "<standard.mly>"
    ( [ x ] )
# 32761 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let x =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 32803 "src/reason-parser/reason_parser.ml"
             in
            let _1 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 32809 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 32814 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 32820 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 228 "<standard.mly>"
    ( [ x ] )
# 32826 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _1_inlined1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let x =
            let _3 =
              let _1 = _1_inlined1 in
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 32877 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 32882 "src/reason-parser/reason_parser.ml"
              
            in
            let _1 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 32889 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 32894 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 32900 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 228 "<standard.mly>"
    ( [ x ] )
# 32906 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 32948 "src/reason-parser/reason_parser.ml"
             in
            let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 32953 "src/reason-parser/reason_parser.ml"
             in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 32958 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 231 "<standard.mly>"
    ( x :: xs )
# 32964 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 33014 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 33019 "src/reason-parser/reason_parser.ml"
              
            in
            let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 33025 "src/reason-parser/reason_parser.ml"
             in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 33030 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 231 "<standard.mly>"
    ( x :: xs )
# 33036 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 33085 "src/reason-parser/reason_parser.ml"
             in
            let _1 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 33091 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 33096 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 33102 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 231 "<standard.mly>"
    ( x :: xs )
# 33108 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.extension_constructor list) = Obj.magic xs in
        let _4 : (Ppxlib.extension_constructor) = Obj.magic _4 in
        let _1_inlined1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x =
            let _3 =
              let _1 = _1_inlined1 in
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 33166 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 33171 "src/reason-parser/reason_parser.ml"
              
            in
            let _1 =
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 33178 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 33183 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4419 "src/reason-parser/reason_parser.mly"
                                        ( {_4 with pext_attributes = List.concat [_1; _3; _4.pext_attributes]} )
# 33189 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 231 "<standard.mly>"
    ( x :: xs )
# 33195 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (string) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let x = 
# 5094 "src/reason-parser/reason_parser.mly"
                                  ( _2 )
# 33229 "src/reason-parser/reason_parser.ml"
           in
          (
# 228 "<standard.mly>"
    ( [ x ] )
# 33234 "src/reason-parser/reason_parser.ml"
           : (string list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let xs : (string list) = Obj.magic xs in
        let _2 : (string) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x = 
# 5094 "src/reason-parser/reason_parser.mly"
                                  ( _2 )
# 33275 "src/reason-parser/reason_parser.ml"
           in
          (
# 231 "<standard.mly>"
    ( x :: xs )
# 33280 "src/reason-parser/reason_parser.ml"
           : (string list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.core_type * Ppxlib.core_type * Location.t) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let x = 
# 188 "<standard.mly>"
    ( x )
# 33314 "src/reason-parser/reason_parser.ml"
           in
          (
# 228 "<standard.mly>"
    ( [ x ] )
# 33319 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.core_type * Ppxlib.core_type * Location.t) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let xs : ((Ppxlib.core_type * Ppxlib.core_type * Location.t) list) = Obj.magic xs in
        let x : (Ppxlib.core_type * Ppxlib.core_type * Location.t) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_xs_ in
        let _v =
          let x = 
# 188 "<standard.mly>"
    ( x )
# 33360 "src/reason-parser/reason_parser.ml"
           in
          (
# 231 "<standard.mly>"
    ( x :: xs )
# 33365 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.core_type * Ppxlib.core_type * Location.t) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.rec_flag) = 
# 5104 "src/reason-parser/reason_parser.mly"
                  ( Recursive )
# 33384 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.rec_flag) = 
# 5105 "src/reason-parser/reason_parser.mly"
                  ( Nonrecursive )
# 33409 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.pattern) = Obj.magic x in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 33449 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2147 "src/reason-parser/reason_parser.mly"
    ( let attrs = List.map ~f:(fun x -> mkcf ~loc:x.loc (Pcf_attribute x.txt)) _1 in
      Ast_helper.Cstr.mk _2 attrs )
# 33456 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.class_field list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let x : (Ppxlib.pattern) = Obj.magic x in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 33511 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2152 "src/reason-parser/reason_parser.mly"
    ( let attrs = List.map ~f:(fun x -> mkcf ~loc:x.loc (Pcf_attribute x.txt)) _1 in
      Ast_helper.Cstr.mk _2 (attrs @ _4) )
# 33518 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.class_field list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _endpos in
          (
# 2155 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _symbolstartpos in
      Ast_helper.Cstr.mk (mkpat ~loc (Ppat_var (mkloc "this" loc))) _1 )
# 33551 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5391 "src/reason-parser/reason_parser.mly"
                ( [] )
# 33578 "src/reason-parser/reason_parser.ml"
           in
          (
# 2142 "src/reason-parser/reason_parser.mly"
                                             ( List.concat _1 )
# 33583 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : (Ppxlib.class_field list list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 33618 "src/reason-parser/reason_parser.ml"
             in
            
# 5392 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 33623 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2142 "src/reason-parser/reason_parser.mly"
                                             ( List.concat _1 )
# 33629 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 33651 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 33663 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 33669 "src/reason-parser/reason_parser.ml"
           in
          (
# 4806 "src/reason-parser/reason_parser.mly"
    ( Ast_helper.Of.tag ~attrs:_1 _2 (mkct _2) )
# 33674 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.object_field))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 33702 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 33715 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 33722 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 33727 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4806 "src/reason-parser/reason_parser.mly"
    ( Ast_helper.Of.tag ~attrs:_1 _2 (mkct _2) )
# 33733 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.object_field))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 33769 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 33781 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 33787 "src/reason-parser/reason_parser.ml"
           in
          (
# 4808 "src/reason-parser/reason_parser.mly"
    ( Ast_helper.Of.tag ~attrs:_1 _2 _4 )
# 33792 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.object_field))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 33834 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 33847 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 33854 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 33859 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4808 "src/reason-parser/reason_parser.mly"
    ( Ast_helper.Of.tag ~attrs:_1 _2 _4 )
# 33865 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.object_field))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4810 "src/reason-parser/reason_parser.mly"
    ( Ast_helper.Of.inherit_ ~loc:(mklocation _symbolstartpos _endpos) _2 )
# 33901 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.object_field))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : (Ppxlib.object_field list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 33935 "src/reason-parser/reason_parser.ml"
           in
          (
# 4814 "src/reason-parser/reason_parser.mly"
                                                                   ( _1 )
# 33940 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.object_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4786 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      syntax_error_typ loc "an object type cannot be empty" )
# 33977 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.object_field list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _endpos = _endpos__4_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4789 "src/reason-parser/reason_parser.mly"
    ( (* `{. "foo": bar}` -> `Js.t({. foo: bar})` *)
      let loc = mklocation _symbolstartpos _endpos in
      mkBsObjTypeSugar ~loc ~closed:Closed _3
    )
# 34030 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.object_field list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _endpos = _endpos__4_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4794 "src/reason-parser/reason_parser.mly"
    ( (* `{.. "foo": bar}` -> `Js.t({.. foo: bar})` *)
      let loc = mklocation _symbolstartpos _endpos in
      mkBsObjTypeSugar ~loc ~closed:Open _3
    )
# 34083 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.object_field list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v : (Ppxlib.core_type) = 
# 4799 "src/reason-parser/reason_parser.mly"
    ( mktyp (Ptyp_object (_3, Closed)) )
# 34130 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.object_field list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v : (Ppxlib.core_type) = 
# 4801 "src/reason-parser/reason_parser.mly"
    ( mktyp (Ptyp_object (_3, Open)) )
# 34176 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.module_expr) = Obj.magic _5 in
        let _4 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _4 in
        let _3 : (Ppxlib.override_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 34223 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2058 "src/reason-parser/reason_parser.mly"
  (
    let loc = mklocation _symbolstartpos _endpos in
    let opn =
      Ppxlib.Pstr_open
        (Ast_helper.Opn.mk _5 ~override:_3 ~attrs:_1 ~loc)
    in
    wrap_str_ext
     ~loc
     (mkstr opn)
     _4
  )
# 34244 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure_item))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.module_expr) = Obj.magic _5 in
        let _4 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _4 in
        let _3 : (Ppxlib.override_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 34300 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 34305 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2058 "src/reason-parser/reason_parser.mly"
  (
    let loc = mklocation _symbolstartpos _endpos in
    let opn =
      Ppxlib.Pstr_open
        (Ast_helper.Opn.mk _5 ~override:_3 ~attrs:_1 ~loc)
    in
    wrap_str_ext
     ~loc
     (mkstr opn)
     _4
  )
# 34326 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure_item))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _4 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _4 in
        let _3 : (Ppxlib.override_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _5 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 34377 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__5_ = _endpos_x_ in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 34384 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2073 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _symbolstartpos _endpos in
    let opn =
      Ppxlib.Psig_open (Ast_helper.Opn.mk _5 ~override:_3 ~attrs:_1 ~loc)
    in
    wrap_sig_ext ~loc opn _4
  )
# 34400 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _4 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _4 in
        let _3 : (Ppxlib.override_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _5 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 34458 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__5_ = _endpos_x_ in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 34466 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 34471 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2073 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _symbolstartpos _endpos in
    let opn =
      Ppxlib.Psig_open (Ast_helper.Opn.mk _5 ~override:_3 ~attrs:_1 ~loc)
    in
    wrap_sig_ext ~loc opn _4
  )
# 34487 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1227 "src/reason-parser/reason_parser.mly"
       (string)
# 34509 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 4944 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34517 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1228 "src/reason-parser/reason_parser.mly"
       (string)
# 34538 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 4945 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34546 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 4946 "src/reason-parser/reason_parser.mly"
                      ( "!" )
# 34571 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4912 "src/reason-parser/reason_parser.mly"
                      ( ">" )
# 34597 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34602 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1175 "src/reason-parser/reason_parser.mly"
       (string)
# 34624 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4913 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34633 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34638 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1176 "src/reason-parser/reason_parser.mly"
       (string)
# 34660 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4914 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34669 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34674 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1177 "src/reason-parser/reason_parser.mly"
       (string)
# 34696 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4915 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34705 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34710 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1178 "src/reason-parser/reason_parser.mly"
       (string)
# 34732 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4916 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34741 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34746 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4918 "src/reason-parser/reason_parser.mly"
                      ( "/>" )
# 34773 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34778 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1181 "src/reason-parser/reason_parser.mly"
       (string)
# 34800 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4919 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34809 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34814 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4920 "src/reason-parser/reason_parser.mly"
                  ( "+"  )
# 34841 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34846 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4921 "src/reason-parser/reason_parser.mly"
                  ( "+." )
# 34873 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34878 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4922 "src/reason-parser/reason_parser.mly"
                  ( "-"  )
# 34905 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34910 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4923 "src/reason-parser/reason_parser.mly"
                  ( "-." )
# 34937 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34942 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4924 "src/reason-parser/reason_parser.mly"
                      ( "*" )
# 34969 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 34974 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4925 "src/reason-parser/reason_parser.mly"
                      ( "<" )
# 35001 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 35006 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4926 "src/reason-parser/reason_parser.mly"
                      ( "or" )
# 35033 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 35038 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4927 "src/reason-parser/reason_parser.mly"
                      ( "||" )
# 35065 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 35070 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4928 "src/reason-parser/reason_parser.mly"
                      ( "&" )
# 35097 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 35102 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4929 "src/reason-parser/reason_parser.mly"
                      ( "&&" )
# 35129 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 35134 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4930 "src/reason-parser/reason_parser.mly"
                      ( ":=" )
# 35161 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 35166 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4931 "src/reason-parser/reason_parser.mly"
                      ( "+=" )
# 35193 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 35198 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4932 "src/reason-parser/reason_parser.mly"
                      ( "%" )
# 35225 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 35230 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4933 "src/reason-parser/reason_parser.mly"
                     ( ">..." )
# 35257 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 35262 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 4940 "src/reason-parser/reason_parser.mly"
                      ( "<..>" )
# 35289 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 35294 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 4941 "src/reason-parser/reason_parser.mly"
                      ( ">>" )
# 35328 "src/reason-parser/reason_parser.ml"
           in
          (
# 4947 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 35333 "src/reason-parser/reason_parser.ml"
           : (string))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1182 "src/reason-parser/reason_parser.mly"
       (string)
# 35355 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 4948 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 35363 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1183 "src/reason-parser/reason_parser.mly"
       (string)
# 35384 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 4949 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 35392 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (unit) = 
# 5092 "src/reason-parser/reason_parser.mly"
                       ( () )
# 35417 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (unit) = 
# 5092 "src/reason-parser/reason_parser.mly"
                                           ( () )
# 35449 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x : (string option) = Obj.magic x in
        let _3 : unit = Obj.magic _3 in
        let _2 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _2 in
        let _1 : (unit) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 35499 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1702 "src/reason-parser/reason_parser.mly"
                                                               ( _2, _4 )
# 35505 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 35546 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _3 : unit = Obj.magic _3 in
        let _2 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _2 in
        let _1 : (unit) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 35561 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1704 "src/reason-parser/reason_parser.mly"
    ( syntax_error _4.loc lowercase_module_msg; _2, { _4 with txt = Some _4.txt } )
# 35567 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (string option) = Obj.magic x in
        let _2 : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic _2 in
        let _1 : (unit) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 35612 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1695 "src/reason-parser/reason_parser.mly"
                                                          ( Some _2, _3 )
# 35618 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (string option) = Obj.magic x in
        let _1 : (unit) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 35656 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1696 "src/reason-parser/reason_parser.mly"
                                     ( None, _2 )
# 35662 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 35697 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _2 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _2 in
        let _1 : (unit) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 35711 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1698 "src/reason-parser/reason_parser.mly"
    ( syntax_error _3.loc lowercase_module_msg; _2, { _3 with txt = Some _3.txt } )
# 35717 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (unit option) = 
# 111 "<standard.mly>"
    ( None )
# 35737 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : (unit option) = 
# 114 "<standard.mly>"
    ( Some x )
# 35762 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (unit option) = 
# 111 "<standard.mly>"
    ( None )
# 35780 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : (unit option) = 
# 114 "<standard.mly>"
    ( Some x )
# 35805 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (unit option) = 
# 111 "<standard.mly>"
    ( None )
# 35823 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : (unit option) = 
# 114 "<standard.mly>"
    ( Some x )
# 35848 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (unit option) = 
# 111 "<standard.mly>"
    ( None )
# 35866 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : (unit option) = 
# 114 "<standard.mly>"
    ( Some x )
# 35891 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (unit option) = 
# 111 "<standard.mly>"
    ( None )
# 35909 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : (unit option) = 
# 114 "<standard.mly>"
    ( Some x )
# 35934 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (unit option) = 
# 111 "<standard.mly>"
    ( None )
# 35952 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : (unit option) = 
# 114 "<standard.mly>"
    ( Some x )
# 35977 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (unit option) = 
# 111 "<standard.mly>"
    ( None )
# 35995 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : unit = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : (unit option) = 
# 114 "<standard.mly>"
    ( Some x )
# 36020 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (string Location.loc option) = 
# 111 "<standard.mly>"
    ( None )
# 36038 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 36065 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let x =
            let x = 
# 188 "<standard.mly>"
    ( x )
# 36076 "src/reason-parser/reason_parser.ml"
             in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 36084 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 114 "<standard.mly>"
    ( Some x )
# 36090 "src/reason-parser/reason_parser.ml"
           : (string Location.loc option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.constructor_arguments option) = 
# 111 "<standard.mly>"
    ( None )
# 36109 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.constructor_arguments) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : (Ppxlib.constructor_arguments option) = 
# 114 "<standard.mly>"
    ( Some x )
# 36134 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = 
# 111 "<standard.mly>"
    ( None )
# 36152 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = 
# 114 "<standard.mly>"
    ( Some x )
# 36177 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.class_type option) = 
# 111 "<standard.mly>"
    ( None )
# 36195 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.class_type) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let x = 
# 188 "<standard.mly>"
    ( x )
# 36228 "src/reason-parser/reason_parser.ml"
           in
          (
# 114 "<standard.mly>"
    ( Some x )
# 36233 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.class_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.core_type option) = 
# 111 "<standard.mly>"
    ( None )
# 36252 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.core_type) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let x = 
# 188 "<standard.mly>"
    ( x )
# 36285 "src/reason-parser/reason_parser.ml"
           in
          (
# 114 "<standard.mly>"
    ( Some x )
# 36290 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.expression option) = 
# 111 "<standard.mly>"
    ( None )
# 36309 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.expression) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let x = 
# 188 "<standard.mly>"
    ( x )
# 36342 "src/reason-parser/reason_parser.ml"
           in
          (
# 114 "<standard.mly>"
    ( Some x )
# 36347 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.core_type option) = 
# 111 "<standard.mly>"
    ( None )
# 36366 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.core_type) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let x = 
# 188 "<standard.mly>"
    ( x )
# 36399 "src/reason-parser/reason_parser.ml"
           in
          (
# 114 "<standard.mly>"
    ( Some x )
# 36404 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.core_type option) = 
# 111 "<standard.mly>"
    ( None )
# 36423 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.core_type) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let x = 
# 188 "<standard.mly>"
    ( x )
# 36456 "src/reason-parser/reason_parser.ml"
           in
          (
# 114 "<standard.mly>"
    ( Some x )
# 36461 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.module_type option) = 
# 111 "<standard.mly>"
    ( None )
# 36480 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.module_type) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let x = 
# 188 "<standard.mly>"
    ( x )
# 36513 "src/reason-parser/reason_parser.ml"
           in
          (
# 114 "<standard.mly>"
    ( Some x )
# 36518 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.core_type option) = 
# 111 "<standard.mly>"
    ( None )
# 36537 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.core_type) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let x = 
# 188 "<standard.mly>"
    ( x )
# 36570 "src/reason-parser/reason_parser.ml"
           in
          (
# 114 "<standard.mly>"
    ( Some x )
# 36575 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : ((Ppxlib.core_type option * Ppxlib.core_type option) option) = 
# 111 "<standard.mly>"
    ( None )
# 36594 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.core_type option * Ppxlib.core_type option) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : ((Ppxlib.core_type option * Ppxlib.core_type option) option) = 
# 114 "<standard.mly>"
    ( Some x )
# 36619 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (string -> Ppxlib.arg_label) = 
# 5284 "src/reason-parser/reason_parser.mly"
    ( fun x -> Labelled x )
# 36637 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string -> Ppxlib.arg_label) = 
# 5285 "src/reason-parser/reason_parser.mly"
             ( fun x -> Optional x )
# 36662 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = 
# 2967 "src/reason-parser/reason_parser.mly"
                ( fun ~loc:_ exp -> exp )
# 36680 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = 
# 2968 "src/reason-parser/reason_parser.mly"
                         ( fun ~loc exp -> expression_extension ~loc _1 exp  )
# 36705 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.override_flag) = 
# 5135 "src/reason-parser/reason_parser.mly"
                  ( Fresh )
# 36723 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.override_flag) = 
# 5136 "src/reason-parser/reason_parser.mly"
                  ( Override )
# 36748 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.module_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _endpos = _endpos__1_ in
          let _startpos = _startpos__1_ in
          (
# 4828 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos _endpos in
    match package_type_of_module_type _1 with
    | Some result -> mktyp ~loc (Ptyp_package result)
    | None ->
       syntax_error_typ _1.pmty_loc
         "only module type identifier and 'with type' constraints are supported"
  )
# 36782 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.expression) = 
# 3131 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 36808 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _endpos = _endpos__3_ in
          let _startpos = _startpos__1_ in
          (
# 3133 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      mkexp_constructor_unit ~uncurried:true loc loc )
# 36851 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _endpos = _endpos__3_ in
          let _startpos = _startpos__1_ in
          (
# 3136 "src/reason-parser/reason_parser.mly"
    ( may_tuple _startpos _endpos _2 )
# 36894 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.core_type) = 
# 1495 "src/reason-parser/reason_parser.mly"
  ( reason_mapper Reason_syntax_util.apply_mapper_to_type _1 )
# 36927 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.expression) = 
# 1500 "src/reason-parser/reason_parser.mly"
  ( reason_mapper Reason_syntax_util.apply_mapper_to_expr _1 )
# 36959 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.pattern) = 
# 1505 "src/reason-parser/reason_parser.mly"
  ( reason_mapper Reason_syntax_util.apply_mapper_to_pattern _1 )
# 36991 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.pattern) = 
# 3809 "src/reason-parser/reason_parser.mly"
                       ( _1 )
# 37016 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.pattern) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 3810 "src/reason-parser/reason_parser.mly"
                                          ( mkpat(Ppat_or(_1, _3)) )
# 37057 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 37069 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3810 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 37075 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : ((Location.t option * Ppxlib.pattern) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 37109 "src/reason-parser/reason_parser.ml"
           in
          (
# 4024 "src/reason-parser/reason_parser.mly"
  ( match List.rev _1 with
    (* spread syntax is only allowed at the end *)
    | ((dotdotdot, p) as hd)::ps ->
      let (ps, spreadPat) = match dotdotdot with
      | Some _ -> (ps, Some p)
      | None -> (hd::ps, None)
      in
      let msg = "List pattern matches only supports one `...` spread, at the end.
Explanation: a list spread at the tail is efficient, but a spread in the middle would create new list(s); out of performance concern, our pattern matching currently guarantees to never create new intermediate data." in
      let patList = filter_raise_spread_syntax msg ps in
      (List.rev patList, spreadPat)
    | [] -> [], None
  )
# 37126 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern list * Ppxlib.pattern option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.pattern list) = 
# 3818 "src/reason-parser/reason_parser.mly"
    ( [_1] )
# 37152 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined1 : (Ppxlib.pattern list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 = _1_inlined1 in
                let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 37203 "src/reason-parser/reason_parser.ml"
                 in
                
# 3814 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 37208 "src/reason-parser/reason_parser.ml"
                
              in
              
# 205 "<standard.mly>"
    ( x )
# 37214 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 37220 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3820 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 37226 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3999 "src/reason-parser/reason_parser.mly"
                            ( _1 )
# 37254 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 37266 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4011 "src/reason-parser/reason_parser.mly"
    (_1)
# 37272 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 4001 "src/reason-parser/reason_parser.mly"
    ( mkpat(Ppat_constraint(_1, _3)) )
# 37314 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 37326 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4011 "src/reason-parser/reason_parser.mly"
    (_1)
# 37332 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x_inlined1;
          MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let x_inlined1 : (Ppxlib.core_type) = Obj.magic x_inlined1 in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let x : (string option) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_inlined1_ in
        let _v =
          let _1 =
            let x =
              let _4 =
                let (_endpos_x_, _startpos__1_, x) = (_endpos_x_inlined1_, _startpos__1_inlined1_, x_inlined1) in
                let x = 
# 188 "<standard.mly>"
    ( x )
# 37391 "src/reason-parser/reason_parser.ml"
                 in
                let _startpos_x_ = _startpos__1_ in
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 37405 "src/reason-parser/reason_parser.ml"
                
              in
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 37414 "src/reason-parser/reason_parser.ml"
                
              in
              
# 4010 "src/reason-parser/reason_parser.mly"
    ( mkpat (Ppat_constraint (mkpat (Ppat_unpack _2), _4)) )
# 37420 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos_x_inlined1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 37433 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4011 "src/reason-parser/reason_parser.mly"
    (_1)
# 37439 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3841 "src/reason-parser/reason_parser.mly"
                   ( _1 )
# 37467 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 37479 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3898 "src/reason-parser/reason_parser.mly"
    (_1)
# 37485 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (string) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _3 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 37531 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3844 "src/reason-parser/reason_parser.mly"
    ( mkpat(Ppat_alias(_1, _3)) )
# 37537 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 37550 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3898 "src/reason-parser/reason_parser.mly"
    (_1)
# 37556 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.pattern list) = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 37595 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos__1_ = _startpos_x_ in
              let _endpos = _endpos__2_ in
              let _symbolstartpos = _startpos__1_ in
              
# 3862 "src/reason-parser/reason_parser.mly"
    ( match is_pattern_list_single_any _2 with
      | Some singleAnyPat ->
        mkpat (Ppat_construct(_1, Some ([], singleAnyPat)))
      | None ->
        let loc = mklocation _symbolstartpos _endpos in
        let argPattern = simple_pattern_list_to_tuple ~loc _2 in
        mkExplicitArityTuplePat (Ppat_construct(_1, Some ([], argPattern)))
    )
# 37611 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__2_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 37624 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3898 "src/reason-parser/reason_parser.mly"
    (_1)
# 37630 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let _2_inlined1 : (string) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _2 = _2_inlined1 in
                
# 5094 "src/reason-parser/reason_parser.mly"
                                  ( _2 )
# 37675 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3871 "src/reason-parser/reason_parser.mly"
                            ( mkpat (Ppat_variant(_1, Some _2)) )
# 37681 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 37694 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3898 "src/reason-parser/reason_parser.mly"
    (_1)
# 37700 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.pattern) = Obj.magic _3 in
        let x : unit = Obj.magic x in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 37746 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = _startpos__1_ in
              
# 3874 "src/reason-parser/reason_parser.mly"
    ( syntax_error _2.loc
        ":: is not supported in Reason, please use [hd, ...tl] instead";
      let loc = mklocation _symbolstartpos _endpos in
      mkpat_cons (mkpat ~ghost:true ~loc (Ppat_tuple[_1;_3])) loc
    )
# 37758 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 37771 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3898 "src/reason-parser/reason_parser.mly"
    (_1)
# 37777 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _8;
          MenhirLib.EngineTypes.startp = _startpos__8_;
          MenhirLib.EngineTypes.endp = _endpos__8_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _7;
            MenhirLib.EngineTypes.startp = _startpos__7_;
            MenhirLib.EngineTypes.endp = _endpos__7_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _5;
                MenhirLib.EngineTypes.startp = _startpos__5_;
                MenhirLib.EngineTypes.endp = _endpos__5_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _4;
                  MenhirLib.EngineTypes.startp = _startpos__4_;
                  MenhirLib.EngineTypes.endp = _endpos__4_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _3;
                    MenhirLib.EngineTypes.startp = _startpos__3_;
                    MenhirLib.EngineTypes.endp = _endpos__3_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _8 : unit = Obj.magic _8 in
        let _7 : (Ppxlib.pattern) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.pattern) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__8_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__8_ in
              let _symbolstartpos = _startpos__1_ in
              
# 3881 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mkpat_cons (mkpat ~ghost:true ~loc (Ppat_tuple[_5;_7])) loc
    )
# 37859 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__8_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 37872 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3898 "src/reason-parser/reason_parser.mly"
    (_1)
# 37878 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 3886 "src/reason-parser/reason_parser.mly"
    ( mkpat(Ppat_exception _2) )
# 37913 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 37925 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3898 "src/reason-parser/reason_parser.mly"
    (_1)
# 37931 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 3888 "src/reason-parser/reason_parser.mly"
                        ( mkpat(Ppat_lazy _2) )
# 37966 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 37978 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3898 "src/reason-parser/reason_parser.mly"
    (_1)
# 37984 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 3896 "src/reason-parser/reason_parser.mly"
    ( {_2 with ppat_attributes = _1 :: _2.ppat_attributes} )
# 38019 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 38031 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3898 "src/reason-parser/reason_parser.mly"
    (_1)
# 38037 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.structure) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.payload) = 
# 5253 "src/reason-parser/reason_parser.mly"
                                    ( PStr _1 )
# 38063 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.signature) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.payload) = 
# 5254 "src/reason-parser/reason_parser.mly"
                                    ( PSig _2 )
# 38095 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.payload) = 
# 5255 "src/reason-parser/reason_parser.mly"
                                    ( PTyp _2 )
# 38127 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.payload) = 
# 5256 "src/reason-parser/reason_parser.mly"
                                    ( PPat (_2, None) )
# 38159 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.pattern) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v : (Ppxlib.payload) = 
# 5257 "src/reason-parser/reason_parser.mly"
                                    ( PPat (_2, Some _4) )
# 38205 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 5277 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let expr = Ast_helper.Exp.fun_ ~loc Nolabel None _1 _3 in
      Ppxlib.PStr([mkstrexp expr []])
    )
# 38250 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.payload))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 4493 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 38278 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 38292 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4496 "src/reason-parser/reason_parser.mly"
    (_1)
# 38298 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (string Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 4495 "src/reason-parser/reason_parser.mly"
    ( mktyp(Ptyp_poly(_1, _3)) )
# 38340 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 38354 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4496 "src/reason-parser/reason_parser.mly"
    (_1)
# 38360 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (string list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string list) = 
# 4066 "src/reason-parser/reason_parser.mly"
                                                                         (_1)
# 38386 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.core_type) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _1 =
              let x = 
# 188 "<standard.mly>"
    ( x )
# 38421 "src/reason-parser/reason_parser.ml"
               in
              let _startpos_x_ = _startpos__1_ in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 38435 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3793 "src/reason-parser/reason_parser.mly"
                                                     (_1)
# 38441 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4740 "src/reason-parser/reason_parser.mly"
                                       ( _1 )
# 38447 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.core_type) = 
# 4740 "src/reason-parser/reason_parser.mly"
                                       ( _1 )
# 38473 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.rec_flag) = 
# 5099 "src/reason-parser/reason_parser.mly"
                  ( Nonrecursive )
# 38491 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.rec_flag) = 
# 5100 "src/reason-parser/reason_parser.mly"
                  ( Recursive )
# 38516 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (unit option) = Obj.magic _3 in
        let _1_inlined1 : (Ppxlib.label_declaration list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _2 =
            let _1 = _1_inlined1 in
            
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 38565 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4352 "src/reason-parser/reason_parser.mly"
  ( _2 )
# 38571 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.label_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _1_inlined2;
                    MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                    MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1_inlined1;
                      MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = _2;
                        MenhirLib.EngineTypes.startp = _startpos__2_;
                        MenhirLib.EngineTypes.endp = _endpos__2_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _menhir_s;
                          MenhirLib.EngineTypes.semv = _1;
                          MenhirLib.EngineTypes.startp = _startpos__1_;
                          MenhirLib.EngineTypes.endp = _endpos__1_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : (unit option) = Obj.magic _4 in
        let _2_inlined2 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _2_inlined2 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1_inlined2 : (unit option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _3 =
            let (_startpos__1_inlined1_, _1_inlined1, _2) = (_startpos__1_inlined2_, _1_inlined2, _2_inlined2) in
            let _1 =
              let x =
                let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
                let _2 =
                  let _1 =
                    let _1 =
                      let _endpos = _endpos_x_ in
                      let _symbolstartpos = _startpos_x_ in
                      
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 38665 "src/reason-parser/reason_parser.ml"
                      
                    in
                    
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 38671 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3712 "src/reason-parser/reason_parser.mly"
                        (_1)
# 38677 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__2_ = _endpos__3_ in
                
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 38689 "src/reason-parser/reason_parser.ml"
                
              in
              
# 188 "<standard.mly>"
    ( x )
# 38695 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 38701 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3677 "src/reason-parser/reason_parser.mly"
    ( let exprList = filter_raise_spread_syntax record_exp_spread_msg _3
      in (Some _2, exprList)
    )
# 38709 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined2;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : (unit option) = Obj.magic _4 in
        let _2_inlined1 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _2_inlined1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1_inlined2 : (unit option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _3 =
            let (_startpos__1_inlined1_, _1_inlined1, _2) = (_startpos__1_inlined2_, _1_inlined2, _2_inlined1) in
            let _1 =
              let x =
                let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
                let _2 =
                  let _1 =
                    let _1 =
                      let _endpos = _endpos_x_ in
                      let _symbolstartpos = _startpos_x_ in
                      
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 38790 "src/reason-parser/reason_parser.ml"
                      
                    in
                    
# 3708 "src/reason-parser/reason_parser.mly"
                            ( (_1, exp_of_label _1) )
# 38796 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3713 "src/reason-parser/reason_parser.mly"
                    (_1)
# 38802 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__2_ = _endpos_x_ in
                
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 38814 "src/reason-parser/reason_parser.ml"
                
              in
              
# 188 "<standard.mly>"
    ( x )
# 38820 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 38826 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3677 "src/reason-parser/reason_parser.mly"
    ( let exprList = filter_raise_spread_syntax record_exp_spread_msg _3
      in (Some _2, exprList)
    )
# 38834 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (unit option) = Obj.magic _5 in
        let _1_inlined1 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 =
            let _1 = _1_inlined1 in
            
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 38893 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3683 "src/reason-parser/reason_parser.mly"
    ( raise_record_trailing_semi_error'
        (mklocation _startpos__3_ _endpos__3_) )
# 38900 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _1_inlined2;
                    MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                    MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1_inlined1;
                      MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = _2;
                        MenhirLib.EngineTypes.startp = _startpos__2_;
                        MenhirLib.EngineTypes.endp = _endpos__2_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _menhir_s;
                          MenhirLib.EngineTypes.semv = _1;
                          MenhirLib.EngineTypes.startp = _startpos__1_;
                          MenhirLib.EngineTypes.endp = _endpos__1_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _2_inlined2 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _2_inlined2 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1_inlined2 : (unit option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _3 =
            let (_startpos__1_inlined1_, _1_inlined1, _2) = (_startpos__1_inlined2_, _1_inlined2, _2_inlined2) in
            let _1 =
              let x =
                let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
                let _2 =
                  let _1 =
                    let _1 =
                      let _endpos = _endpos_x_ in
                      let _symbolstartpos = _startpos_x_ in
                      
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 38995 "src/reason-parser/reason_parser.ml"
                      
                    in
                    
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 39001 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3712 "src/reason-parser/reason_parser.mly"
                        (_1)
# 39007 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__2_ = _endpos__3_ in
                
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 39019 "src/reason-parser/reason_parser.ml"
                
              in
              
# 188 "<standard.mly>"
    ( x )
# 39025 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 39031 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3688 "src/reason-parser/reason_parser.mly"
    ( raise_record_trailing_semi_error'
        (mklocation _startpos__4_ _endpos__4_) )
# 39038 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined2;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _2_inlined1 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _2_inlined1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1_inlined2 : (unit option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _3 =
            let (_startpos__1_inlined1_, _1_inlined1, _2) = (_startpos__1_inlined2_, _1_inlined2, _2_inlined1) in
            let _1 =
              let x =
                let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
                let _2 =
                  let _1 =
                    let _1 =
                      let _endpos = _endpos_x_ in
                      let _symbolstartpos = _startpos_x_ in
                      
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 39119 "src/reason-parser/reason_parser.ml"
                      
                    in
                    
# 3708 "src/reason-parser/reason_parser.mly"
                            ( (_1, exp_of_label _1) )
# 39125 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3713 "src/reason-parser/reason_parser.mly"
                    (_1)
# 39131 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__2_ = _endpos_x_ in
                
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 39143 "src/reason-parser/reason_parser.ml"
                
              in
              
# 188 "<standard.mly>"
    ( x )
# 39149 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 39155 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3688 "src/reason-parser/reason_parser.mly"
    ( raise_record_trailing_semi_error'
        (mklocation _startpos__4_ _endpos__4_) )
# 39162 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 =
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 39215 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 39221 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3691 "src/reason-parser/reason_parser.mly"
    ( (None, [_1]) )
# 39227 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 =
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 39280 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 39286 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3693 "src/reason-parser/reason_parser.mly"
    ( raise_record_trailing_semi_error'
        (mklocation _startpos__2_ _endpos__2_) )
# 39293 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3_inlined2;
              MenhirLib.EngineTypes.startp = _startpos__3_inlined2_;
              MenhirLib.EngineTypes.endp = _endpos__3_inlined2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined2;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined2_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = x_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _1_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = _3_inlined1;
                        MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
                        MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _;
                          MenhirLib.EngineTypes.semv = _2_inlined1;
                          MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                          MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = x;
                            MenhirLib.EngineTypes.startp = _startpos_x_;
                            MenhirLib.EngineTypes.endp = _endpos_x_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : (unit option) = Obj.magic _3 in
        let _2 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _2 in
        let _3_inlined2 : (Ppxlib.expression) = Obj.magic _3_inlined2 in
        let _2_inlined2 : unit = Obj.magic _2_inlined2 in
        let x_inlined1 : (Ppxlib.longident) = Obj.magic x_inlined1 in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _3_inlined1 : (Ppxlib.expression) = Obj.magic _3_inlined1 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let (_endpos__3_, _endpos_x_, _startpos_x_, _3, x) = (_endpos__3_inlined2_, _endpos_x_inlined1_, _startpos_x_inlined1_, _3_inlined2, x_inlined1) in
            let _1 =
              let x =
                let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
                let _2 =
                  let _1 =
                    let _1 =
                      let _endpos = _endpos_x_ in
                      let _symbolstartpos = _startpos_x_ in
                      
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 39395 "src/reason-parser/reason_parser.ml"
                      
                    in
                    
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 39401 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3712 "src/reason-parser/reason_parser.mly"
                        (_1)
# 39407 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__2_ = _endpos__3_ in
                
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 39419 "src/reason-parser/reason_parser.ml"
                
              in
              
# 188 "<standard.mly>"
    ( x )
# 39425 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 39431 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _3 = _3_inlined1 in
            let _1 =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 39443 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 39449 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3712 "src/reason-parser/reason_parser.mly"
                        (_1)
# 39455 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3696 "src/reason-parser/reason_parser.mly"
    ( let exprList = filter_raise_spread_syntax record_exp_spread_msg _2 in
      (None, _1 :: exprList) )
# 39462 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x_inlined1;
              MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _3_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _2_inlined1;
                      MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                      MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = x;
                        MenhirLib.EngineTypes.startp = _startpos_x_;
                        MenhirLib.EngineTypes.endp = _endpos_x_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : (unit option) = Obj.magic _3 in
        let _2 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _2 in
        let x_inlined1 : (Ppxlib.longident) = Obj.magic x_inlined1 in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _3_inlined1 : (Ppxlib.expression) = Obj.magic _3_inlined1 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let (_endpos_x_, _startpos_x_, x) = (_endpos_x_inlined1_, _startpos_x_inlined1_, x_inlined1) in
            let _1 =
              let x =
                let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
                let _2 =
                  let _1 =
                    let _1 =
                      let _endpos = _endpos_x_ in
                      let _symbolstartpos = _startpos_x_ in
                      
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 39550 "src/reason-parser/reason_parser.ml"
                      
                    in
                    
# 3708 "src/reason-parser/reason_parser.mly"
                            ( (_1, exp_of_label _1) )
# 39556 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3713 "src/reason-parser/reason_parser.mly"
                    (_1)
# 39562 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__2_ = _endpos_x_ in
                
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 39574 "src/reason-parser/reason_parser.ml"
                
              in
              
# 188 "<standard.mly>"
    ( x )
# 39580 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 39586 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _3 = _3_inlined1 in
            let _1 =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 39598 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 39604 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3712 "src/reason-parser/reason_parser.mly"
                        (_1)
# 39610 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3696 "src/reason-parser/reason_parser.mly"
    ( let exprList = filter_raise_spread_syntax record_exp_spread_msg _2 in
      (None, _1 :: exprList) )
# 39617 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = x_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _1_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = x;
                        MenhirLib.EngineTypes.startp = _startpos_x_;
                        MenhirLib.EngineTypes.endp = _endpos_x_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : (unit option) = Obj.magic _3 in
        let _2 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _2 in
        let _3_inlined1 : (Ppxlib.expression) = Obj.magic _3_inlined1 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let x_inlined1 : (Ppxlib.longident) = Obj.magic x_inlined1 in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let (_endpos__3_, _endpos_x_, _startpos_x_, _3, x) = (_endpos__3_inlined1_, _endpos_x_inlined1_, _startpos_x_inlined1_, _3_inlined1, x_inlined1) in
            let _1 =
              let x =
                let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
                let _2 =
                  let _1 =
                    let _1 =
                      let _endpos = _endpos_x_ in
                      let _symbolstartpos = _startpos_x_ in
                      
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 39705 "src/reason-parser/reason_parser.ml"
                      
                    in
                    
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 39711 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3712 "src/reason-parser/reason_parser.mly"
                        (_1)
# 39717 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__2_ = _endpos__3_ in
                
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 39729 "src/reason-parser/reason_parser.ml"
                
              in
              
# 188 "<standard.mly>"
    ( x )
# 39735 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 39741 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 39752 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3708 "src/reason-parser/reason_parser.mly"
                            ( (_1, exp_of_label _1) )
# 39758 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3713 "src/reason-parser/reason_parser.mly"
                    (_1)
# 39764 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3696 "src/reason-parser/reason_parser.mly"
    ( let exprList = filter_raise_spread_syntax record_exp_spread_msg _2 in
      (None, _1 :: exprList) )
# 39771 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x_inlined1;
              MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = x;
                    MenhirLib.EngineTypes.startp = _startpos_x_;
                    MenhirLib.EngineTypes.endp = _endpos_x_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : (unit option) = Obj.magic _3 in
        let _2 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _2 in
        let x_inlined1 : (Ppxlib.longident) = Obj.magic x_inlined1 in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let (_endpos_x_, _startpos_x_, x) = (_endpos_x_inlined1_, _startpos_x_inlined1_, x_inlined1) in
            let _1 =
              let x =
                let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
                let _2 =
                  let _1 =
                    let _1 =
                      let _endpos = _endpos_x_ in
                      let _symbolstartpos = _startpos_x_ in
                      
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 39845 "src/reason-parser/reason_parser.ml"
                      
                    in
                    
# 3708 "src/reason-parser/reason_parser.mly"
                            ( (_1, exp_of_label _1) )
# 39851 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3713 "src/reason-parser/reason_parser.mly"
                    (_1)
# 39857 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__2_ = _endpos_x_ in
                
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 39869 "src/reason-parser/reason_parser.ml"
                
              in
              
# 188 "<standard.mly>"
    ( x )
# 39875 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 39881 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 39892 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3708 "src/reason-parser/reason_parser.mly"
                            ( (_1, exp_of_label _1) )
# 39898 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3713 "src/reason-parser/reason_parser.mly"
                    (_1)
# 39904 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3696 "src/reason-parser/reason_parser.mly"
    ( let exprList = filter_raise_spread_syntax record_exp_spread_msg _2 in
      (None, _1 :: exprList) )
# 39911 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3_inlined2;
              MenhirLib.EngineTypes.startp = _startpos__3_inlined2_;
              MenhirLib.EngineTypes.endp = _endpos__3_inlined2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined2;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined2_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = x_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _1_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = _3_inlined1;
                        MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
                        MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _;
                          MenhirLib.EngineTypes.semv = _2_inlined1;
                          MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                          MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = x;
                            MenhirLib.EngineTypes.startp = _startpos_x_;
                            MenhirLib.EngineTypes.endp = _endpos_x_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _2 in
        let _3_inlined2 : (Ppxlib.expression) = Obj.magic _3_inlined2 in
        let _2_inlined2 : unit = Obj.magic _2_inlined2 in
        let x_inlined1 : (Ppxlib.longident) = Obj.magic x_inlined1 in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _3_inlined1 : (Ppxlib.expression) = Obj.magic _3_inlined1 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let (_endpos__3_, _endpos_x_, _startpos_x_, _3, x) = (_endpos__3_inlined2_, _endpos_x_inlined1_, _startpos_x_inlined1_, _3_inlined2, x_inlined1) in
            let _1 =
              let x =
                let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
                let _2 =
                  let _1 =
                    let _1 =
                      let _endpos = _endpos_x_ in
                      let _symbolstartpos = _startpos_x_ in
                      
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 40013 "src/reason-parser/reason_parser.ml"
                      
                    in
                    
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 40019 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3712 "src/reason-parser/reason_parser.mly"
                        (_1)
# 40025 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__2_ = _endpos__3_ in
                
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 40037 "src/reason-parser/reason_parser.ml"
                
              in
              
# 188 "<standard.mly>"
    ( x )
# 40043 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 40049 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _3 = _3_inlined1 in
            let _1 =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 40061 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 40067 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3712 "src/reason-parser/reason_parser.mly"
                        (_1)
# 40073 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3699 "src/reason-parser/reason_parser.mly"
    ( raise_record_trailing_semi_error'
        (mklocation _startpos__3_ _endpos__3_) )
# 40080 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x_inlined1;
              MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _3_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _2_inlined1;
                      MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                      MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = x;
                        MenhirLib.EngineTypes.startp = _startpos_x_;
                        MenhirLib.EngineTypes.endp = _endpos_x_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _2 in
        let x_inlined1 : (Ppxlib.longident) = Obj.magic x_inlined1 in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _3_inlined1 : (Ppxlib.expression) = Obj.magic _3_inlined1 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let (_endpos_x_, _startpos_x_, x) = (_endpos_x_inlined1_, _startpos_x_inlined1_, x_inlined1) in
            let _1 =
              let x =
                let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
                let _2 =
                  let _1 =
                    let _1 =
                      let _endpos = _endpos_x_ in
                      let _symbolstartpos = _startpos_x_ in
                      
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 40168 "src/reason-parser/reason_parser.ml"
                      
                    in
                    
# 3708 "src/reason-parser/reason_parser.mly"
                            ( (_1, exp_of_label _1) )
# 40174 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3713 "src/reason-parser/reason_parser.mly"
                    (_1)
# 40180 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__2_ = _endpos_x_ in
                
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 40192 "src/reason-parser/reason_parser.ml"
                
              in
              
# 188 "<standard.mly>"
    ( x )
# 40198 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 40204 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _3 = _3_inlined1 in
            let _1 =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 40216 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 40222 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3712 "src/reason-parser/reason_parser.mly"
                        (_1)
# 40228 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3699 "src/reason-parser/reason_parser.mly"
    ( raise_record_trailing_semi_error'
        (mklocation _startpos__3_ _endpos__3_) )
# 40235 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__3_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__3_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = x_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _1_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = x;
                        MenhirLib.EngineTypes.startp = _startpos_x_;
                        MenhirLib.EngineTypes.endp = _endpos_x_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _2 in
        let _3_inlined1 : (Ppxlib.expression) = Obj.magic _3_inlined1 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let x_inlined1 : (Ppxlib.longident) = Obj.magic x_inlined1 in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let (_endpos__3_, _endpos_x_, _startpos_x_, _3, x) = (_endpos__3_inlined1_, _endpos_x_inlined1_, _startpos_x_inlined1_, _3_inlined1, x_inlined1) in
            let _1 =
              let x =
                let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
                let _2 =
                  let _1 =
                    let _1 =
                      let _endpos = _endpos_x_ in
                      let _symbolstartpos = _startpos_x_ in
                      
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 40323 "src/reason-parser/reason_parser.ml"
                      
                    in
                    
# 3704 "src/reason-parser/reason_parser.mly"
                                       ( (_1, _3) )
# 40329 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3712 "src/reason-parser/reason_parser.mly"
                        (_1)
# 40335 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__2_ = _endpos__3_ in
                
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 40347 "src/reason-parser/reason_parser.ml"
                
              in
              
# 188 "<standard.mly>"
    ( x )
# 40353 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 40359 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 40370 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3708 "src/reason-parser/reason_parser.mly"
                            ( (_1, exp_of_label _1) )
# 40376 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3713 "src/reason-parser/reason_parser.mly"
                    (_1)
# 40382 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3699 "src/reason-parser/reason_parser.mly"
    ( raise_record_trailing_semi_error'
        (mklocation _startpos__3_ _endpos__3_) )
# 40389 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x_inlined1;
              MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = x;
                    MenhirLib.EngineTypes.startp = _startpos_x_;
                    MenhirLib.EngineTypes.endp = _endpos_x_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) = Obj.magic _2 in
        let x_inlined1 : (Ppxlib.longident) = Obj.magic x_inlined1 in
        let _1_inlined1 : (unit option) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let (_endpos_x_, _startpos_x_, x) = (_endpos_x_inlined1_, _startpos_x_inlined1_, x_inlined1) in
            let _1 =
              let x =
                let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
                let _2 =
                  let _1 =
                    let _1 =
                      let _endpos = _endpos_x_ in
                      let _symbolstartpos = _startpos_x_ in
                      
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 40463 "src/reason-parser/reason_parser.ml"
                      
                    in
                    
# 3708 "src/reason-parser/reason_parser.mly"
                            ( (_1, exp_of_label _1) )
# 40469 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3713 "src/reason-parser/reason_parser.mly"
                    (_1)
# 40475 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__2_ = _endpos_x_ in
                
# 5373 "src/reason-parser/reason_parser.mly"
    ( let dotdotdot = match _1 with
      | Some _ -> Some (mklocation _startpos__1_ _endpos__2_)
      | None -> None
      in
      (dotdotdot, _2)
    )
# 40487 "src/reason-parser/reason_parser.ml"
                
              in
              
# 188 "<standard.mly>"
    ( x )
# 40493 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 40499 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 40510 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3708 "src/reason-parser/reason_parser.mly"
                            ( (_1, exp_of_label _1) )
# 40516 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3713 "src/reason-parser/reason_parser.mly"
                    (_1)
# 40522 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3699 "src/reason-parser/reason_parser.mly"
    ( raise_record_trailing_semi_error'
        (mklocation _startpos__3_ _endpos__3_) )
# 40529 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : ((Ppxlib.longident Location.loc * Ppxlib.expression) list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list) = 
# 3718 "src/reason-parser/reason_parser.mly"
    ( (Some _2, _4) )
# 40578 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (unit option) = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : 
# 1244 "src/reason-parser/reason_parser.mly"
       (string * string option * string option)
# 40620 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _endpos = _endpos__4_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 3720 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let (s, _, _) = _1 in
      let lident_lident_loc = mkloc (Ppxlib.Longident.Lident s) loc in
      (None, [(lident_lident_loc, _3)])
    )
# 40635 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : ((Ppxlib.longident Location.loc * Ppxlib.expression) list) = Obj.magic _2 in
        let _1 : (Ppxlib.longident Location.loc * Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list) = 
# 3725 "src/reason-parser/reason_parser.mly"
                                                                                  (
    (None, _1 :: _2)
  )
# 40672 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 40699 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _2 : (Ppxlib.mutable_flag) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 40712 "src/reason-parser/reason_parser.ml"
            
          in
          let (_endpos__3_, _startpos__3_) = (_endpos_x_, _startpos_x_) in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 40719 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            if _startpos__2_ != _endpos__2_ then
              _startpos__2_
            else
              _startpos__3_ in
          (
# 4341 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      Ast_helper.Type.field _3 (mkct _3) ~attrs:_1 ~mut:_2 ~loc
    )
# 40735 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.label_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 40769 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _2 : (Ppxlib.mutable_flag) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 40783 "src/reason-parser/reason_parser.ml"
            
          in
          let (_endpos__3_, _startpos__3_) = (_endpos_x_, _startpos_x_) in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 40791 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 40796 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            if _startpos__2_ != _endpos__2_ then
              _startpos__2_
            else
              _startpos__3_ in
          (
# 4341 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      Ast_helper.Type.field _3 (mkct _3) ~attrs:_1 ~mut:_2 ~loc
    )
# 40812 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.label_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.core_type) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 40854 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _2 : (Ppxlib.mutable_flag) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 40867 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__3_ = _startpos_x_ in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 40874 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            if _startpos__2_ != _endpos__2_ then
              _startpos__2_
            else
              _startpos__3_ in
          (
# 4345 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      Ast_helper.Type.field _3 _5 ~attrs:_1 ~mut:_2 ~loc
    )
# 40890 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.label_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.core_type) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 40938 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _2 : (Ppxlib.mutable_flag) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 40952 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__3_ = _startpos_x_ in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 40960 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 40965 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            if _startpos__2_ != _endpos__2_ then
              _startpos__2_
            else
              _startpos__3_ in
          (
# 4345 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      Ast_helper.Type.field _3 _5 ~attrs:_1 ~mut:_2 ~loc
    )
# 40981 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.label_declaration))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.row_field) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.row_field) = 
# 4843 "src/reason-parser/reason_parser.mly"
                          ( _1 )
# 41007 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4845 "src/reason-parser/reason_parser.mly"
    ( Ast_helper.Rf.inherit_ ~loc:(mklocation _symbolstartpos _endpos) _1 )
# 41035 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.row_field))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.row_field list) = Obj.magic _2 in
        let _1 : (Ppxlib.row_field) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.row_field list) = 
# 4838 "src/reason-parser/reason_parser.mly"
                             ( _1 :: _2 )
# 41068 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.row_field list) = Obj.magic _2 in
        let _1 : (Ppxlib.row_field) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.row_field list) = 
# 4839 "src/reason-parser/reason_parser.mly"
                                 ( _1 :: _2 )
# 41100 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.core_type) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v : (Ppxlib.core_type list) = 
# 250 "<standard.mly>"
    ( [ x ] )
# 41125 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let xs : (Ppxlib.core_type list) = Obj.magic xs in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.core_type) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_xs_ in
        let _v : (Ppxlib.core_type list) = 
# 253 "<standard.mly>"
    ( x :: xs )
# 41164 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 2672 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 41191 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 41201 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2680 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 41207 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.expression) = Obj.magic x in
        let _1 : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 41248 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2674 "src/reason-parser/reason_parser.mly"
    ( expression_extension _1 _2 )
# 41254 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 41265 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2680 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 41271 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 2676 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_sequence(_1, _3)) )
# 41313 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 41323 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2680 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 41329 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x = 
# 2678 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos__1_ _endpos__2_ in
      mkexp (Pexp_sequence(expression_extension ~loc _1 _2, _4)) )
# 41379 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 41389 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2680 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 41395 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 2672 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 41423 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 41433 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2680 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 41439 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.expression) = Obj.magic x in
        let _1 : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 41480 "src/reason-parser/reason_parser.ml"
                
              in
              
# 2674 "src/reason-parser/reason_parser.mly"
    ( expression_extension _1 _2 )
# 41486 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 41497 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2680 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 41503 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 2676 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_sequence(_1, _3)) )
# 41545 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 41555 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2680 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 41561 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x = 
# 2678 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos__1_ _endpos__2_ in
      mkexp (Pexp_sequence(expression_extension ~loc _1 _2, _4)) )
# 41611 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 41621 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2680 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 41627 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.expression) = 
# 2625 "src/reason-parser/reason_parser.mly"
            ( _1 )
# 41660 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.module_expr) = Obj.magic _2 in
        let _1 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _endpos = _endpos__4_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 2627 "src/reason-parser/reason_parser.mly"
 ( let loc = mklocation _symbolstartpos _endpos in
   let ext, letmod = _1 in
   let exp = mkexp (Pexp_letmodule(letmod, _2, _4)) in
   match ext with
   | None -> exp
   | Some (ext_attrs, ext_id) ->
     mkexp ~loc (Pexp_extension (ext_id, PStr [mkstrexp exp ext_attrs]))
  )
# 41717 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : (Ppxlib.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.module_expr) = Obj.magic _5 in
        let _4 : (Ppxlib.override_flag) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 41779 "src/reason-parser/reason_parser.ml"
           in
          let _startpos__1_ = _endpos__0_ in
          (
# 2636 "src/reason-parser/reason_parser.mly"
  ( let loc = (mklocation _startpos__1_ _endpos__4_) in
    let od = Ast_helper.Opn.mk ~override:_4 ~loc _5 in
    let exp = mkexp (Pexp_open(od, _7)) in
    { exp with pexp_attributes = _1 }
  )
# 41789 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : (Ppxlib.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.module_expr) = Obj.magic _5 in
        let _4 : (Ppxlib.override_flag) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 41859 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 41864 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2636 "src/reason-parser/reason_parser.mly"
  ( let loc = (mklocation _startpos__1_ _endpos__4_) in
    let od = Ast_helper.Opn.mk ~override:_4 ~loc _5 in
    let exp = mkexp (Pexp_open(od, _7)) in
    { exp with pexp_attributes = _1 }
  )
# 41874 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : (Ppxlib.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.module_expr) = Obj.magic _5 in
        let _4 : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 41936 "src/reason-parser/reason_parser.ml"
           in
          let _startpos__1_ = _endpos__0_ in
          (
# 2642 "src/reason-parser/reason_parser.mly"
  ( let loc = (mklocation _startpos__1_ _endpos__4_) in
    let od = Ast_helper.Opn.mk ~override:Fresh ~loc _5 in
    let exp =
      let exp = mkexp (Pexp_open(od, _7)) in
      { exp with pexp_attributes = _1 }
    in
    let (ext_attrs, ext_id)  = _4 in
    mkexp ~loc (Pexp_extension (ext_id, PStr [mkstrexp exp ext_attrs]))
  )
# 41950 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : (Ppxlib.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.module_expr) = Obj.magic _5 in
        let _4 : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 42020 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 42025 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2642 "src/reason-parser/reason_parser.mly"
  ( let loc = (mklocation _startpos__1_ _endpos__4_) in
    let od = Ast_helper.Opn.mk ~override:Fresh ~loc _5 in
    let exp =
      let exp = mkexp (Pexp_open(od, _7)) in
      { exp with pexp_attributes = _1 }
    in
    let (ext_attrs, ext_id)  = _4 in
    mkexp ~loc (Pexp_extension (ext_id, PStr [mkstrexp exp ext_attrs]))
  )
# 42039 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.extension_constructor) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.expression) = 
# 2651 "src/reason-parser/reason_parser.mly"
                                                 (
   mkexp (Pexp_letexception (_1, _3)) )
# 42080 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Reason_parser_def.let_bindings) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.expression) = 
# 2654 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__3_ in
    expr_of_let_bindings ~loc _1 _3
  )
# 42121 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Reason_parser_def.let_bindings) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 2658 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _symbolstartpos _endpos in
    expr_of_let_bindings ~loc _1 (ghunit ~loc ())
  )
# 42158 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.binding_op list) = Obj.magic _3 in
        let x : 
# 1182 "src/reason-parser/reason_parser.mly"
       (string)
# 42201 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 42213 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos_x_ in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 42220 "src/reason-parser/reason_parser.ml"
           in
          (
# 2662 "src/reason-parser/reason_parser.mly"
  ( let (pbop_pat, pbop_exp, rev_ands) = _3 in
    let ands = List.rev rev_ands in
    let pbop_loc = mklocation _startpos__2_ _endpos__3_ in
    let let_ = {Ppxlib.pbop_op = _2; pbop_pat; pbop_exp; pbop_loc} in
    mkexp ~attrs:_1 ~loc:pbop_loc (Pexp_letop { let_; ands; body = _5}) )
# 42229 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.binding_op list) = Obj.magic _3 in
        let x : 
# 1182 "src/reason-parser/reason_parser.mly"
       (string)
# 42278 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 42291 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos_x_ in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 42299 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 42304 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2662 "src/reason-parser/reason_parser.mly"
  ( let (pbop_pat, pbop_exp, rev_ands) = _3 in
    let ands = List.rev rev_ands in
    let pbop_loc = mklocation _startpos__2_ _endpos__3_ in
    let let_ = {Ppxlib.pbop_op = _2; pbop_pat; pbop_exp; pbop_loc} in
    mkexp ~attrs:_1 ~loc:pbop_loc (Pexp_letop { let_; ands; body = _5}) )
# 42314 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.expression) = 
# 2625 "src/reason-parser/reason_parser.mly"
            ( _1 )
# 42347 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.module_expr) = Obj.magic _2 in
        let _1 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _endpos = _endpos__4_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 2627 "src/reason-parser/reason_parser.mly"
 ( let loc = mklocation _symbolstartpos _endpos in
   let ext, letmod = _1 in
   let exp = mkexp (Pexp_letmodule(letmod, _2, _4)) in
   match ext with
   | None -> exp
   | Some (ext_attrs, ext_id) ->
     mkexp ~loc (Pexp_extension (ext_id, PStr [mkstrexp exp ext_attrs]))
  )
# 42404 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : (Ppxlib.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.module_expr) = Obj.magic _5 in
        let _4 : (Ppxlib.override_flag) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 42466 "src/reason-parser/reason_parser.ml"
           in
          let _startpos__1_ = _endpos__0_ in
          (
# 2636 "src/reason-parser/reason_parser.mly"
  ( let loc = (mklocation _startpos__1_ _endpos__4_) in
    let od = Ast_helper.Opn.mk ~override:_4 ~loc _5 in
    let exp = mkexp (Pexp_open(od, _7)) in
    { exp with pexp_attributes = _1 }
  )
# 42476 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : (Ppxlib.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.module_expr) = Obj.magic _5 in
        let _4 : (Ppxlib.override_flag) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 42546 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 42551 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2636 "src/reason-parser/reason_parser.mly"
  ( let loc = (mklocation _startpos__1_ _endpos__4_) in
    let od = Ast_helper.Opn.mk ~override:_4 ~loc _5 in
    let exp = mkexp (Pexp_open(od, _7)) in
    { exp with pexp_attributes = _1 }
  )
# 42561 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : (Ppxlib.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.module_expr) = Obj.magic _5 in
        let _4 : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 42623 "src/reason-parser/reason_parser.ml"
           in
          let _startpos__1_ = _endpos__0_ in
          (
# 2642 "src/reason-parser/reason_parser.mly"
  ( let loc = (mklocation _startpos__1_ _endpos__4_) in
    let od = Ast_helper.Opn.mk ~override:Fresh ~loc _5 in
    let exp =
      let exp = mkexp (Pexp_open(od, _7)) in
      { exp with pexp_attributes = _1 }
    in
    let (ext_attrs, ext_id)  = _4 in
    mkexp ~loc (Pexp_extension (ext_id, PStr [mkstrexp exp ext_attrs]))
  )
# 42637 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : (Ppxlib.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.module_expr) = Obj.magic _5 in
        let _4 : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 42707 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 42712 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2642 "src/reason-parser/reason_parser.mly"
  ( let loc = (mklocation _startpos__1_ _endpos__4_) in
    let od = Ast_helper.Opn.mk ~override:Fresh ~loc _5 in
    let exp =
      let exp = mkexp (Pexp_open(od, _7)) in
      { exp with pexp_attributes = _1 }
    in
    let (ext_attrs, ext_id)  = _4 in
    mkexp ~loc (Pexp_extension (ext_id, PStr [mkstrexp exp ext_attrs]))
  )
# 42726 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.extension_constructor) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.expression) = 
# 2651 "src/reason-parser/reason_parser.mly"
                                                 (
   mkexp (Pexp_letexception (_1, _3)) )
# 42767 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Reason_parser_def.let_bindings) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.expression) = 
# 2654 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__3_ in
    expr_of_let_bindings ~loc _1 _3
  )
# 42808 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : (Reason_parser_def.let_bindings) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 2658 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _symbolstartpos _endpos in
    expr_of_let_bindings ~loc _1 (ghunit ~loc ())
  )
# 42845 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.binding_op list) = Obj.magic _3 in
        let x : 
# 1182 "src/reason-parser/reason_parser.mly"
       (string)
# 42888 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 42900 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos_x_ in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 42907 "src/reason-parser/reason_parser.ml"
           in
          (
# 2662 "src/reason-parser/reason_parser.mly"
  ( let (pbop_pat, pbop_exp, rev_ands) = _3 in
    let ands = List.rev rev_ands in
    let pbop_loc = mklocation _startpos__2_ _endpos__3_ in
    let let_ = {Ppxlib.pbop_op = _2; pbop_pat; pbop_exp; pbop_loc} in
    mkexp ~attrs:_1 ~loc:pbop_loc (Pexp_letop { let_; ands; body = _5}) )
# 42916 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.binding_op list) = Obj.magic _3 in
        let x : 
# 1182 "src/reason-parser/reason_parser.mly"
       (string)
# 42965 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 42978 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos_x_ in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 42986 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 42991 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2662 "src/reason-parser/reason_parser.mly"
  ( let (pbop_pat, pbop_exp, rev_ands) = _3 in
    let ands = List.rev rev_ands in
    let pbop_loc = mklocation _startpos__2_ _endpos__3_ in
    let let_ = {Ppxlib.pbop_op = _2; pbop_pat; pbop_exp; pbop_loc} in
    mkexp ~attrs:_1 ~loc:pbop_loc (Pexp_letop { let_; ands; body = _5}) )
# 43001 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.extension_constructor) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 43035 "src/reason-parser/reason_parser.ml"
           in
          (
# 4311 "src/reason-parser/reason_parser.mly"
  ( let decl =
      let ext: Ppxlib.extension_constructor = _3 in
      { ext with pext_attributes = ext.pext_attributes @ _1}
    in
    Ast_helper.Te.mk_exception ~loc:decl.pext_loc decl
  )
# 43045 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_exception))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.extension_constructor) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 43087 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 43092 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4311 "src/reason-parser/reason_parser.mly"
  ( let decl =
      let ext: Ppxlib.extension_constructor = _3 in
      { ext with pext_attributes = ext.pext_attributes @ _1}
    in
    Ast_helper.Te.mk_exception ~loc:decl.pext_loc decl
  )
# 43103 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_exception))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = flag;
                    MenhirLib.EngineTypes.startp = _startpos_flag_;
                    MenhirLib.EngineTypes.endp = _endpos_flag_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _6 : unit = Obj.magic _6 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 43165 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let x = 
# 4982 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident _1 )
# 43177 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 43185 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 43191 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos_constructors_ in
          (
# 4397 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~params ~priv ~attrs ident constructors, loc, None)
  )
# 43201 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = flag;
                        MenhirLib.EngineTypes.startp = _startpos_flag_;
                        MenhirLib.EngineTypes.endp = _endpos_flag_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _menhir_s;
                          MenhirLib.EngineTypes.semv = _2;
                          MenhirLib.EngineTypes.startp = _startpos__2_;
                          MenhirLib.EngineTypes.endp = _endpos__2_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _6 : unit = Obj.magic _6 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _3 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 43276 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let x = 
# 4983 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Ldot(_1, _3) )
# 43290 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 43298 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 43304 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos_constructors_ in
          (
# 4397 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~params ~priv ~attrs ident constructors, loc, None)
  )
# 43314 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = flag;
                    MenhirLib.EngineTypes.startp = _startpos_flag_;
                    MenhirLib.EngineTypes.endp = _endpos_flag_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _6 : unit = Obj.magic _6 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 43383 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 4982 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident _1 )
# 43397 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 43405 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 43412 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 43417 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos_constructors_ in
          (
# 4397 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~params ~priv ~attrs ident constructors, loc, None)
  )
# 43428 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1_inlined1;
                      MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = flag;
                        MenhirLib.EngineTypes.startp = _startpos_flag_;
                        MenhirLib.EngineTypes.endp = _endpos_flag_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _;
                          MenhirLib.EngineTypes.semv = _2;
                          MenhirLib.EngineTypes.startp = _startpos__2_;
                          MenhirLib.EngineTypes.endp = _endpos__2_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = _1;
                            MenhirLib.EngineTypes.startp = _startpos__1_;
                            MenhirLib.EngineTypes.endp = _endpos__1_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _6 : unit = Obj.magic _6 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _3 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 43509 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Ppxlib.longident) = Obj.magic _1_inlined1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 4983 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Ldot(_1, _3) )
# 43525 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 43533 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 43540 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 43545 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos_constructors_ in
          (
# 4397 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~params ~priv ~attrs ident constructors, loc, None)
  )
# 43556 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _7;
              MenhirLib.EngineTypes.startp = _startpos__7_;
              MenhirLib.EngineTypes.endp = _endpos__7_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = flag;
                    MenhirLib.EngineTypes.startp = _startpos_flag_;
                    MenhirLib.EngineTypes.endp = _endpos_flag_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = extension;
                      MenhirLib.EngineTypes.startp = _startpos_extension_;
                      MenhirLib.EngineTypes.endp = _endpos_extension_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _2;
                        MenhirLib.EngineTypes.startp = _startpos__2_;
                        MenhirLib.EngineTypes.endp = _endpos__2_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _7 : unit = Obj.magic _7 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 43625 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let extension : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic extension in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let x = 
# 4982 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident _1 )
# 43638 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 43646 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 43652 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos_constructors_ in
          (
# 4411 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~params ~priv ~attrs ident constructors, loc, Some extension)
  )
# 43662 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _7;
              MenhirLib.EngineTypes.startp = _startpos__7_;
              MenhirLib.EngineTypes.endp = _endpos__7_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = flag;
                        MenhirLib.EngineTypes.startp = _startpos_flag_;
                        MenhirLib.EngineTypes.endp = _endpos_flag_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _;
                          MenhirLib.EngineTypes.semv = extension;
                          MenhirLib.EngineTypes.startp = _startpos_extension_;
                          MenhirLib.EngineTypes.endp = _endpos_extension_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = _2;
                            MenhirLib.EngineTypes.startp = _startpos__2_;
                            MenhirLib.EngineTypes.endp = _endpos__2_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _7 : unit = Obj.magic _7 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _3 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 43743 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let extension : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic extension in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let x = 
# 4983 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Ldot(_1, _3) )
# 43758 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 43766 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 43772 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos_constructors_ in
          (
# 4411 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~params ~priv ~attrs ident constructors, loc, Some extension)
  )
# 43782 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _7;
              MenhirLib.EngineTypes.startp = _startpos__7_;
              MenhirLib.EngineTypes.endp = _endpos__7_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = flag;
                    MenhirLib.EngineTypes.startp = _startpos_flag_;
                    MenhirLib.EngineTypes.endp = _endpos_flag_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = extension;
                      MenhirLib.EngineTypes.startp = _startpos_extension_;
                      MenhirLib.EngineTypes.endp = _endpos_extension_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = _2;
                        MenhirLib.EngineTypes.startp = _startpos__2_;
                        MenhirLib.EngineTypes.endp = _endpos__2_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _menhir_s;
                          MenhirLib.EngineTypes.semv = _1;
                          MenhirLib.EngineTypes.startp = _startpos__1_;
                          MenhirLib.EngineTypes.endp = _endpos__1_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _7 : unit = Obj.magic _7 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 43857 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let extension : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic extension in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 4982 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident _1 )
# 43872 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 43880 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 43887 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 43892 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos_constructors_ in
          (
# 4411 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~params ~priv ~attrs ident constructors, loc, Some extension)
  )
# 43903 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _7;
              MenhirLib.EngineTypes.startp = _startpos__7_;
              MenhirLib.EngineTypes.endp = _endpos__7_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1_inlined1;
                      MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = flag;
                        MenhirLib.EngineTypes.startp = _startpos_flag_;
                        MenhirLib.EngineTypes.endp = _endpos_flag_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _;
                          MenhirLib.EngineTypes.semv = extension;
                          MenhirLib.EngineTypes.startp = _startpos_extension_;
                          MenhirLib.EngineTypes.endp = _endpos_extension_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _;
                            MenhirLib.EngineTypes.semv = _2;
                            MenhirLib.EngineTypes.startp = _startpos__2_;
                            MenhirLib.EngineTypes.endp = _endpos__2_;
                            MenhirLib.EngineTypes.next = {
                              MenhirLib.EngineTypes.state = _menhir_s;
                              MenhirLib.EngineTypes.semv = _1;
                              MenhirLib.EngineTypes.startp = _startpos__1_;
                              MenhirLib.EngineTypes.endp = _endpos__1_;
                              MenhirLib.EngineTypes.next = _menhir_stack;
                            };
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _7 : unit = Obj.magic _7 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _3 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 43990 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Ppxlib.longident) = Obj.magic _1_inlined1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let extension : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic extension in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 4983 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Ldot(_1, _3) )
# 44007 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 44015 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 44022 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 44027 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos_constructors_ in
          (
# 4411 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~params ~priv ~attrs ident constructors, loc, Some extension)
  )
# 44038 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.signature) = 
# 1942 "src/reason-parser/reason_parser.mly"
                ( [] )
# 44058 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.signature) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.signature) = 
# 1943 "src/reason-parser/reason_parser.mly"
                    ( _1 )
# 44083 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.signature) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.signature) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.signature) = 
# 1944 "src/reason-parser/reason_parser.mly"
                                   ( _1 @ _3 )
# 44122 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let x : (string) = Obj.magic x in
        let _3 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 44179 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 44185 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos__6_ in
          (
# 1950 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos__2_ _endpos in
      wrap_sig_ext
        ~loc
        (Psig_value (Ast_helper.Val.mk _4 _6 ~attrs:_1 ~loc))
        _3
    )
# 44196 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let x : (string) = Obj.magic x in
        let _3 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 44261 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 44268 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 44273 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__6_ in
          (
# 1950 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos__2_ _endpos in
      wrap_sig_ext
        ~loc
        (Psig_value (Ast_helper.Val.mk _4 _6 ~attrs:_1 ~loc))
        _3
    )
# 44285 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _8;
          MenhirLib.EngineTypes.startp = _startpos__8_;
          MenhirLib.EngineTypes.endp = _endpos__8_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _7;
            MenhirLib.EngineTypes.startp = _startpos__7_;
            MenhirLib.EngineTypes.endp = _endpos__7_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _5;
                MenhirLib.EngineTypes.startp = _startpos__5_;
                MenhirLib.EngineTypes.endp = _endpos__5_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _3;
                    MenhirLib.EngineTypes.startp = _startpos__3_;
                    MenhirLib.EngineTypes.endp = _endpos__3_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _8 : (string list) = Obj.magic _8 in
        let _7 : unit = Obj.magic _7 in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let x : (string) = Obj.magic x in
        let _3 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__8_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 44357 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 44363 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__8_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 1958 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      wrap_sig_ext
        ~loc
        (Psig_value (Ast_helper.Val.mk _4 _6 ~prim:_8 ~attrs:_1 ~loc))
        _3
    )
# 44379 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _8;
          MenhirLib.EngineTypes.startp = _startpos__8_;
          MenhirLib.EngineTypes.endp = _endpos__8_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _7;
            MenhirLib.EngineTypes.startp = _startpos__7_;
            MenhirLib.EngineTypes.endp = _endpos__7_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _5;
                MenhirLib.EngineTypes.startp = _startpos__5_;
                MenhirLib.EngineTypes.endp = _endpos__5_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _3;
                    MenhirLib.EngineTypes.startp = _startpos__3_;
                    MenhirLib.EngineTypes.endp = _endpos__3_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _8 : (string list) = Obj.magic _8 in
        let _7 : unit = Obj.magic _7 in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let x : (string) = Obj.magic x in
        let _3 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__8_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 44458 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 44465 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 44470 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__8_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 1958 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      wrap_sig_ext
        ~loc
        (Psig_value (Ast_helper.Val.mk _4 _6 ~prim:_8 ~attrs:_1 ~loc))
        _3
    )
# 44486 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : unit = Obj.magic _7 in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let x : (string) = Obj.magic x in
        let _3 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 44551 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 44557 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__7_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 1966 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      wrap_sig_ext
        ~loc
        (Psig_value (Ast_helper.Val.mk _4 _6 ~prim:[""] ~attrs:_1 ~loc))
        _3
    )
# 44573 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : unit = Obj.magic _7 in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let x : (string) = Obj.magic x in
        let _3 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 44645 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 44652 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 44657 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__7_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 1966 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      wrap_sig_ext
        ~loc
        (Psig_value (Ast_helper.Val.mk _4 _6 ~prim:[""] ~attrs:_1 ~loc))
        _3
    )
# 44673 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.rec_flag * Ppxlib.type_declaration list * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.signature_item_desc) = 
# 1973 "src/reason-parser/reason_parser.mly"
    ( let (nonrec_flag, tyl, loc, extension) = _1 in
      wrap_sig_ext
        ~loc
        (Psig_type (nonrec_flag, tyl))
        extension
    )
# 44705 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.type_declaration list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.signature_item_desc) = 
# 1980 "src/reason-parser/reason_parser.mly"
    ( Psig_typesubst _1 )
# 44730 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.signature_item_desc) = 
# 1982 "src/reason-parser/reason_parser.mly"
    ( let (typext, loc, extension) = _1 in
      wrap_sig_ext
        ~loc
        (Psig_typext typext)
        extension
     )
# 44761 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.type_exception) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.signature_item_desc) = 
# 1989 "src/reason-parser/reason_parser.mly"
    ( Psig_exception _1 )
# 44786 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.module_type) = Obj.magic _3 in
        let _2 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 44820 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 1991 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let ext, letmod = _2 in
      wrap_sig_ext
        ~loc
        (Psig_module (Ast_helper.Md.mk letmod _3 ~attrs:_1 ~loc))
        ext
    )
# 44837 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.module_type) = Obj.magic _3 in
        let _2 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 44880 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 44885 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 1991 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let ext, letmod = _2 in
      wrap_sig_ext
        ~loc
        (Psig_module (Ast_helper.Md.mk letmod _3 ~attrs:_1 ~loc))
        ext
    )
# 44902 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _3 : unit = Obj.magic _3 in
        let _2 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 44947 "src/reason-parser/reason_parser.ml"
            
          in
          let (_endpos__4_, _startpos__4_) = (_endpos_x_, _startpos_x_) in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 44954 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 1999 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let loc_mod = mklocation _startpos__4_ _endpos__4_ in
      let ext, letmod = _2 in
      wrap_sig_ext
        ~loc
        (Psig_module
          (Ast_helper.Md.mk
            letmod
            (Ast_helper.Mty.alias ~loc:loc_mod _4)
            ~attrs:_1
            ~loc))
        ext
    )
# 44977 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _3 : unit = Obj.magic _3 in
        let _2 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 45029 "src/reason-parser/reason_parser.ml"
            
          in
          let (_endpos__4_, _startpos__4_) = (_endpos_x_, _startpos_x_) in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 45037 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 45042 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 1999 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let loc_mod = mklocation _startpos__4_ _endpos__4_ in
      let ext, letmod = _2 in
      wrap_sig_ext
        ~loc
        (Psig_module
          (Ast_helper.Md.mk
            letmod
            (Ast_helper.Mty.alias ~loc:loc_mod _4)
            ~attrs:_1
            ~loc))
        ext
    )
# 45065 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x_inlined1;
          MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x_inlined1 : (Ppxlib.longident) = Obj.magic x_inlined1 in
        let _4 : unit = Obj.magic _4 in
        let x : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 45107 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _2 : (unit) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_x_inlined1_ in
        let _v =
          let _5 =
            let (_endpos_x_, _startpos_x_, x) = (_endpos_x_inlined1_, _startpos_x_inlined1_, x_inlined1) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 45121 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__5_ = _endpos_x_inlined1_ in
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 45131 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 45137 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2013 "src/reason-parser/reason_parser.mly"
    ( Psig_modsubst (Ast_helper.Ms.mk _3 _5 ~attrs:_1 ~loc:(mklocation _symbolstartpos _endpos)))
# 45148 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x_inlined1;
          MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let x_inlined1 : (Ppxlib.longident) = Obj.magic x_inlined1 in
        let _4 : unit = Obj.magic _4 in
        let x : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 45196 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _2 : (unit) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_inlined1_ in
        let _v =
          let _5 =
            let (_endpos_x_, _startpos_x_, x) = (_endpos_x_inlined1_, _startpos_x_inlined1_, x_inlined1) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 45211 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__5_ = _endpos_x_inlined1_ in
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 45221 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 45228 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 45233 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2013 "src/reason-parser/reason_parser.mly"
    ( Psig_modsubst (Ast_helper.Ms.mk _3 _5 ~attrs:_1 ~loc:(mklocation _symbolstartpos _endpos)))
# 45244 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.module_declaration list) = Obj.magic _4 in
        let _3 : (Ppxlib.module_type) = Obj.magic _3 in
        let _2 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 45286 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2016 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos__3_ in
      let ext, letmodule = _2 in
      wrap_sig_ext
        ~loc
        (Psig_recmodule (Ast_helper.Md.mk letmodule _3 ~attrs:_1 ~loc :: _4))
        ext
    )
# 45302 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.module_declaration list) = Obj.magic _4 in
        let _3 : (Ppxlib.module_type) = Obj.magic _3 in
        let _2 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 45352 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 45357 "src/reason-parser/reason_parser.ml"
            
          in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2016 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos__3_ in
      let ext, letmodule = _2 in
      wrap_sig_ext
        ~loc
        (Psig_recmodule (Ast_helper.Md.mk letmodule _3 ~attrs:_1 ~loc :: _4))
        ext
    )
# 45373 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (string) = Obj.magic x in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 45417 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__4_ = _endpos_x_ in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 45424 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2024 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      Psig_modtype (Ast_helper.Mtd.mk _4 ~attrs:_1 ~loc)
    )
# 45437 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x : (string) = Obj.magic x in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 45488 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__4_ = _endpos_x_ in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 45496 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 45501 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2024 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      Psig_modtype (Ast_helper.Mtd.mk _4 ~attrs:_1 ~loc)
    )
# 45514 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.module_type) = Obj.magic _5 in
        let x : (string) = Obj.magic x in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 45565 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 45571 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2028 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      Psig_modtype (Ast_helper.Mtd.mk _4 ~typ:_5 ~loc ~attrs:_1)
    )
# 45584 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.module_type) = Obj.magic _5 in
        let x : (string) = Obj.magic x in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 45642 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 45649 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 45654 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2028 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      Psig_modtype (Ast_helper.Mtd.mk _4 ~typ:_5 ~loc ~attrs:_1)
    )
# 45667 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.module_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let x : (string) = Obj.magic x in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 45725 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 45731 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__6_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2032 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      Psig_modtypesubst (Ast_helper.Mtd.mk _4 ~typ:_6 ~loc ~attrs:_1)
    )
# 45744 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.module_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let x : (string) = Obj.magic x in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _4 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 45809 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 45816 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 45821 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__6_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2032 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      Psig_modtypesubst (Ast_helper.Mtd.mk _4 ~typ:_6 ~loc ~attrs:_1)
    )
# 45834 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.signature_item_desc) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.signature_item_desc) = 
# 2035 "src/reason-parser/reason_parser.mly"
                     ( _1 )
# 45860 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.module_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 45893 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2037 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      Ppxlib.Psig_include (Ast_helper.Incl.mk _3 ~attrs:_1 ~loc)
    )
# 45906 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.module_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 45948 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 45953 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2037 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      Ppxlib.Psig_include (Ast_helper.Incl.mk _3 ~attrs:_1 ~loc)
    )
# 45966 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.class_description list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.signature_item_desc) = 
# 2041 "src/reason-parser/reason_parser.mly"
    ( Psig_class _1 )
# 45992 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Astlib.Ast_502.Parsetree.class_type_declaration list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.signature_item_desc) = 
# 2043 "src/reason-parser/reason_parser.mly"
    ( Psig_class_type _1 )
# 46017 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _2 : (Ppxlib.extension) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 46043 "src/reason-parser/reason_parser.ml"
           in
          (
# 2045 "src/reason-parser/reason_parser.mly"
    ( Ppxlib.Psig_extension (_2, _1) )
# 46048 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.extension) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 46083 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 46088 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2045 "src/reason-parser/reason_parser.mly"
    ( Ppxlib.Psig_extension (_2, _1) )
# 46094 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature_item_desc))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.signature_item_desc) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 46124 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2049 "src/reason-parser/reason_parser.mly"
                           ( [mksig ~loc:_1.loc _1.txt] )
# 46130 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 46157 "src/reason-parser/reason_parser.ml"
           in
          (
# 2051 "src/reason-parser/reason_parser.mly"
    ( List.map
      ~f:(fun x -> mksig ~loc:x.loc (Psig_attribute (make_floating_doc x.txt)))
      _1 )
# 46164 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.signature))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = 
# 4891 "src/reason-parser/reason_parser.mly"
                 ( _1 )
# 46190 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : 
# 1186 "src/reason-parser/reason_parser.mly"
       (string * char option)
# 46217 "src/reason-parser/reason_parser.ml"
         = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = 
# 4892 "src/reason-parser/reason_parser.mly"
                 ( let (n, m) = _2 in ([], Pconst_integer("-" ^ n, m)) )
# 46226 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : 
# 1163 "src/reason-parser/reason_parser.mly"
       (string * char option)
# 46253 "src/reason-parser/reason_parser.ml"
         = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = 
# 4893 "src/reason-parser/reason_parser.mly"
                 ( let (f, m) = _2 in ([], Pconst_float("-" ^ f, m)) )
# 46262 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : 
# 1186 "src/reason-parser/reason_parser.mly"
       (string * char option)
# 46289 "src/reason-parser/reason_parser.ml"
         = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = 
# 4894 "src/reason-parser/reason_parser.mly"
                 ( let (n, m) = _2 in ([], Pconst_integer (n, m)) )
# 46298 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : 
# 1163 "src/reason-parser/reason_parser.mly"
       (string * char option)
# 46325 "src/reason-parser/reason_parser.ml"
         = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = 
# 4895 "src/reason-parser/reason_parser.mly"
                 ( let (f, m) = _2 in ([], Ppxlib.Pconst_float(f, m)) )
# 46334 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 46365 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3164 "src/reason-parser/reason_parser.mly"
                          ( mkexp (Pexp_ident _1) )
# 46371 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 46381 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 46387 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3166 "src/reason-parser/reason_parser.mly"
    ( let attrs, cst = _1 in mkexp ~attrs (Pexp_constant cst) )
# 46415 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 46425 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 46431 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3167 "src/reason-parser/reason_parser.mly"
                          ( _1 )
# 46459 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 46469 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 46475 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3168 "src/reason-parser/reason_parser.mly"
                                ( _1 )
# 46503 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 46513 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 46519 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (unit option) = Obj.magic _3 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _2 = 
# 5391 "src/reason-parser/reason_parser.mly"
                ( [] )
# 46563 "src/reason-parser/reason_parser.ml"
                 in
                
# 3144 "src/reason-parser/reason_parser.mly"
  ( let msg = "Arrays can't use the `...` spread currently. Please use `concat` or other Array helpers." in
    filter_raise_spread_syntax msg _2
  )
# 46570 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3170 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_array _1) )
# 46576 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 46587 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 46593 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (unit option) = Obj.magic _3 in
        let _1_inlined1 : ((Location.t option * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _2 =
                  let _1 = _1_inlined1 in
                  let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 46646 "src/reason-parser/reason_parser.ml"
                   in
                  
# 5392 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 46651 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3144 "src/reason-parser/reason_parser.mly"
  ( let msg = "Arrays can't use the `...` spread currently. Please use `concat` or other Array helpers." in
    filter_raise_spread_syntax msg _2
  )
# 46659 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3170 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_array _1) )
# 46665 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 46676 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 46682 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 46714 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3174 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_construct (_1, None)) )
# 46720 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 46730 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 46736 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (string) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5094 "src/reason-parser/reason_parser.mly"
                                  ( _2 )
# 46772 "src/reason-parser/reason_parser.ml"
               in
              
# 3176 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_variant (_1, None)) )
# 46777 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 46788 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 46794 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__3_ in
              let _startpos = _startpos__1_ in
              
# 3178 "src/reason-parser/reason_parser.mly"
    ( may_tuple _startpos _endpos _2 )
# 46839 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 46850 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 46856 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : 
# 1228 "src/reason-parser/reason_parser.mly"
       (string)
# 46884 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 46899 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 =
                let _endpos = _endpos__1_ in
                let _startpos = _startpos__1_ in
                
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 46908 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3180 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_apply(mkoperator _2, [Nolabel, _1])) )
# 46914 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 46925 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 46931 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 46992 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 47001 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3182 "src/reason-parser/reason_parser.mly"
    (
      let loc = mklocation _symbolstartpos _endpos in
      let openSyntaxNotationAttribute = {
        Ppxlib.attr_name = mkloc "reason.openSyntaxNotation" loc;
        attr_payload = PStr [];
        attr_loc = Location.none
      } in
      mkexp ~attrs:[openSyntaxNotationAttribute] (Pexp_open(od, may_tuple _startpos__3_ _endpos__5_ _4)) )
# 47017 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 47028 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 47034 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _3 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 47080 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 =
                let _endpos = _endpos__1_ in
                let _startpos = _startpos__1_ in
                
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 47089 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3191 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_field(_1, _3)) )
# 47095 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 47106 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 47112 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 47166 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 47175 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__4_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3193 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let pat = mkpat (Ppat_var (mkloc "this" loc)) in
      mkexp(Pexp_open (od, mkexp(Pexp_object(Ast_helper.Cstr.mk pat []))))
    )
# 47187 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__4_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 47198 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 47204 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos__1_ in
                let _startpos = _startpos__1_ in
                
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 47257 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos = _endpos__4_ in
              let _symbolstartpos = _startpos__1_ in
              
# 3198 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let exp = Ppxlib.Pexp_ident(array_function ~loc "Array" "get") in
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc exp, [Nolabel,_1; Nolabel,_3]))
    )
# 47268 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 47279 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 47285 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos__1_ in
                let _startpos = _startpos__1_ in
                
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 47345 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos__1_ in
              
# 3203 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let exp = Ppxlib.Pexp_ident(array_function ~loc "String" "get") in
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc exp, [Nolabel,_1; Nolabel,_4]))
    )
# 47356 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 47367 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 47373 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined2;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (unit option) = Obj.magic _4 in
        let _1_inlined2 : (Ppxlib.expression list) = Obj.magic _1_inlined2 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _1_inlined1 = _1_inlined2 in
                let _3 =
                  let _1 = _1_inlined1 in
                  
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 47441 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3149 "src/reason-parser/reason_parser.mly"
                                                                 ( _3 )
# 47447 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos__2_ = _endpos__5_ in
              let _1 =
                let _endpos = _endpos__1_ in
                let _startpos = _startpos__1_ in
                
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 47457 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos = _endpos__2_ in
              let _symbolstartpos = _startpos__1_ in
              
# 3208 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      bigarray_get ~loc _1 _2 )
# 47466 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 47477 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 47483 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 47545 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 47554 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3211 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mkexp(Pexp_open(od, mk_record_expr ~loc _4))
    )
# 47565 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 47576 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 47582 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 47644 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 47653 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3215 "src/reason-parser/reason_parser.mly"
    ( let (exten, fields) = _4 in
      let loc = mklocation _symbolstartpos _endpos in
      let rec_exp = mkexp ~loc (Pexp_extension (mkloc ("mel.obj") loc,
             PStr [mkstrexp (mkexp ~loc (Pexp_record(fields, exten))) []]))
      in
      mkexp(Pexp_open(od, rec_exp))
    )
# 47668 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 47679 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 47685 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 47746 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 47755 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3223 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let rec_exp = Ast_helper.Exp.mk ~loc ~attrs:[] (Pexp_array _4) in
      mkexp(Pexp_open(od, rec_exp))
    )
# 47767 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 47778 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 47784 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 47845 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 47854 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3229 "src/reason-parser/reason_parser.mly"
    ( let seq, ext_opt = [_4], None in
      let loc = mklocation _startpos__4_ _endpos__4_ in
      let list_exp = make_real_exp (mktailexp_extension loc seq ext_opt) in
      let list_exp = { list_exp with pexp_loc = loc } in
      mkexp (Pexp_open (od, list_exp))
    )
# 47865 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 47876 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 47882 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 47936 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 47945 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3236 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos__3_ _endpos__4_ in
      let list_exp = make_real_exp (mktailexp_extension loc [] None) in
      let list_exp = { list_exp with pexp_loc = loc } in
      mkexp (Pexp_open (od, list_exp))
    )
# 47955 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__4_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 47966 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 47972 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression list * Ppxlib.expression option) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 48033 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 48042 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3242 "src/reason-parser/reason_parser.mly"
    ( let seq, ext_opt = _4 in
      let loc = mklocation _startpos__4_ _endpos__4_ in
      let list_exp = make_real_exp (mktailexp_extension loc seq ext_opt) in
      let list_exp = { list_exp with pexp_loc = loc } in
      mkexp (Pexp_open (od, list_exp))
    )
# 48053 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 48064 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 48070 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let x : 
# 1227 "src/reason-parser/reason_parser.mly"
       (string)
# 48099 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos__1_ in
                let _startpos = _startpos__1_ in
                
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 48113 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 48122 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3249 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_apply(mkoperator _1, [Nolabel, _2])) )
# 48128 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 48139 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 48145 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 48184 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3259 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_new _2) )
# 48190 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 48201 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 48207 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = x;
                    MenhirLib.EngineTypes.startp = _startpos_x_;
                    MenhirLib.EngineTypes.endp = _endpos_x_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : unit = Obj.magic _6 in
        let _5 : (unit option) = Obj.magic _5 in
        let _1 : ((string Location.loc * Ppxlib.expression) list) = Obj.magic _1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let x =
              let _4 =
                let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 48272 "src/reason-parser/reason_parser.ml"
                 in
                
# 3785 "src/reason-parser/reason_parser.mly"
                                                                     ( _1 )
# 48277 "src/reason-parser/reason_parser.ml"
                
              in
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 48287 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 48296 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__6_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3261 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let exp = Ast_helper.Exp.mk ~loc ~attrs:[] (Pexp_override _4) in
      mkexp (Pexp_open(od, exp))
    )
# 48308 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__6_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 48319 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 48325 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 48359 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let x =
              let _3 =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 48374 "src/reason-parser/reason_parser.ml"
                 in
                let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 48382 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 =
                let _endpos = _endpos__1_ in
                let _startpos = _startpos__1_ in
                
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 48391 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3266 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_send(_1, _3)) )
# 48397 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 48408 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 48414 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let x : 
# 1240 "src/reason-parser/reason_parser.mly"
       (string)
# 48449 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 48464 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 =
                let _endpos = _endpos__1_ in
                let _startpos = _startpos__1_ in
                
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 48473 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3268 "src/reason-parser/reason_parser.mly"
    ( mkinfixop _1 (mkoperator _2) _3 )
# 48479 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 48490 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 48496 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let x : unit = Obj.magic x in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let x =
              let _3 =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                let _endpos = _endpos__1_ in
                let _startpos = _startpos__1_ in
                
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 48543 "src/reason-parser/reason_parser.ml"
                
              in
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 48552 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 =
                let _endpos = _endpos__1_ in
                let _startpos = _startpos__1_ in
                
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 48561 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3270 "src/reason-parser/reason_parser.mly"
    ( let op = { _2 with txt = "#=" } in
      mkinfixop _1 (mkoperator op) _3 )
# 48568 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 48579 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 48585 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let x : unit = Obj.magic x in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 48631 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 =
                let _endpos = _endpos__1_ in
                let _startpos = _startpos__1_ in
                
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 48640 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3273 "src/reason-parser/reason_parser.mly"
    ( mkinfixop _1 (mkoperator {_2 with txt = "|."}) _3 )
# 48646 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 48657 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 48663 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Astlib.Ast_502.Parsetree.extension) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3275 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_extension _1) )
# 48691 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 48701 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3310 "src/reason-parser/reason_parser.mly"
                                                         ( (_1, []) )
# 48707 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : ((Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _2 in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = 
# 3312 "src/reason-parser/reason_parser.mly"
    ( let (body, args) = _1 in
      (body, List.rev_append _2 args) )
# 48741 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression list * Ppxlib.expression option) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = 
# 3315 "src/reason-parser/reason_parser.mly"
    ( let seq, ext_opt = _2 in
      let loc = mklocation _startpos__2_ _endpos__2_ in
      (make_real_exp (mktailexp_extension loc seq ext_opt), [])
    )
# 48783 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = 
# 3319 "src/reason-parser/reason_parser.mly"
                                     ( (_1, []) )
# 48808 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.expression) = 
# 3334 "src/reason-parser/reason_parser.mly"
                ( _1 )
# 48833 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression list * Ppxlib.expression option) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v : (Ppxlib.expression) = 
# 3336 "src/reason-parser/reason_parser.mly"
    ( let entireLoc = mklocation _startpos__1_ _endpos__4_ in
      let (seq, ext_opt) = _4 in
      mktailexp_extension entireLoc (_2::seq) ext_opt
    )
# 48889 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.expression) = 
# 3341 "src/reason-parser/reason_parser.mly"
    ( let entireLoc = mklocation _startpos__1_ _endpos__3_ in
      mktailexp_extension entireLoc (_2::[]) None
    )
# 48930 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v : (Ppxlib.expression) = 
# 3345 "src/reason-parser/reason_parser.mly"
    ( let entireLoc = mklocation _startpos__1_ _endpos__4_ in
      mktailexp_extension entireLoc [_2] None
    )
# 48978 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (unit option) = Obj.magic _3 in
        let _1_inlined1 : ((string Location.loc * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _2 =
            let _1 = _1_inlined1 in
            let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 49027 "src/reason-parser/reason_parser.ml"
             in
            
# 3785 "src/reason-parser/reason_parser.mly"
                                                                     ( _1 )
# 49032 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3349 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_override _2) )
# 49038 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.expression) = 
# 3351 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_override []))
# 49071 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.module_expr) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v : (Ppxlib.expression) = 
# 3353 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_pack _3) )
# 49117 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4;
              MenhirLib.EngineTypes.startp = _startpos__4_;
              MenhirLib.EngineTypes.endp = _endpos__4_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.core_type) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.module_expr) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _endpos = _endpos__6_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 3355 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mkexp (Pexp_constraint (mkexp ~ghost:true ~loc (Pexp_pack _3), _5))
    )
# 49182 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 49214 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3164 "src/reason-parser/reason_parser.mly"
                          ( mkexp (Pexp_ident _1) )
# 49220 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 49230 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 49236 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3166 "src/reason-parser/reason_parser.mly"
    ( let attrs, cst = _1 in mkexp ~attrs (Pexp_constant cst) )
# 49264 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 49274 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 49280 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3167 "src/reason-parser/reason_parser.mly"
                          ( _1 )
# 49308 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 49318 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 49324 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3168 "src/reason-parser/reason_parser.mly"
                                ( _1 )
# 49352 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 49362 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 49368 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (unit option) = Obj.magic _3 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _2 = 
# 5391 "src/reason-parser/reason_parser.mly"
                ( [] )
# 49412 "src/reason-parser/reason_parser.ml"
                 in
                
# 3144 "src/reason-parser/reason_parser.mly"
  ( let msg = "Arrays can't use the `...` spread currently. Please use `concat` or other Array helpers." in
    filter_raise_spread_syntax msg _2
  )
# 49419 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3170 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_array _1) )
# 49425 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 49436 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 49442 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (unit option) = Obj.magic _3 in
        let _1_inlined1 : ((Location.t option * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _2 =
                  let _1 = _1_inlined1 in
                  let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 49495 "src/reason-parser/reason_parser.ml"
                   in
                  
# 5392 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 49500 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3144 "src/reason-parser/reason_parser.mly"
  ( let msg = "Arrays can't use the `...` spread currently. Please use `concat` or other Array helpers." in
    filter_raise_spread_syntax msg _2
  )
# 49508 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3170 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_array _1) )
# 49514 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 49525 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 49531 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 49563 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3174 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_construct (_1, None)) )
# 49569 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 49579 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 49585 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (string) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5094 "src/reason-parser/reason_parser.mly"
                                  ( _2 )
# 49621 "src/reason-parser/reason_parser.ml"
               in
              
# 3176 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_variant (_1, None)) )
# 49626 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 49637 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 49643 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__3_ in
              let _startpos = _startpos__1_ in
              
# 3178 "src/reason-parser/reason_parser.mly"
    ( may_tuple _startpos _endpos _2 )
# 49688 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 49699 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 49705 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : 
# 1228 "src/reason-parser/reason_parser.mly"
       (string)
# 49733 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 49748 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3180 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_apply(mkoperator _2, [Nolabel, _1])) )
# 49754 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 49765 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 49771 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 49832 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 49841 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3182 "src/reason-parser/reason_parser.mly"
    (
      let loc = mklocation _symbolstartpos _endpos in
      let openSyntaxNotationAttribute = {
        Ppxlib.attr_name = mkloc "reason.openSyntaxNotation" loc;
        attr_payload = PStr [];
        attr_loc = Location.none
      } in
      mkexp ~attrs:[openSyntaxNotationAttribute] (Pexp_open(od, may_tuple _startpos__3_ _endpos__5_ _4)) )
# 49857 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 49868 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 49874 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _3 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 49920 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3191 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_field(_1, _3)) )
# 49926 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 49937 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 49943 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 49997 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 50006 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__4_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3193 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let pat = mkpat (Ppat_var (mkloc "this" loc)) in
      mkexp(Pexp_open (od, mkexp(Pexp_object(Ast_helper.Cstr.mk pat []))))
    )
# 50018 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__4_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 50029 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 50035 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__4_ in
              let _symbolstartpos = _startpos__1_ in
              
# 3198 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let exp = Ppxlib.Pexp_ident(array_function ~loc "Array" "get") in
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc exp, [Nolabel,_1; Nolabel,_3]))
    )
# 50090 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 50101 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 50107 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos__1_ in
              
# 3203 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let exp = Ppxlib.Pexp_ident(array_function ~loc "String" "get") in
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc exp, [Nolabel,_1; Nolabel,_4]))
    )
# 50169 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 50180 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 50186 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined2;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (unit option) = Obj.magic _4 in
        let _1_inlined2 : (Ppxlib.expression list) = Obj.magic _1_inlined2 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _1_inlined1 = _1_inlined2 in
                let _3 =
                  let _1 = _1_inlined1 in
                  
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 50254 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3149 "src/reason-parser/reason_parser.mly"
                                                                 ( _3 )
# 50260 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos__2_ = _endpos__5_ in
              let _endpos = _endpos__2_ in
              let _symbolstartpos = _startpos__1_ in
              
# 3208 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      bigarray_get ~loc _1 _2 )
# 50270 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 50281 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 50287 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 50349 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 50358 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3211 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mkexp(Pexp_open(od, mk_record_expr ~loc _4))
    )
# 50369 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 50380 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 50386 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 50448 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 50457 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3215 "src/reason-parser/reason_parser.mly"
    ( let (exten, fields) = _4 in
      let loc = mklocation _symbolstartpos _endpos in
      let rec_exp = mkexp ~loc (Pexp_extension (mkloc ("mel.obj") loc,
             PStr [mkstrexp (mkexp ~loc (Pexp_record(fields, exten))) []]))
      in
      mkexp(Pexp_open(od, rec_exp))
    )
# 50472 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 50483 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 50489 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 50550 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 50559 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3223 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let rec_exp = Ast_helper.Exp.mk ~loc ~attrs:[] (Pexp_array _4) in
      mkexp(Pexp_open(od, rec_exp))
    )
# 50571 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 50582 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 50588 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 50649 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 50658 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3229 "src/reason-parser/reason_parser.mly"
    ( let seq, ext_opt = [_4], None in
      let loc = mklocation _startpos__4_ _endpos__4_ in
      let list_exp = make_real_exp (mktailexp_extension loc seq ext_opt) in
      let list_exp = { list_exp with pexp_loc = loc } in
      mkexp (Pexp_open (od, list_exp))
    )
# 50669 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 50680 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 50686 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 50740 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 50749 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3236 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos__3_ _endpos__4_ in
      let list_exp = make_real_exp (mktailexp_extension loc [] None) in
      let list_exp = { list_exp with pexp_loc = loc } in
      mkexp (Pexp_open (od, list_exp))
    )
# 50759 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__4_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 50770 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 50776 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression list * Ppxlib.expression option) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 50837 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 50846 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3242 "src/reason-parser/reason_parser.mly"
    ( let seq, ext_opt = _4 in
      let loc = mklocation _startpos__4_ _endpos__4_ in
      let list_exp = make_real_exp (mktailexp_extension loc seq ext_opt) in
      let list_exp = { list_exp with pexp_loc = loc } in
      mkexp (Pexp_open (od, list_exp))
    )
# 50857 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 50868 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 50874 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let x : 
# 1227 "src/reason-parser/reason_parser.mly"
       (string)
# 50903 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 50917 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3249 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_apply(mkoperator _1, [Nolabel, _2])) )
# 50923 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__2_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 50934 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 50940 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 50979 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3259 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_new _2) )
# 50985 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 50996 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 51002 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = x;
                    MenhirLib.EngineTypes.startp = _startpos_x_;
                    MenhirLib.EngineTypes.endp = _endpos_x_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : unit = Obj.magic _6 in
        let _5 : (unit option) = Obj.magic _5 in
        let _1 : ((string Location.loc * Ppxlib.expression) list) = Obj.magic _1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let x =
              let _4 =
                let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 51067 "src/reason-parser/reason_parser.ml"
                 in
                
# 3785 "src/reason-parser/reason_parser.mly"
                                                                     ( _1 )
# 51072 "src/reason-parser/reason_parser.ml"
                
              in
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 51082 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 51091 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__6_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3261 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let exp = Ast_helper.Exp.mk ~loc ~attrs:[] (Pexp_override _4) in
      mkexp (Pexp_open(od, exp))
    )
# 51103 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__6_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 51114 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 51120 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 51154 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let x =
              let _3 =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 51169 "src/reason-parser/reason_parser.ml"
                 in
                let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 51177 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3266 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_send(_1, _3)) )
# 51183 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 51194 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 51200 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let x : 
# 1240 "src/reason-parser/reason_parser.mly"
       (string)
# 51235 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 51250 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3268 "src/reason-parser/reason_parser.mly"
    ( mkinfixop _1 (mkoperator _2) _3 )
# 51256 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 51267 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 51273 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let x : unit = Obj.magic x in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let x =
              let _3 =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                let _endpos = _endpos__1_ in
                let _startpos = _startpos__1_ in
                
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 51320 "src/reason-parser/reason_parser.ml"
                
              in
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 51329 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3270 "src/reason-parser/reason_parser.mly"
    ( let op = { _2 with txt = "#=" } in
      mkinfixop _1 (mkoperator op) _3 )
# 51336 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 51347 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 51353 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let x : unit = Obj.magic x in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 51399 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3273 "src/reason-parser/reason_parser.mly"
    ( mkinfixop _1 (mkoperator {_2 with txt = "|."}) _3 )
# 51405 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 51416 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 51422 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Astlib.Ast_502.Parsetree.extension) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3275 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_extension _1) )
# 51450 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 51460 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3305 "src/reason-parser/reason_parser.mly"
                                                                 ( _1 )
# 51466 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.expression) = 
# 3306 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 51492 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 51523 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3164 "src/reason-parser/reason_parser.mly"
                          ( mkexp (Pexp_ident _1) )
# 51529 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 51539 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 51545 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3166 "src/reason-parser/reason_parser.mly"
    ( let attrs, cst = _1 in mkexp ~attrs (Pexp_constant cst) )
# 51573 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 51583 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 51589 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3167 "src/reason-parser/reason_parser.mly"
                          ( _1 )
# 51617 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 51627 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 51633 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3168 "src/reason-parser/reason_parser.mly"
                                ( _1 )
# 51661 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 51671 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 51677 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (unit option) = Obj.magic _3 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _2 = 
# 5391 "src/reason-parser/reason_parser.mly"
                ( [] )
# 51721 "src/reason-parser/reason_parser.ml"
                 in
                
# 3144 "src/reason-parser/reason_parser.mly"
  ( let msg = "Arrays can't use the `...` spread currently. Please use `concat` or other Array helpers." in
    filter_raise_spread_syntax msg _2
  )
# 51728 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3170 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_array _1) )
# 51734 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 51745 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 51751 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (unit option) = Obj.magic _3 in
        let _1_inlined1 : ((Location.t option * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _2 =
                  let _1 = _1_inlined1 in
                  let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 51804 "src/reason-parser/reason_parser.ml"
                   in
                  
# 5392 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 51809 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3144 "src/reason-parser/reason_parser.mly"
  ( let msg = "Arrays can't use the `...` spread currently. Please use `concat` or other Array helpers." in
    filter_raise_spread_syntax msg _2
  )
# 51817 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3170 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_array _1) )
# 51823 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 51834 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 51840 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 51872 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3174 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_construct (_1, None)) )
# 51878 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 51888 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 51894 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (string) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5094 "src/reason-parser/reason_parser.mly"
                                  ( _2 )
# 51930 "src/reason-parser/reason_parser.ml"
               in
              
# 3176 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_variant (_1, None)) )
# 51935 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 51946 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 51952 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.expression list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__3_ in
              let _startpos = _startpos__1_ in
              
# 3178 "src/reason-parser/reason_parser.mly"
    ( may_tuple _startpos _endpos _2 )
# 51997 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 52008 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 52014 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : 
# 1228 "src/reason-parser/reason_parser.mly"
       (string)
# 52042 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 52057 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3180 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_apply(mkoperator _2, [Nolabel, _1])) )
# 52063 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 52074 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 52080 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 52141 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 52150 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3182 "src/reason-parser/reason_parser.mly"
    (
      let loc = mklocation _symbolstartpos _endpos in
      let openSyntaxNotationAttribute = {
        Ppxlib.attr_name = mkloc "reason.openSyntaxNotation" loc;
        attr_payload = PStr [];
        attr_loc = Location.none
      } in
      mkexp ~attrs:[openSyntaxNotationAttribute] (Pexp_open(od, may_tuple _startpos__3_ _endpos__5_ _4)) )
# 52166 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 52177 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 52183 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _3 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 52229 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3191 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_field(_1, _3)) )
# 52235 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 52246 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 52252 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 52306 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 52315 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__4_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3193 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let pat = mkpat (Ppat_var (mkloc "this" loc)) in
      mkexp(Pexp_open (od, mkexp(Pexp_object(Ast_helper.Cstr.mk pat []))))
    )
# 52327 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__4_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 52338 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 52344 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__4_ in
              let _symbolstartpos = _startpos__1_ in
              
# 3198 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let exp = Ppxlib.Pexp_ident(array_function ~loc "Array" "get") in
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc exp, [Nolabel,_1; Nolabel,_3]))
    )
# 52399 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 52410 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 52416 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos__1_ in
              
# 3203 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let exp = Ppxlib.Pexp_ident(array_function ~loc "String" "get") in
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc exp, [Nolabel,_1; Nolabel,_4]))
    )
# 52478 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 52489 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 52495 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined2;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (unit option) = Obj.magic _4 in
        let _1_inlined2 : (Ppxlib.expression list) = Obj.magic _1_inlined2 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _1_inlined1 = _1_inlined2 in
                let _3 =
                  let _1 = _1_inlined1 in
                  
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 52563 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3149 "src/reason-parser/reason_parser.mly"
                                                                 ( _3 )
# 52569 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos__2_ = _endpos__5_ in
              let _endpos = _endpos__2_ in
              let _symbolstartpos = _startpos__1_ in
              
# 3208 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      bigarray_get ~loc _1 _2 )
# 52579 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 52590 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 52596 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 52658 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 52667 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3211 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mkexp(Pexp_open(od, mk_record_expr ~loc _4))
    )
# 52678 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 52689 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 52695 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 52757 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 52766 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3215 "src/reason-parser/reason_parser.mly"
    ( let (exten, fields) = _4 in
      let loc = mklocation _symbolstartpos _endpos in
      let rec_exp = mkexp ~loc (Pexp_extension (mkloc ("mel.obj") loc,
             PStr [mkstrexp (mkexp ~loc (Pexp_record(fields, exten))) []]))
      in
      mkexp(Pexp_open(od, rec_exp))
    )
# 52781 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 52792 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 52798 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 52859 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 52868 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3223 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let rec_exp = Ast_helper.Exp.mk ~loc ~attrs:[] (Pexp_array _4) in
      mkexp(Pexp_open(od, rec_exp))
    )
# 52880 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 52891 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 52897 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 52958 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 52967 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3229 "src/reason-parser/reason_parser.mly"
    ( let seq, ext_opt = [_4], None in
      let loc = mklocation _startpos__4_ _endpos__4_ in
      let list_exp = make_real_exp (mktailexp_extension loc seq ext_opt) in
      let list_exp = { list_exp with pexp_loc = loc } in
      mkexp (Pexp_open (od, list_exp))
    )
# 52978 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 52989 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 52995 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 53049 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 53058 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3236 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos__3_ _endpos__4_ in
      let list_exp = make_real_exp (mktailexp_extension loc [] None) in
      let list_exp = { list_exp with pexp_loc = loc } in
      mkexp (Pexp_open (od, list_exp))
    )
# 53068 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__4_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 53079 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 53085 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression list * Ppxlib.expression option) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let x =
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 53146 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 53155 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3242 "src/reason-parser/reason_parser.mly"
    ( let seq, ext_opt = _4 in
      let loc = mklocation _startpos__4_ _endpos__4_ in
      let list_exp = make_real_exp (mktailexp_extension loc seq ext_opt) in
      let list_exp = { list_exp with pexp_loc = loc } in
      mkexp (Pexp_open (od, list_exp))
    )
# 53166 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__5_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 53177 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 53183 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let x : 
# 1227 "src/reason-parser/reason_parser.mly"
       (string)
# 53212 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 53226 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3249 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_apply(mkoperator _1, [Nolabel, _2])) )
# 53232 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__2_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 53243 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 53249 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 53288 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3259 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_new _2) )
# 53294 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 53305 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 53311 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = x;
                    MenhirLib.EngineTypes.startp = _startpos_x_;
                    MenhirLib.EngineTypes.endp = _endpos_x_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : unit = Obj.magic _6 in
        let _5 : (unit option) = Obj.magic _5 in
        let _1 : ((string Location.loc * Ppxlib.expression) list) = Obj.magic _1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let x =
              let _4 =
                let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 53376 "src/reason-parser/reason_parser.ml"
                 in
                
# 3785 "src/reason-parser/reason_parser.mly"
                                                                     ( _1 )
# 53381 "src/reason-parser/reason_parser.ml"
                
              in
              let od =
                let _1 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 53391 "src/reason-parser/reason_parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_x_, _startpos_x_) in
                
# 2567 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos__1_ _endpos__1_ in
    let me = Ast_helper.Mod.ident ~loc _1 in
    Ast_helper.Opn.mk ~loc me )
# 53400 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_od_ = _startpos_x_ in
              let _endpos = _endpos__6_ in
              let _symbolstartpos = _startpos_od_ in
              
# 3261 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let exp = Ast_helper.Exp.mk ~loc ~attrs:[] (Pexp_override _4) in
      mkexp (Pexp_open(od, exp))
    )
# 53412 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos_x_ = _endpos__6_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 53423 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 53429 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 53463 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let x =
              let _3 =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 53478 "src/reason-parser/reason_parser.ml"
                 in
                let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 53486 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3266 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_send(_1, _3)) )
# 53492 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 53503 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 53509 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let x : 
# 1240 "src/reason-parser/reason_parser.mly"
       (string)
# 53544 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 53559 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3268 "src/reason-parser/reason_parser.mly"
    ( mkinfixop _1 (mkoperator _2) _3 )
# 53565 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 53576 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 53582 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let x : unit = Obj.magic x in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let x =
              let _3 =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                let _endpos = _endpos__1_ in
                let _startpos = _startpos__1_ in
                
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 53629 "src/reason-parser/reason_parser.ml"
                
              in
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 53638 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3270 "src/reason-parser/reason_parser.mly"
    ( let op = { _2 with txt = "#=" } in
      mkinfixop _1 (mkoperator op) _3 )
# 53645 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 53656 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 53662 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let x : unit = Obj.magic x in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 53708 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3273 "src/reason-parser/reason_parser.mly"
    ( mkinfixop _1 (mkoperator {_2 with txt = "|."}) _3 )
# 53714 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 53725 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 53731 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Astlib.Ast_502.Parsetree.extension) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3275 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_extension _1) )
# 53759 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 53769 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3281 "src/reason-parser/reason_parser.mly"
                                                                      ( _1 )
# 53775 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _1 : (Ppxlib.expression list) = Obj.magic _1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _2 =
            let x = 
# 3286 "src/reason-parser/reason_parser.mly"
                                    ( mkexp (Pexp_tuple(_1)) )
# 53810 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 53820 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 53829 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3289 "src/reason-parser/reason_parser.mly"
    ( mkExplicitArityTupleExp (Pexp_construct(_1, Some _2))
    )
# 53836 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _2 =
            let x = 
# 3287 "src/reason-parser/reason_parser.mly"
                                    ( _1 )
# 53871 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 53881 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 53890 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3289 "src/reason-parser/reason_parser.mly"
    ( mkExplicitArityTupleExp (Pexp_construct(_1, Some _2))
    )
# 53897 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression list) = Obj.magic _1_inlined1 in
        let _2_inlined1 : (string) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _2 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 3294 "src/reason-parser/reason_parser.mly"
        ( (* only wrap in a tuple if there are more than one arguments *)
          match _1 with
          | [x] -> x
          | l -> mkexp (Pexp_tuple(l))
        )
# 53944 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 53954 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _2 = _2_inlined1 in
            
# 5094 "src/reason-parser/reason_parser.mly"
                                  ( _2 )
# 53962 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3301 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_variant(_1, Some _2)) )
# 53968 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression) = Obj.magic _1_inlined1 in
        let _2_inlined1 : (string) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _2 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 3299 "src/reason-parser/reason_parser.mly"
                                    ( _1 )
# 54011 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 54021 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _2 = _2_inlined1 in
            
# 5094 "src/reason-parser/reason_parser.mly"
                                  ( _2 )
# 54029 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3301 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_variant(_1, Some _2)) )
# 54035 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let x : (Ppxlib.functor_parameter Location.loc) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 205 "<standard.mly>"
    ( x )
# 54079 "src/reason-parser/reason_parser.ml"
                 in
                
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 54084 "src/reason-parser/reason_parser.ml"
                
              in
              
# 1835 "src/reason-parser/reason_parser.mly"
    ( match _1.txt with
      | Named ({ txt = None; _ }, x) -> x
      | _ -> syntax_error_mty _1.loc "Expecting a simple module type"
    )
# 54093 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5323 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_type = x in
    { x
      with pmty_loc =
      {x.pmty_loc with loc_start = _symbolstartpos; loc_end = _endpos}
    }
  )
# 54108 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1846 "src/reason-parser/reason_parser.mly"
    (_1)
# 54114 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.module_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 1839 "src/reason-parser/reason_parser.mly"
                          ( _1 )
# 54142 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5323 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_type = x in
    { x
      with pmty_loc =
      {x.pmty_loc with loc_start = _symbolstartpos; loc_end = _endpos}
    }
  )
# 54156 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1846 "src/reason-parser/reason_parser.mly"
    (_1)
# 54162 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 54194 "src/reason-parser/reason_parser.ml"
                
              in
              
# 1841 "src/reason-parser/reason_parser.mly"
    ( mkmty (Pmty_ident _1) )
# 54200 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5323 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_type = x in
    { x
      with pmty_loc =
      {x.pmty_loc with loc_start = _symbolstartpos; loc_end = _endpos}
    }
  )
# 54214 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1846 "src/reason-parser/reason_parser.mly"
    (_1)
# 54220 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Astlib.Ast_502.Parsetree.extension) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 1843 "src/reason-parser/reason_parser.mly"
    ( mkmty (Pmty_extension _1) )
# 54248 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5323 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_type = x in
    { x
      with pmty_loc =
      {x.pmty_loc with loc_start = _symbolstartpos; loc_end = _endpos}
    }
  )
# 54262 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1846 "src/reason-parser/reason_parser.mly"
    (_1)
# 54268 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4;
              MenhirLib.EngineTypes.startp = _startpos__4_;
              MenhirLib.EngineTypes.endp = _endpos__4_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.module_expr) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let x = 
# 1845 "src/reason-parser/reason_parser.mly"
    ( mkmty (Pmty_typeof _5) )
# 54331 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5323 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.module_type = x in
    { x
      with pmty_loc =
      {x.pmty_loc with loc_start = _symbolstartpos; loc_end = _endpos}
    }
  )
# 54345 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1846 "src/reason-parser/reason_parser.mly"
    (_1)
# 54351 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.module_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.pattern) = 
# 3916 "src/reason-parser/reason_parser.mly"
                             ( _1 )
# 54377 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.pattern) = 
# 3916 "src/reason-parser/reason_parser.mly"
                             ( _1 )
# 54402 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 54433 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3834 "src/reason-parser/reason_parser.mly"
    ( mkpat(Ppat_construct(mkloc _1.txt _1.loc, None)) )
# 54439 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 54451 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3836 "src/reason-parser/reason_parser.mly"
    (_1)
# 54457 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined1 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.pattern)) list *
  Ppxlib.closed_flag) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 =
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4049 "src/reason-parser/reason_parser.mly"
  ( let (fields, closed) = _1 in
    (filter_raise_spread_syntax record_pat_spread_msg fields, closed)
  )
# 54507 "src/reason-parser/reason_parser.ml"
                    
                  in
                  let _endpos = _endpos__3_ in
                  let _symbolstartpos = _startpos__1_ in
                  
# 3981 "src/reason-parser/reason_parser.mly"
    ( let (fields, closed) = _2 in
      let loc = mklocation _symbolstartpos _endpos in
      mkpat ~loc (Ppat_record (fields, closed))
    )
# 54518 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3975 "src/reason-parser/reason_parser.mly"
                   ( _1 )
# 54524 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3835 "src/reason-parser/reason_parser.mly"
                             ( _1 )
# 54530 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 54543 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3836 "src/reason-parser/reason_parser.mly"
    (_1)
# 54549 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.pattern list * Ppxlib.pattern option) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 3989 "src/reason-parser/reason_parser.mly"
    ( make_real_pat (mktailpat_extension (mklocation _startpos__2_ _endpos__2_) _2) )
# 54593 "src/reason-parser/reason_parser.ml"
                 in
                
# 3976 "src/reason-parser/reason_parser.mly"
                   ( _1 )
# 54598 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3835 "src/reason-parser/reason_parser.mly"
                             ( _1 )
# 54604 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 54617 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3836 "src/reason-parser/reason_parser.mly"
    (_1)
# 54623 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.pattern list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 3994 "src/reason-parser/reason_parser.mly"
    ( mkpat (Ppat_array _2) )
# 54667 "src/reason-parser/reason_parser.ml"
                 in
                
# 3977 "src/reason-parser/reason_parser.mly"
                   ( _1 )
# 54672 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3835 "src/reason-parser/reason_parser.mly"
                             ( _1 )
# 54678 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 54691 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3836 "src/reason-parser/reason_parser.mly"
    (_1)
# 54697 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (string) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 54727 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3920 "src/reason-parser/reason_parser.mly"
                    ( mkpat ~loc:_1.loc (Ppat_var _1) )
# 54733 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3926 "src/reason-parser/reason_parser.mly"
    ( mkpat (Ppat_any) )
# 54761 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 54773 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3955 "src/reason-parser/reason_parser.mly"
    (_1)
# 54779 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3928 "src/reason-parser/reason_parser.mly"
    ( let attrs, cst = _1 in mkpat ~attrs (Ppat_constant cst) )
# 54807 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 54819 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3955 "src/reason-parser/reason_parser.mly"
    (_1)
# 54825 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 3930 "src/reason-parser/reason_parser.mly"
    ( mkpat (Ppat_interval (snd _1, snd _3)) )
# 54867 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 54879 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3955 "src/reason-parser/reason_parser.mly"
    (_1)
# 54885 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _endpos = _endpos__3_ in
              let _startpos = _startpos__1_ in
              
# 3931 "src/reason-parser/reason_parser.mly"
                                        (
    syntax_error (mklocation _startpos _endpos) "Constant ranges must be separated with spaces around the ..";
     mkpat (Ppat_interval (snd _1, snd _3))
  )
# 54933 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 54946 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3955 "src/reason-parser/reason_parser.mly"
    (_1)
# 54952 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 54984 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3936 "src/reason-parser/reason_parser.mly"
    ( mkpat (Ppat_construct (_1, None)) )
# 54990 "src/reason-parser/reason_parser.ml"
              
            in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 55002 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3955 "src/reason-parser/reason_parser.mly"
    (_1)
# 55008 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (string) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5094 "src/reason-parser/reason_parser.mly"
                                  ( _2 )
# 55044 "src/reason-parser/reason_parser.ml"
               in
              
# 3938 "src/reason-parser/reason_parser.mly"
    ( mkpat (Ppat_variant (_1, None)) )
# 55049 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 55062 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3955 "src/reason-parser/reason_parser.mly"
    (_1)
# 55068 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib_ast__Ast_helper_lite.lid) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 3940 "src/reason-parser/reason_parser.mly"
    ( mkpat (Ppat_type (_2)) )
# 55103 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 55115 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3955 "src/reason-parser/reason_parser.mly"
    (_1)
# 55121 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (unit option) = Obj.magic _3 in
        let _1_inlined1 : (Ppxlib.pattern list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _2 =
                let _1 = _1_inlined1 in
                
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 55173 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos = _endpos__4_ in
              let _startpos = _startpos__1_ in
              
# 3942 "src/reason-parser/reason_parser.mly"
    ( match _2 with
      | [] -> (* This shouldn't be possible *)
        let loc = mklocation _startpos _endpos in
        mkpat_constructor_unit loc loc
      | [hd] -> hd
      | _ :: _ -> mkpat (Ppat_tuple _2)
    )
# 55187 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 55200 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3955 "src/reason-parser/reason_parser.mly"
    (_1)
# 55206 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let x : (string option) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _3 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 55259 "src/reason-parser/reason_parser.ml"
                
              in
              
# 3950 "src/reason-parser/reason_parser.mly"
    ( mkpat(Ppat_unpack(_3)) )
# 55265 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 55278 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3955 "src/reason-parser/reason_parser.mly"
    (_1)
# 55284 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3952 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 55312 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 55324 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3955 "src/reason-parser/reason_parser.mly"
    (_1)
# 55330 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Astlib.Ast_502.Parsetree.extension) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 3954 "src/reason-parser/reason_parser.mly"
    ( mkpat(Ppat_extension _1) )
# 55358 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5355 "src/reason-parser/reason_parser.mly"
   (
     let x: Ppxlib.pattern = x in
     { x
       with ppat_loc =
         {x.ppat_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 55370 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3955 "src/reason-parser/reason_parser.mly"
    (_1)
# 55376 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined1 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.pattern)) list *
  Ppxlib.closed_flag) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let _2 =
                let _1 = _1_inlined1 in
                
# 4049 "src/reason-parser/reason_parser.mly"
  ( let (fields, closed) = _1 in
    (filter_raise_spread_syntax record_pat_spread_msg fields, closed)
  )
# 55424 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = _startpos__1_ in
              
# 3981 "src/reason-parser/reason_parser.mly"
    ( let (fields, closed) = _2 in
      let loc = mklocation _symbolstartpos _endpos in
      mkpat ~loc (Ppat_record (fields, closed))
    )
# 55435 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3975 "src/reason-parser/reason_parser.mly"
                   ( _1 )
# 55441 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3959 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 55447 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.pattern list * Ppxlib.pattern option) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 3989 "src/reason-parser/reason_parser.mly"
    ( make_real_pat (mktailpat_extension (mklocation _startpos__2_ _endpos__2_) _2) )
# 55489 "src/reason-parser/reason_parser.ml"
             in
            
# 3976 "src/reason-parser/reason_parser.mly"
                   ( _1 )
# 55494 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3959 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 55500 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.pattern list) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 3994 "src/reason-parser/reason_parser.mly"
    ( mkpat (Ppat_array _2) )
# 55542 "src/reason-parser/reason_parser.ml"
             in
            
# 3977 "src/reason-parser/reason_parser.mly"
                   ( _1 )
# 55547 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3959 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 55553 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined1 : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.pattern)) list *
  Ppxlib.closed_flag) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _3 =
            let _1 =
              let _2 =
                let _1 = _1_inlined1 in
                
# 4049 "src/reason-parser/reason_parser.mly"
  ( let (fields, closed) = _1 in
    (filter_raise_spread_syntax record_pat_spread_msg fields, closed)
  )
# 55615 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = _startpos__1_ in
              
# 3981 "src/reason-parser/reason_parser.mly"
    ( let (fields, closed) = _2 in
      let loc = mklocation _symbolstartpos _endpos in
      mkpat ~loc (Ppat_record (fields, closed))
    )
# 55626 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3975 "src/reason-parser/reason_parser.mly"
                   ( _1 )
# 55632 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 55641 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__1_ = _startpos_x_ in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 3961 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mkpat ~loc (Ppat_open (_1, _3))
    )
# 55652 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2_inlined1 : (Ppxlib.pattern list * Ppxlib.pattern option) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _3 =
            let (_endpos__2_, _startpos__2_, _2) = (_endpos__2_inlined1_, _startpos__2_inlined1_, _2_inlined1) in
            let _1 = 
# 3989 "src/reason-parser/reason_parser.mly"
    ( make_real_pat (mktailpat_extension (mklocation _startpos__2_ _endpos__2_) _2) )
# 55709 "src/reason-parser/reason_parser.ml"
             in
            
# 3976 "src/reason-parser/reason_parser.mly"
                   ( _1 )
# 55714 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 55723 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__1_ = _startpos_x_ in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 3961 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mkpat ~loc (Ppat_open (_1, _3))
    )
# 55734 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2_inlined1 : (Ppxlib.pattern list) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _3 =
            let _2 = _2_inlined1 in
            let _1 = 
# 3994 "src/reason-parser/reason_parser.mly"
    ( mkpat (Ppat_array _2) )
# 55791 "src/reason-parser/reason_parser.ml"
             in
            
# 3977 "src/reason-parser/reason_parser.mly"
                   ( _1 )
# 55796 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 55805 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__1_ = _startpos_x_ in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 3961 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mkpat ~loc (Ppat_open (_1, _3))
    )
# 55816 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.pattern) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 55874 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__1_ = _startpos_x_ in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 3965 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mkpat ~loc (Ppat_open (_1, _4)) )
# 55884 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__2_inlined1_ in
        let _v =
          let _3 =
            let _endpos__2_ = _endpos__2_inlined1_ in
            let x = 
# 3967 "src/reason-parser/reason_parser.mly"
                                                       (Ppxlib.Longident.Lident "[]")
# 55934 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 55942 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__3_ = _endpos__2_inlined1_ in
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 55952 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__1_ = _startpos_x_ in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 3968 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mkpat ~loc (Ppat_open(_1, mkpat ~loc:_3.loc (Ppat_construct(_3, None)))) )
# 55962 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__2_inlined1_ in
        let _v =
          let _3 =
            let _endpos__2_ = _endpos__2_inlined1_ in
            let x = 
# 3970 "src/reason-parser/reason_parser.mly"
                                                   (Ppxlib.Longident.Lident "()")
# 56012 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 56020 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__3_ = _endpos__2_inlined1_ in
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 56030 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__1_ = _startpos_x_ in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 3971 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      mkpat ~loc (Ppat_open(_1, mkpat ~loc:_3.loc (Ppat_construct(_3, None)))) )
# 56040 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.pattern))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 56062 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5150 "src/reason-parser/reason_parser.mly"
                ( _1 )
# 56070 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 56091 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5151 "src/reason-parser/reason_parser.mly"
                ( _1 )
# 56099 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5152 "src/reason-parser/reason_parser.mly"
                ( "and" )
# 56124 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5153 "src/reason-parser/reason_parser.mly"
                ( "as" )
# 56149 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5154 "src/reason-parser/reason_parser.mly"
                ( "assert" )
# 56174 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5155 "src/reason-parser/reason_parser.mly"
                ( "begin" )
# 56199 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5156 "src/reason-parser/reason_parser.mly"
                ( "class" )
# 56224 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5157 "src/reason-parser/reason_parser.mly"
                ( "constraint" )
# 56249 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5158 "src/reason-parser/reason_parser.mly"
                ( "do" )
# 56274 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5159 "src/reason-parser/reason_parser.mly"
                ( "done" )
# 56299 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5160 "src/reason-parser/reason_parser.mly"
                ( "downto" )
# 56324 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5161 "src/reason-parser/reason_parser.mly"
                ( "else" )
# 56349 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5162 "src/reason-parser/reason_parser.mly"
                ( "end" )
# 56374 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5163 "src/reason-parser/reason_parser.mly"
                ( "exception" )
# 56399 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5164 "src/reason-parser/reason_parser.mly"
                ( "external" )
# 56424 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5165 "src/reason-parser/reason_parser.mly"
                ( "false" )
# 56449 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5166 "src/reason-parser/reason_parser.mly"
                ( "for" )
# 56474 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5167 "src/reason-parser/reason_parser.mly"
                ( "fun" )
# 56499 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5168 "src/reason-parser/reason_parser.mly"
                ( "function" )
# 56524 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5169 "src/reason-parser/reason_parser.mly"
                ( "functor" )
# 56549 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5170 "src/reason-parser/reason_parser.mly"
                ( "if" )
# 56574 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5171 "src/reason-parser/reason_parser.mly"
                ( "in" )
# 56599 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5172 "src/reason-parser/reason_parser.mly"
                ( "include" )
# 56624 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5173 "src/reason-parser/reason_parser.mly"
                ( "inherit" )
# 56649 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5174 "src/reason-parser/reason_parser.mly"
                ( "initializer" )
# 56674 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5175 "src/reason-parser/reason_parser.mly"
                ( "lazy" )
# 56699 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5176 "src/reason-parser/reason_parser.mly"
                ( "let" )
# 56724 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5177 "src/reason-parser/reason_parser.mly"
                ( "switch" )
# 56749 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5178 "src/reason-parser/reason_parser.mly"
                ( "module" )
# 56774 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5179 "src/reason-parser/reason_parser.mly"
                ( "mutable" )
# 56799 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5180 "src/reason-parser/reason_parser.mly"
                ( "new" )
# 56824 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5181 "src/reason-parser/reason_parser.mly"
                ( "nonrec" )
# 56849 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5182 "src/reason-parser/reason_parser.mly"
                ( "object" )
# 56874 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5183 "src/reason-parser/reason_parser.mly"
                ( "of" )
# 56899 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5184 "src/reason-parser/reason_parser.mly"
                ( "open" )
# 56924 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5185 "src/reason-parser/reason_parser.mly"
                ( "or" )
# 56949 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5186 "src/reason-parser/reason_parser.mly"
                ( "private" )
# 56974 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5187 "src/reason-parser/reason_parser.mly"
                ( "rec" )
# 56999 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5188 "src/reason-parser/reason_parser.mly"
                ( "sig" )
# 57024 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5189 "src/reason-parser/reason_parser.mly"
                ( "struct" )
# 57049 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5190 "src/reason-parser/reason_parser.mly"
                ( "then" )
# 57074 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5191 "src/reason-parser/reason_parser.mly"
                ( "to" )
# 57099 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5192 "src/reason-parser/reason_parser.mly"
                ( "true" )
# 57124 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5193 "src/reason-parser/reason_parser.mly"
                ( "try" )
# 57149 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5194 "src/reason-parser/reason_parser.mly"
                ( "type" )
# 57174 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5195 "src/reason-parser/reason_parser.mly"
                ( "val" )
# 57199 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5196 "src/reason-parser/reason_parser.mly"
                ( "virtual" )
# 57224 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5197 "src/reason-parser/reason_parser.mly"
                ( "when" )
# 57249 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5198 "src/reason-parser/reason_parser.mly"
                ( "while" )
# 57274 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 5199 "src/reason-parser/reason_parser.mly"
                ( "with" )
# 57299 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.extension_constructor) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 57332 "src/reason-parser/reason_parser.ml"
           in
          (
# 4302 "src/reason-parser/reason_parser.mly"
  (
    let expr: Ppxlib.extension_constructor = _3 in
    { expr with pext_attributes = expr.pext_attributes @ _1}
  )
# 57340 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.extension_constructor) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 57382 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 57387 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4302 "src/reason-parser/reason_parser.mly"
  (
    let expr: Ppxlib.extension_constructor = _3 in
    { expr with pext_attributes = expr.pext_attributes @ _1}
  )
# 57396 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.extension_constructor))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = flag;
                    MenhirLib.EngineTypes.startp = _startpos_flag_;
                    MenhirLib.EngineTypes.endp = _endpos_flag_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _6 : unit = Obj.magic _6 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 57458 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let x = 
# 4982 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident _1 )
# 57470 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 57478 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 57484 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos_constructors_ in
          (
# 4367 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~loc ~params ~priv ~attrs ident constructors, loc, None)
  )
# 57494 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = flag;
                        MenhirLib.EngineTypes.startp = _startpos_flag_;
                        MenhirLib.EngineTypes.endp = _endpos_flag_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _menhir_s;
                          MenhirLib.EngineTypes.semv = _2;
                          MenhirLib.EngineTypes.startp = _startpos__2_;
                          MenhirLib.EngineTypes.endp = _endpos__2_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _6 : unit = Obj.magic _6 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _3 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 57569 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let x = 
# 4983 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Ldot(_1, _3) )
# 57583 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 57591 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 57597 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos_constructors_ in
          (
# 4367 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~loc ~params ~priv ~attrs ident constructors, loc, None)
  )
# 57607 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = flag;
                    MenhirLib.EngineTypes.startp = _startpos_flag_;
                    MenhirLib.EngineTypes.endp = _endpos_flag_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _6 : unit = Obj.magic _6 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 57676 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 4982 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident _1 )
# 57690 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 57698 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 57705 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 57710 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos_constructors_ in
          (
# 4367 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~loc ~params ~priv ~attrs ident constructors, loc, None)
  )
# 57721 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1_inlined1;
                      MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = flag;
                        MenhirLib.EngineTypes.startp = _startpos_flag_;
                        MenhirLib.EngineTypes.endp = _endpos_flag_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _;
                          MenhirLib.EngineTypes.semv = _2;
                          MenhirLib.EngineTypes.startp = _startpos__2_;
                          MenhirLib.EngineTypes.endp = _endpos__2_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = _1;
                            MenhirLib.EngineTypes.startp = _startpos__1_;
                            MenhirLib.EngineTypes.endp = _endpos__1_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _6 : unit = Obj.magic _6 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _3 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 57802 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Ppxlib.longident) = Obj.magic _1_inlined1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 4983 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Ldot(_1, _3) )
# 57818 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 57826 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 57833 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 57838 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos_constructors_ in
          (
# 4367 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~loc ~params ~priv ~attrs ident constructors, loc, None)
  )
# 57849 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _7;
              MenhirLib.EngineTypes.startp = _startpos__7_;
              MenhirLib.EngineTypes.endp = _endpos__7_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = flag;
                    MenhirLib.EngineTypes.startp = _startpos_flag_;
                    MenhirLib.EngineTypes.endp = _endpos_flag_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = extension;
                      MenhirLib.EngineTypes.startp = _startpos_extension_;
                      MenhirLib.EngineTypes.endp = _endpos_extension_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _2;
                        MenhirLib.EngineTypes.startp = _startpos__2_;
                        MenhirLib.EngineTypes.endp = _endpos__2_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _7 : unit = Obj.magic _7 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 57918 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let extension : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic extension in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let x = 
# 4982 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident _1 )
# 57931 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 57939 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 57945 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos_constructors_ in
          (
# 4381 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~loc ~params ~priv ~attrs ident constructors, loc, Some extension)
  )
# 57955 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _7;
              MenhirLib.EngineTypes.startp = _startpos__7_;
              MenhirLib.EngineTypes.endp = _endpos__7_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = flag;
                        MenhirLib.EngineTypes.startp = _startpos_flag_;
                        MenhirLib.EngineTypes.endp = _endpos_flag_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _;
                          MenhirLib.EngineTypes.semv = extension;
                          MenhirLib.EngineTypes.startp = _startpos_extension_;
                          MenhirLib.EngineTypes.endp = _endpos_extension_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = _2;
                            MenhirLib.EngineTypes.startp = _startpos__2_;
                            MenhirLib.EngineTypes.endp = _endpos__2_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _7 : unit = Obj.magic _7 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _3 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 58036 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let extension : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic extension in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let x = 
# 4983 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Ldot(_1, _3) )
# 58051 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 58059 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 58065 "src/reason-parser/reason_parser.ml"
           in
          let _endpos = _endpos_constructors_ in
          (
# 4381 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~loc ~params ~priv ~attrs ident constructors, loc, Some extension)
  )
# 58075 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _7;
              MenhirLib.EngineTypes.startp = _startpos__7_;
              MenhirLib.EngineTypes.endp = _endpos__7_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = flag;
                    MenhirLib.EngineTypes.startp = _startpos_flag_;
                    MenhirLib.EngineTypes.endp = _endpos_flag_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = extension;
                      MenhirLib.EngineTypes.startp = _startpos_extension_;
                      MenhirLib.EngineTypes.endp = _endpos_extension_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = _2;
                        MenhirLib.EngineTypes.startp = _startpos__2_;
                        MenhirLib.EngineTypes.endp = _endpos__2_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _menhir_s;
                          MenhirLib.EngineTypes.semv = _1;
                          MenhirLib.EngineTypes.startp = _startpos__1_;
                          MenhirLib.EngineTypes.endp = _endpos__1_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _7 : unit = Obj.magic _7 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 58150 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let extension : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic extension in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 4982 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident _1 )
# 58165 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 58173 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 58180 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 58185 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos_constructors_ in
          (
# 4381 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~loc ~params ~priv ~attrs ident constructors, loc, Some extension)
  )
# 58196 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = constructors;
          MenhirLib.EngineTypes.startp = _startpos_constructors_;
          MenhirLib.EngineTypes.endp = _endpos_constructors_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = priv;
            MenhirLib.EngineTypes.startp = _startpos_priv_;
            MenhirLib.EngineTypes.endp = _endpos_priv_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _7;
              MenhirLib.EngineTypes.startp = _startpos__7_;
              MenhirLib.EngineTypes.endp = _endpos__7_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = params;
                MenhirLib.EngineTypes.startp = _startpos_params_;
                MenhirLib.EngineTypes.endp = _endpos_params_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2_inlined1;
                    MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                    MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1_inlined1;
                      MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = flag;
                        MenhirLib.EngineTypes.startp = _startpos_flag_;
                        MenhirLib.EngineTypes.endp = _endpos_flag_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _;
                          MenhirLib.EngineTypes.semv = extension;
                          MenhirLib.EngineTypes.startp = _startpos_extension_;
                          MenhirLib.EngineTypes.endp = _endpos_extension_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _;
                            MenhirLib.EngineTypes.semv = _2;
                            MenhirLib.EngineTypes.startp = _startpos__2_;
                            MenhirLib.EngineTypes.endp = _endpos__2_;
                            MenhirLib.EngineTypes.next = {
                              MenhirLib.EngineTypes.state = _menhir_s;
                              MenhirLib.EngineTypes.semv = _1;
                              MenhirLib.EngineTypes.startp = _startpos__1_;
                              MenhirLib.EngineTypes.endp = _endpos__1_;
                              MenhirLib.EngineTypes.next = _menhir_stack;
                            };
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let constructors : (Ppxlib.extension_constructor list) = Obj.magic constructors in
        let priv : (Ppxlib.private_flag) = Obj.magic priv in
        let _7 : unit = Obj.magic _7 in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let _3 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 58283 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Ppxlib.longident) = Obj.magic _1_inlined1 in
        let flag : (Ppxlib.rec_flag) = Obj.magic flag in
        let extension : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic extension in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_constructors_ in
        let _v =
          let ident =
            let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 4983 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Ldot(_1, _3) )
# 58300 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 58308 "src/reason-parser/reason_parser.ml"
            
          in
          let attrs =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 58315 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 58320 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos_constructors_ in
          (
# 4381 "src/reason-parser/reason_parser.mly"
  ( if flag <> Recursive then
      not_expecting _startpos_flag_ _endpos_flag_ "nonrec flag";
    let loc = mklocation _startpos__2_ _endpos in
    (Ast_helper.Te.mk ~loc ~params ~priv ~attrs ident constructors, loc, Some extension)
  )
# 58331 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression option) = Obj.magic _2 in
        let _1 : 
# 1244 "src/reason-parser/reason_parser.mly"
       (string * string option * string option)
# 58361 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _endpos = _endpos__2_ in
          let _startpos = _startpos__1_ in
          (
# 3752 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos _endpos in
    let (s, _, _) = _1 in
    let lident_lident_loc = mkloc (Ppxlib.Longident.Lident s) loc in
    let exp = match _2 with
      | Some x -> x
      | None -> mkexp ~loc (Pexp_ident lident_lident_loc)
    in
    (lident_lident_loc, exp)
  )
# 58380 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident Location.loc * Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : 
# 1244 "src/reason-parser/reason_parser.mly"
       (string * string option * string option)
# 58409 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _endpos = _endpos__2_ in
          let _startpos = _startpos__1_ in
          (
# 3736 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos _endpos in
    let (s, _, _) = _1 in
    let lident_lident_loc = mkloc (Ppxlib.Longident.Lident s) loc in
    let exp = mkexp ~loc (Pexp_ident lident_lident_loc) in
    (lident_lident_loc, exp)
  )
# 58425 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident Location.loc * Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : 
# 1244 "src/reason-parser/reason_parser.mly"
       (string * string option * string option)
# 58468 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _endpos = _endpos__4_ in
          let _startpos = _startpos__1_ in
          (
# 3743 "src/reason-parser/reason_parser.mly"
  ( let loc = mklocation _startpos _endpos in
    let (s, _, _) = _1 in
    let lident_lident_loc = mkloc (Ppxlib.Longident.Lident s) loc in
    let exp = _3 in
    (lident_lident_loc, exp)
  )
# 58484 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.longident Location.loc * Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : ((Ppxlib.longident Location.loc * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 58518 "src/reason-parser/reason_parser.ml"
           in
          (
# 3731 "src/reason-parser/reason_parser.mly"
                                                                           ( _1 )
# 58523 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.longident Location.loc * Ppxlib.expression) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : 
# 1244 "src/reason-parser/reason_parser.mly"
       (string * string option * string option)
# 58559 "src/reason-parser/reason_parser.ml"
         = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 58568 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4818 "src/reason-parser/reason_parser.mly"
  ( let (label, _raw, _delim) = _2 in
    let lblloc = mkloc label (mklocation _startpos__2_ _endpos__2_) in
    Ast_helper.Of.tag ~loc:(mklocation _symbolstartpos _endpos) ~attrs:_1 lblloc _4 )
# 58581 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.object_field))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : 
# 1244 "src/reason-parser/reason_parser.mly"
       (string * string option * string option)
# 58623 "src/reason-parser/reason_parser.ml"
         = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 58634 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 58639 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4818 "src/reason-parser/reason_parser.mly"
  ( let (label, _raw, _delim) = _2 in
    let lblloc = mkloc label (mklocation _startpos__2_ _endpos__2_) in
    Ast_helper.Of.tag ~loc:(mklocation _symbolstartpos _endpos) ~attrs:_1 lblloc _4 )
# 58652 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.object_field))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : (Ppxlib.object_field list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 58686 "src/reason-parser/reason_parser.ml"
           in
          (
# 4824 "src/reason-parser/reason_parser.mly"
                                                               ( _1 )
# 58691 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.object_field list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.structure) = 
# 1689 "src/reason-parser/reason_parser.mly"
                ( [] )
# 58710 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.structure) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.structure) = 
# 1690 "src/reason-parser/reason_parser.mly"
                   ( _1 )
# 58735 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.structure) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.structure) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.structure) = 
# 1691 "src/reason-parser/reason_parser.mly"
                                  ( _1 @ _3 )
# 58774 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 58802 "src/reason-parser/reason_parser.ml"
               in
              
# 1712 "src/reason-parser/reason_parser.mly"
      ( mkstrexp _2 _1 )
# 58807 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 58822 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 58828 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 58865 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 58870 "src/reason-parser/reason_parser.ml"
                
              in
              
# 1712 "src/reason-parser/reason_parser.mly"
      ( mkstrexp _2 _1 )
# 58876 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 58891 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 58897 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.structure) = Obj.magic _3 in
        let _2 : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 58933 "src/reason-parser/reason_parser.ml"
               in
              
# 1714 "src/reason-parser/reason_parser.mly"
      ( let (ext_attrs, ext_id) = _2 in
        struct_item_extension (_1@ext_attrs, ext_id) _3 )
# 58939 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 58954 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 58960 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.structure) = Obj.magic _3 in
        let _2 : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 59004 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 59009 "src/reason-parser/reason_parser.ml"
                
              in
              
# 1714 "src/reason-parser/reason_parser.mly"
      ( let (ext_attrs, ext_id) = _2 in
        struct_item_extension (_1@ext_attrs, ext_id) _3 )
# 59016 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 59031 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 59037 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _8;
          MenhirLib.EngineTypes.startp = _startpos__8_;
          MenhirLib.EngineTypes.endp = _endpos__8_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _7;
            MenhirLib.EngineTypes.startp = _startpos__7_;
            MenhirLib.EngineTypes.endp = _endpos__7_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _5;
                MenhirLib.EngineTypes.startp = _startpos__5_;
                MenhirLib.EngineTypes.endp = _endpos__5_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _3;
                    MenhirLib.EngineTypes.startp = _startpos__3_;
                    MenhirLib.EngineTypes.endp = _endpos__3_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _8 : (string list) = Obj.magic _8 in
        let _7 : unit = Obj.magic _7 in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let x : (string) = Obj.magic x in
        let _3 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__8_ in
        let _v =
          let _1 =
            let x =
              let _4 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 59111 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 59117 "src/reason-parser/reason_parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
              let _endpos = _endpos__8_ in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1718 "src/reason-parser/reason_parser.mly"
      ( let loc = mklocation _symbolstartpos _endpos in
        wrap_str_ext
          ~loc
          (mkstr (Pstr_primitive (Ast_helper.Val.mk _4 _6 ~prim:_8 ~attrs:_1 ~loc)))
          _3
      )
# 59133 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__8_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 59148 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 59154 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _8;
          MenhirLib.EngineTypes.startp = _startpos__8_;
          MenhirLib.EngineTypes.endp = _endpos__8_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _7;
            MenhirLib.EngineTypes.startp = _startpos__7_;
            MenhirLib.EngineTypes.endp = _endpos__7_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _5;
                MenhirLib.EngineTypes.startp = _startpos__5_;
                MenhirLib.EngineTypes.endp = _endpos__5_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _3;
                    MenhirLib.EngineTypes.startp = _startpos__3_;
                    MenhirLib.EngineTypes.endp = _endpos__3_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _8 : (string list) = Obj.magic _8 in
        let _7 : unit = Obj.magic _7 in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let x : (string) = Obj.magic x in
        let _3 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__8_ in
        let _v =
          let _1 =
            let x =
              let _4 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 59235 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 59242 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 59247 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos = _endpos__8_ in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1718 "src/reason-parser/reason_parser.mly"
      ( let loc = mklocation _symbolstartpos _endpos in
        wrap_str_ext
          ~loc
          (mkstr (Pstr_primitive (Ast_helper.Val.mk _4 _6 ~prim:_8 ~attrs:_1 ~loc)))
          _3
      )
# 59263 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__8_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 59278 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 59284 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : unit = Obj.magic _7 in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let x : (string) = Obj.magic x in
        let _3 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _1 =
            let x =
              let _4 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 59351 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 59357 "src/reason-parser/reason_parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
              let _endpos = _endpos__7_ in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1726 "src/reason-parser/reason_parser.mly"
      ( let loc = mklocation _symbolstartpos _endpos in
        wrap_str_ext
          ~loc
          (mkstr (Pstr_primitive (Ast_helper.Val.mk _4 _6 ~prim:[""] ~attrs:_1 ~loc)))
          _3
      )
# 59373 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__7_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 59388 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 59394 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : unit = Obj.magic _7 in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let x : (string) = Obj.magic x in
        let _3 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _1 =
            let x =
              let _4 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 59468 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 59475 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 59480 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos = _endpos__7_ in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1726 "src/reason-parser/reason_parser.mly"
      ( let loc = mklocation _symbolstartpos _endpos in
        wrap_str_ext
          ~loc
          (mkstr (Pstr_primitive (Ast_helper.Val.mk _4 _6 ~prim:[""] ~attrs:_1 ~loc)))
          _3
      )
# 59496 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__7_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 59511 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 59517 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.rec_flag * Ppxlib.type_declaration list * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 1733 "src/reason-parser/reason_parser.mly"
      (
        let (nonrec_flag, tyl, loc, extension) = _1 in
        wrap_str_ext
          ~loc
          (mkstr(Pstr_type (nonrec_flag, tyl)))
          extension
      )
# 59552 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 59566 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 59572 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 1741 "src/reason-parser/reason_parser.mly"
      ( let typext, loc, extension = _1 in
        wrap_str_ext
          ~loc
          (mkstr(Pstr_typext typext))
          extension
      )
# 59606 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 59620 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 59626 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.extension_constructor) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 1748 "src/reason-parser/reason_parser.mly"
      ( mkstr(Pstr_exception (Ast_helper.Te.mk_exception ~loc:_1.pext_loc _1)) )
# 59654 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 59668 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 59674 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.module_expr) = Obj.magic _3 in
        let _2 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 59711 "src/reason-parser/reason_parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1750 "src/reason-parser/reason_parser.mly"
      ( let loc = mklocation _symbolstartpos _endpos in
        let ext, letmod = _2 in
        wrap_str_ext
          ~loc
          (mkstr(Pstr_module (Ast_helper.Mb.mk letmod _3 ~attrs:_1 ~loc)))
          ext
      )
# 59728 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 59743 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 59749 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.module_expr) = Obj.magic _3 in
        let _2 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 59794 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 59799 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1750 "src/reason-parser/reason_parser.mly"
      ( let loc = mklocation _symbolstartpos _endpos in
        let ext, letmod = _2 in
        wrap_str_ext
          ~loc
          (mkstr(Pstr_module (Ast_helper.Mb.mk letmod _3 ~attrs:_1 ~loc)))
          ext
      )
# 59816 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 59831 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 59837 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.module_binding list) = Obj.magic _4 in
        let _3 : (Ppxlib.module_expr) = Obj.magic _3 in
        let _2 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 59881 "src/reason-parser/reason_parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1759 "src/reason-parser/reason_parser.mly"
      ( let loc = mklocation _symbolstartpos _endpos__2_ in
        let ext, letmodule = _2 in
        wrap_str_ext
          ~loc
          (mkstr (Pstr_recmodule ((Ast_helper.Mb.mk letmodule _3 ~attrs:_1 ~loc) :: _4)))
          ext
      )
# 59897 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 59912 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 59918 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.module_binding list) = Obj.magic _4 in
        let _3 : (Ppxlib.module_expr) = Obj.magic _3 in
        let _2 : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 59970 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 59975 "src/reason-parser/reason_parser.ml"
                
              in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1759 "src/reason-parser/reason_parser.mly"
      ( let loc = mklocation _symbolstartpos _endpos__2_ in
        let ext, letmodule = _2 in
        wrap_str_ext
          ~loc
          (mkstr (Pstr_recmodule ((Ast_helper.Mb.mk letmodule _3 ~attrs:_1 ~loc) :: _4)))
          ext
      )
# 59991 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 60006 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 60012 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x : (string) = Obj.magic x in
        let _4 : (unit option) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _5 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 60065 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos__5_ = _endpos_x_ in
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 60072 "src/reason-parser/reason_parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1767 "src/reason-parser/reason_parser.mly"
      ( let loc = mklocation _symbolstartpos _endpos in
        mkstr(Pstr_modtype (Ast_helper.Mtd.mk _5 ~attrs:_1 ~loc)) )
# 60084 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__2_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 60099 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 60105 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let x : (string) = Obj.magic x in
        let _4 : (unit option) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let x =
              let _5 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 60165 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos__5_ = _endpos_x_ in
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 60173 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 60178 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos = _endpos__5_ in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1767 "src/reason-parser/reason_parser.mly"
      ( let loc = mklocation _symbolstartpos _endpos in
        mkstr(Pstr_modtype (Ast_helper.Mtd.mk _5 ~attrs:_1 ~loc)) )
# 60190 "src/reason-parser/reason_parser.ml"
              
            in
            let _startpos_x_ = _startpos__1_ in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 60205 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 60211 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4;
              MenhirLib.EngineTypes.startp = _startpos__4_;
              MenhirLib.EngineTypes.endp = _endpos__4_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.module_type) = Obj.magic _6 in
        let x : (string) = Obj.magic x in
        let _4 : (unit option) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let x =
              let _5 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 60271 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 60277 "src/reason-parser/reason_parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
              let _endpos = _endpos__6_ in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1770 "src/reason-parser/reason_parser.mly"
      ( let loc = mklocation _symbolstartpos _endpos in
        mkstr(Pstr_modtype (Ast_helper.Mtd.mk _5 ~typ:_6 ~attrs:_1 ~loc)) )
# 60289 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 60304 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 60310 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4;
              MenhirLib.EngineTypes.startp = _startpos__4_;
              MenhirLib.EngineTypes.endp = _endpos__4_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.module_type) = Obj.magic _6 in
        let x : (string) = Obj.magic x in
        let _4 : (unit option) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let x =
              let _5 =
                let _endpos = _endpos_x_ in
                let _symbolstartpos = _startpos_x_ in
                
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 60377 "src/reason-parser/reason_parser.ml"
                
              in
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 60384 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 60389 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos = _endpos__6_ in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1770 "src/reason-parser/reason_parser.mly"
      ( let loc = mklocation _symbolstartpos _endpos in
        mkstr(Pstr_modtype (Ast_helper.Mtd.mk _5 ~typ:_6 ~attrs:_1 ~loc)) )
# 60401 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 60416 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 60422 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.structure_item) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 1772 "src/reason-parser/reason_parser.mly"
                       ( _1 )
# 60450 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 60464 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 60470 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Astlib.Ast_502.Parsetree.class_declaration list) = Obj.magic _4 in
        let _3 : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 60514 "src/reason-parser/reason_parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1774 "src/reason-parser/reason_parser.mly"
      ( let (ident, binding, virt, params) = _3 in
        let loc = mklocation _symbolstartpos _endpos__3_ in
        let first = Ast_helper.Ci.mk ident binding ~virt ~params ~attrs:_1 ~loc in
        mkstr (Pstr_class (first :: _4))
      )
# 60528 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 60543 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 60549 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Astlib.Ast_502.Parsetree.class_declaration list) = Obj.magic _4 in
        let _3 : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 60601 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 60606 "src/reason-parser/reason_parser.ml"
                
              in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1774 "src/reason-parser/reason_parser.mly"
      ( let (ident, binding, virt, params) = _3 in
        let loc = mklocation _symbolstartpos _endpos__3_ in
        let first = Ast_helper.Ci.mk ident binding ~virt ~params ~attrs:_1 ~loc in
        mkstr (Pstr_class (first :: _4))
      )
# 60620 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 60635 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 60641 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Astlib.Ast_502.Parsetree.class_type_declaration list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 1781 "src/reason-parser/reason_parser.mly"
      ( mkstr(Pstr_class_type _1) )
# 60669 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 60683 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 60689 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.module_expr) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 60725 "src/reason-parser/reason_parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1783 "src/reason-parser/reason_parser.mly"
      ( let loc = mklocation _symbolstartpos _endpos in
        mkstr(Pstr_include (Ast_helper.Incl.mk _3 ~attrs:_1 ~loc))
      )
# 60738 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 60753 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 60759 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.module_expr) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 60803 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 60808 "src/reason-parser/reason_parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
                _startpos__1_
              else
                _startpos__2_ in
              
# 1783 "src/reason-parser/reason_parser.mly"
      ( let loc = mklocation _symbolstartpos _endpos in
        mkstr(Pstr_include (Ast_helper.Incl.mk _3 ~attrs:_1 ~loc))
      )
# 60821 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 60836 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 60842 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _2 : (Ppxlib.extension) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 60871 "src/reason-parser/reason_parser.ml"
               in
              
# 1789 "src/reason-parser/reason_parser.mly"
      ( mkstr(Pstr_extension (_2, _1)) )
# 60876 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__2_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 60891 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 60897 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.extension) = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x =
              let _1 =
                let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 60934 "src/reason-parser/reason_parser.ml"
                 in
                
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 60939 "src/reason-parser/reason_parser.ml"
                
              in
              
# 1789 "src/reason-parser/reason_parser.mly"
      ( mkstr(Pstr_extension (_2, _1)) )
# 60945 "src/reason-parser/reason_parser.ml"
              
            in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 60960 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 60966 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Reason_parser_def.let_bindings) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 1791 "src/reason-parser/reason_parser.mly"
      ( val_of_let_bindings _1 )
# 60994 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5333 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.structure_item = x in
    { x
      with pstr_loc =
        { x.pstr_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 61008 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 1792 "src/reason-parser/reason_parser.mly"
      ( [_1] )
# 61014 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 61041 "src/reason-parser/reason_parser.ml"
           in
          (
# 1794 "src/reason-parser/reason_parser.mly"
     (
       List.map
        ~f:(fun x -> mkstr ~loc:x.loc (Pstr_attribute (make_floating_doc x.txt)))
        _1
     )
# 61050 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.structure))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.core_type list) = Obj.magic _4 in
        let _3 : (bool) = Obj.magic _3 in
        let _2 : (string) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _2 =
            let x = 
# 5094 "src/reason-parser/reason_parser.mly"
                                  ( _2 )
# 61099 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 61107 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_ in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 61114 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4864 "src/reason-parser/reason_parser.mly"
    ( Ast_helper.Rf.tag ~loc:(mklocation _symbolstartpos _endpos) ~attrs:_1 _2 _3 _4 )
# 61125 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.row_field))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.core_type list) = Obj.magic _4 in
        let _3 : (bool) = Obj.magic _3 in
        let _2 : (string) = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _2 =
            let _startpos__1_ = _startpos__1_inlined1_ in
            let x = 
# 5094 "src/reason-parser/reason_parser.mly"
                                  ( _2 )
# 61182 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 61190 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_inlined1_ in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 61198 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 61203 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4864 "src/reason-parser/reason_parser.mly"
    ( Ast_helper.Rf.tag ~loc:(mklocation _symbolstartpos _endpos) ~attrs:_1 _2 _3 _4 )
# 61214 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.row_field))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (string) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _2 =
            let x = 
# 5094 "src/reason-parser/reason_parser.mly"
                                  ( _2 )
# 61249 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 61257 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_ in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 61264 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _endpos = _endpos__2_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4866 "src/reason-parser/reason_parser.mly"
    ( Ast_helper.Rf.tag ~loc:(mklocation _symbolstartpos _endpos) ~attrs:_1 _2 true [] )
# 61275 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.row_field))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _2 : (string) = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _2 =
            let _startpos__1_ = _startpos__1_inlined1_ in
            let x = 
# 5094 "src/reason-parser/reason_parser.mly"
                                  ( _2 )
# 61318 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 61326 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__2_ = _startpos__1_inlined1_ in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 61334 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 61339 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__2_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4866 "src/reason-parser/reason_parser.mly"
    ( Ast_helper.Rf.tag ~loc:(mklocation _symbolstartpos _endpos) ~attrs:_1 _2 true [] )
# 61350 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.row_field))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.directive_argument_desc option) = Obj.magic _3 in
        let x : (string) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 61394 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 5074 "src/reason-parser/reason_parser.mly"
  (
    let pdir_arg = match _3 with
    | None -> None
    | Some pdira_desc -> Some {
      Ppxlib.pdira_desc;
      pdira_loc = mklocation _startpos__3_ _endpos__3_;
    }
    in
    Ppxlib.Ptop_dir
      { pdir_name = _2
      ; pdir_arg
      ; pdir_loc = _2.loc
      }
  )
# 61413 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.toplevel_phrase))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.toplevel_phrase) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.toplevel_phrase) = 
# 1474 "src/reason-parser/reason_parser.mly"
    ( reason_mapper Reason_syntax_util.apply_mapper_to_toplevel_phrase _1 )
# 61439 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type option) = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.core_type option * Ppxlib.core_type option) = 
# 3799 "src/reason-parser/reason_parser.mly"
    ( (Some _2, _3) )
# 61478 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.core_type option * Ppxlib.core_type option) = 
# 3801 "src/reason-parser/reason_parser.mly"
    ( (None, Some _2) )
# 61510 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.core_type) = Obj.magic x in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _2 =
            let _startpos__1_ = _startpos__1_inlined1_ in
            let _1 =
              let x = 
# 188 "<standard.mly>"
    ( x )
# 61553 "src/reason-parser/reason_parser.ml"
               in
              let _startpos_x_ = _startpos__1_ in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 61567 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3793 "src/reason-parser/reason_parser.mly"
                                                     (_1)
# 61573 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3803 "src/reason-parser/reason_parser.mly"
    ( (Some _2, None) )
# 61579 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type option * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic _3 in
        let _2 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _2 in
        let x : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 61617 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 61629 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4121 "src/reason-parser/reason_parser.mly"
    ( syntax_error _1.loc
        "a type name must start with a lower-case letter or an underscore";
      let (kind, priv, manifest), constraints, endpos, and_types = _3 in
      ((_1, _2, constraints, kind, priv, manifest), endpos, and_types) )
# 61638 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib_ast__Ast_helper_lite.str *
   (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list *
   (Ppxlib.core_type * Ppxlib.core_type * Location.t) list *
   Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  Lexing.position * Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic _3 in
        let _2 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _2 in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 61680 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 61692 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4126 "src/reason-parser/reason_parser.mly"
    ( let (kind, priv, manifest), constraints, endpos, and_types = _3 in
      ((_1, _2, constraints, kind, priv, manifest), endpos, and_types) )
# 61699 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib_ast__Ast_helper_lite.str *
   (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list *
   (Ppxlib.core_type * Ppxlib.core_type * Location.t) list *
   Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  Lexing.position * Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic _3 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 61739 "src/reason-parser/reason_parser.ml"
           in
          (
# 4132 "src/reason-parser/reason_parser.mly"
    ( let (cstrs, constraints, endpos, and_types) = _3 in
      ((Ptype_variant (cstrs), _2, None), constraints, endpos, and_types) )
# 61745 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 61790 "src/reason-parser/reason_parser.ml"
           in
          (
# 4132 "src/reason-parser/reason_parser.mly"
    ( let (cstrs, constraints, endpos, and_types) = _3 in
      ((Ptype_variant (cstrs), _2, None), constraints, endpos, and_types) )
# 61796 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic _5 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 61848 "src/reason-parser/reason_parser.ml"
           in
          (
# 4135 "src/reason-parser/reason_parser.mly"
    ( let (cstrs, constraints, endpos, and_types) = _5 in
      ((Ptype_variant cstrs, _4, Some _2), constraints, endpos, and_types) )
# 61854 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic _5 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 61913 "src/reason-parser/reason_parser.ml"
           in
          (
# 4135 "src/reason-parser/reason_parser.mly"
    ( let (cstrs, constraints, endpos, and_types) = _5 in
      ((Ptype_variant cstrs, _4, Some _2), constraints, endpos, and_types) )
# 61919 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.type_declaration list) = Obj.magic _3 in
        let _1 : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 = 
# 4179 "src/reason-parser/reason_parser.mly"
    ( [] )
# 61955 "src/reason-parser/reason_parser.ml"
           in
          let _endpos__2_ = _endpos__1_ in
          (
# 4138 "src/reason-parser/reason_parser.mly"
    ( (_1, _2, _endpos__2_, _3) )
# 61961 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.type_declaration list) = Obj.magic _3 in
        let _1_inlined1 : ((Ppxlib.core_type * Ppxlib.core_type * Location.t) list) = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let _1 = _1_inlined1 in
            
# 4180 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 62006 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__2_ = _endpos__1_inlined1_ in
          (
# 4138 "src/reason-parser/reason_parser.mly"
    ( (_1, _2, _endpos__2_, _3) )
# 62013 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : ((Ppxlib_ast__Ast_helper_lite.str *
   (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list *
   (Ppxlib.core_type * Ppxlib.core_type * Location.t) list *
   Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  Lexing.position * Ppxlib.type_declaration list) = Obj.magic _4 in
        let _3 : (Ppxlib.rec_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 62060 "src/reason-parser/reason_parser.ml"
           in
          (
# 4094 "src/reason-parser/reason_parser.mly"
  ( let (ident, params, constraints, kind, priv, manifest), endpos, and_types = _4 in
    let loc = mklocation _startpos__2_ endpos in
    let ty = Ast_helper.Type.mk ident ~params:params ~cstrs:constraints
             ~kind ~priv ?manifest ~attrs:_1 ~loc in
    (_3, ty :: and_types, loc, None)
  )
# 62070 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.rec_flag * Ppxlib.type_declaration list * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : ((Ppxlib_ast__Ast_helper_lite.str *
   (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list *
   (Ppxlib.core_type * Ppxlib.core_type * Location.t) list *
   Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  Lexing.position * Ppxlib.type_declaration list) = Obj.magic _4 in
        let _3 : (Ppxlib.rec_flag) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 62124 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 62129 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4094 "src/reason-parser/reason_parser.mly"
  ( let (ident, params, constraints, kind, priv, manifest), endpos, and_types = _4 in
    let loc = mklocation _startpos__2_ endpos in
    let ty = Ast_helper.Type.mk ident ~params:params ~cstrs:constraints
             ~kind ~priv ?manifest ~attrs:_1 ~loc in
    (_3, ty :: and_types, loc, None)
  )
# 62140 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.rec_flag * Ppxlib.type_declaration list * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _5 : ((Ppxlib_ast__Ast_helper_lite.str *
   (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list *
   (Ppxlib.core_type * Ppxlib.core_type * Location.t) list *
   Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  Lexing.position * Ppxlib.type_declaration list) = Obj.magic _5 in
        let _4 : (Ppxlib.rec_flag) = Obj.magic _4 in
        let _3 : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 62193 "src/reason-parser/reason_parser.ml"
           in
          (
# 4101 "src/reason-parser/reason_parser.mly"
  ( let (ident, params, constraints, kind, priv, manifest), endpos, and_types = _5 in
    let loc = mklocation _startpos__2_ endpos in
    let ty = Ast_helper.Type.mk ident ~params:params ~cstrs:constraints
             ~kind ~priv ?manifest ~attrs:_1 ~loc in
    (_4, ty :: and_types, loc, Some _3)
  )
# 62203 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.rec_flag * Ppxlib.type_declaration list * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : ((Ppxlib_ast__Ast_helper_lite.str *
   (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list *
   (Ppxlib.core_type * Ppxlib.core_type * Location.t) list *
   Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  Lexing.position * Ppxlib.type_declaration list) = Obj.magic _5 in
        let _4 : (Ppxlib.rec_flag) = Obj.magic _4 in
        let _3 : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 62264 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 62269 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4101 "src/reason-parser/reason_parser.mly"
  ( let (ident, params, constraints, kind, priv, manifest), endpos, and_types = _5 in
    let loc = mklocation _startpos__2_ endpos in
    let ty = Ast_helper.Type.mk ident ~params:params ~cstrs:constraints
             ~kind ~priv ?manifest ~attrs:_1 ~loc in
    (_4, ty :: and_types, loc, Some _3)
  )
# 62280 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.rec_flag * Ppxlib.type_declaration list * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 62303 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let x = 
# 4982 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Lident _1 )
# 62313 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 62321 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4979 "src/reason-parser/reason_parser.mly"
                                        ( _1 )
# 62327 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.lid))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 62361 "src/reason-parser/reason_parser.ml"
         = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let x = 
# 4983 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Ldot(_1, _3) )
# 62373 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 62381 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4979 "src/reason-parser/reason_parser.mly"
                                        ( _1 )
# 62387 "src/reason-parser/reason_parser.ml"
           : (Ppxlib_ast__Ast_helper_lite.lid))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) = 
# 4189 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_abstract, Public, None) )
# 62406 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type) = Obj.magic _3 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _2 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 62440 "src/reason-parser/reason_parser.ml"
             in
            
# 4196 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_abstract, _2, Some _3) )
# 62445 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4191 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 62451 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _2 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 62493 "src/reason-parser/reason_parser.ml"
             in
            
# 4196 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_abstract, _2, Some _3) )
# 62498 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4191 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 62504 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.label_declaration list) = Obj.magic _4 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 62539 "src/reason-parser/reason_parser.ml"
             in
            let _2 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 62544 "src/reason-parser/reason_parser.ml"
             in
            
# 4198 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _3 _4), _2, None) )
# 62549 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4191 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 62555 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.label_declaration list) = Obj.magic _4 in
        let _1_inlined1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _3 =
              let _1 = _1_inlined1 in
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 62599 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 62604 "src/reason-parser/reason_parser.ml"
              
            in
            let _2 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 62610 "src/reason-parser/reason_parser.ml"
             in
            
# 4198 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _3 _4), _2, None) )
# 62615 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4191 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 62621 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.label_declaration list) = Obj.magic _4 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 62663 "src/reason-parser/reason_parser.ml"
             in
            let _2 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 62668 "src/reason-parser/reason_parser.ml"
             in
            
# 4198 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _3 _4), _2, None) )
# 62673 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4191 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 62679 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.label_declaration list) = Obj.magic _4 in
        let _1_inlined2 : (Ppxlib.attribute Location.loc list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _3 =
              let _1 = _1_inlined2 in
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 62730 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 62735 "src/reason-parser/reason_parser.ml"
              
            in
            let _2 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 62741 "src/reason-parser/reason_parser.ml"
             in
            
# 4198 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _3 _4), _2, None) )
# 62746 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4191 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 62752 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _2 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 62787 "src/reason-parser/reason_parser.ml"
             in
            
# 4200 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_open, _2, None) )
# 62792 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4191 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 62798 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _2 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 62840 "src/reason-parser/reason_parser.ml"
             in
            
# 4200 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_open, _2, None) )
# 62845 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4191 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 62851 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 = 
# 4202 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_open, Public, Some _2) )
# 62899 "src/reason-parser/reason_parser.ml"
           in
          (
# 4191 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 62904 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.label_declaration list) = Obj.magic _6 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _5 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 62953 "src/reason-parser/reason_parser.ml"
             in
            let _4 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 62958 "src/reason-parser/reason_parser.ml"
             in
            
# 4204 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _5 _6), _4, Some _2) )
# 62963 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4191 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 62969 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.label_declaration list) = Obj.magic _6 in
        let _1_inlined1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _5 =
              let _1 = _1_inlined1 in
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 63027 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 63032 "src/reason-parser/reason_parser.ml"
              
            in
            let _4 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 63038 "src/reason-parser/reason_parser.ml"
             in
            
# 4204 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _5 _6), _4, Some _2) )
# 63043 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4191 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 63049 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.label_declaration list) = Obj.magic _6 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _5 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 63105 "src/reason-parser/reason_parser.ml"
             in
            let _4 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 63110 "src/reason-parser/reason_parser.ml"
             in
            
# 4204 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _5 _6), _4, Some _2) )
# 63115 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4191 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 63121 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.label_declaration list) = Obj.magic _6 in
        let _1_inlined2 : (Ppxlib.attribute Location.loc list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _5 =
              let _1 = _1_inlined2 in
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 63186 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 63191 "src/reason-parser/reason_parser.ml"
              
            in
            let _4 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 63197 "src/reason-parser/reason_parser.ml"
             in
            
# 4204 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _5 _6), _4, Some _2) )
# 63202 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4191 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 63208 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : (Ppxlib.variance) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) = 
# 4238 "src/reason-parser/reason_parser.mly"
                                            ( (_2, (_1, NoInjectivity)) )
# 63241 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined1 : (Ppxlib.core_type list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 = _1_inlined1 in
                let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 63292 "src/reason-parser/reason_parser.ml"
                 in
                
# 4708 "src/reason-parser/reason_parser.mly"
                                                           (_1)
# 63297 "src/reason-parser/reason_parser.ml"
                
              in
              
# 205 "<standard.mly>"
    ( x )
# 63303 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5405 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 63309 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4724 "src/reason-parser/reason_parser.mly"
                                             ( _1 )
# 63315 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1_inlined1 : (Ppxlib.core_type list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 = _1_inlined1 in
                let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 63367 "src/reason-parser/reason_parser.ml"
                 in
                
# 4708 "src/reason-parser/reason_parser.mly"
                                                           (_1)
# 63372 "src/reason-parser/reason_parser.ml"
                
              in
              
# 205 "<standard.mly>"
    ( x )
# 63378 "src/reason-parser/reason_parser.ml"
              
            in
            
# 5408 "src/reason-parser/reason_parser.mly"
                                                                ( _1 )
# 63384 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4725 "src/reason-parser/reason_parser.mly"
                                                       ( _1 )
# 63390 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : 
# 1198 "src/reason-parser/reason_parser.mly"
       (string)
# 63426 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let x = 
# 4712 "src/reason-parser/reason_parser.mly"
            ( Ppxlib.Longident.Lident _1 )
# 63439 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 63447 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 4718 "src/reason-parser/reason_parser.mly"
      ( mktyp(Ptyp_constr(_1, [])) )
# 63453 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 63468 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4721 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 63474 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4726 "src/reason-parser/reason_parser.mly"
                                              ( [_1] )
# 63480 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (unit option) = Obj.magic _2 in
        let _2_inlined1 : (Ppxlib.core_type list) = Obj.magic _2_inlined1 in
        let _1 : 
# 1198 "src/reason-parser/reason_parser.mly"
       (string)
# 63523 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let (_endpos__2_, _2) = (_endpos__2_inlined1_, _2_inlined1) in
            let _1 =
              let x =
                let _1 =
                  let x = 
# 4712 "src/reason-parser/reason_parser.mly"
            ( Ppxlib.Longident.Lident _1 )
# 63537 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 63545 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 4720 "src/reason-parser/reason_parser.mly"
      ( mktyp(Ptyp_constr(_1, _2)) )
# 63551 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 63566 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4721 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 63572 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4726 "src/reason-parser/reason_parser.mly"
                                              ( [_1] )
# 63578 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _2_inlined1 : (unit option) = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Ppxlib.core_type list) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : 
# 1198 "src/reason-parser/reason_parser.mly"
       (string)
# 63628 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _3 =
            let _1 = _1_inlined1 in
            let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 63639 "src/reason-parser/reason_parser.ml"
             in
            
# 4708 "src/reason-parser/reason_parser.mly"
                                                           (_1)
# 63644 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let x = 
# 4712 "src/reason-parser/reason_parser.mly"
            ( Ppxlib.Longident.Lident _1 )
# 63654 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 63662 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 4718 "src/reason-parser/reason_parser.mly"
      ( mktyp(Ptyp_constr(_1, [])) )
# 63668 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 63683 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4721 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 63689 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4728 "src/reason-parser/reason_parser.mly"
    (
      _1 :: _3
    )
# 63697 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2_inlined1;
                  MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                  MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _2_inlined2 : (unit option) = Obj.magic _2_inlined2 in
        let _1_inlined1 : (Ppxlib.core_type list) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _2_inlined1 : (Ppxlib.core_type list) = Obj.magic _2_inlined1 in
        let _1 : 
# 1198 "src/reason-parser/reason_parser.mly"
       (string)
# 63754 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _3 =
            let _1 = _1_inlined1 in
            let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 63765 "src/reason-parser/reason_parser.ml"
             in
            
# 4708 "src/reason-parser/reason_parser.mly"
                                                           (_1)
# 63770 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let (_endpos__2_, _2) = (_endpos__2_inlined1_, _2_inlined1) in
            let _1 =
              let x =
                let _1 =
                  let x = 
# 4712 "src/reason-parser/reason_parser.mly"
            ( Ppxlib.Longident.Lident _1 )
# 63781 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 63789 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 4720 "src/reason-parser/reason_parser.mly"
      ( mktyp(Ptyp_constr(_1, _2)) )
# 63795 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 63810 "src/reason-parser/reason_parser.ml"
              
            in
            
# 4721 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 63816 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4728 "src/reason-parser/reason_parser.mly"
    (
      _1 :: _3
    )
# 63824 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic _2 in
        let _1 : (Ppxlib.constructor_declaration) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = 
# 4272 "src/reason-parser/reason_parser.mly"
  ( let (cstrs, constraints, endpos, and_types) = _2 in
    (_1 :: cstrs, constraints, endpos, and_types)
  )
# 63863 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic _2 in
        let _1 : (Ppxlib.constructor_declaration) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = 
# 4279 "src/reason-parser/reason_parser.mly"
    ( let (cstrs, constraints, endpos, and_types) = _2 in
      (_1 :: cstrs, constraints, endpos, and_types)
    )
# 63901 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _2 : (Ppxlib.type_declaration list) = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 4179 "src/reason-parser/reason_parser.mly"
    ( [] )
# 63927 "src/reason-parser/reason_parser.ml"
           in
          let _endpos__1_ = _endpos__0_ in
          (
# 4283 "src/reason-parser/reason_parser.mly"
    ( ([], _1, _endpos__1_, _2) )
# 63933 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.type_declaration list) = Obj.magic _2 in
        let _1 : ((Ppxlib.core_type * Ppxlib.core_type * Location.t) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 4180 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 63969 "src/reason-parser/reason_parser.ml"
           in
          (
# 4283 "src/reason-parser/reason_parser.mly"
    ( ([], _1, _endpos__1_, _2) )
# 63974 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = kind_priv_man;
          MenhirLib.EngineTypes.startp = _startpos_kind_priv_man_;
          MenhirLib.EngineTypes.endp = _endpos_kind_priv_man_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = params;
            MenhirLib.EngineTypes.startp = _startpos_params_;
            MenhirLib.EngineTypes.endp = _endpos_params_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = nrf;
                MenhirLib.EngineTypes.startp = _startpos_nrf_;
                MenhirLib.EngineTypes.endp = _endpos_nrf_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let kind_priv_man : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic kind_priv_man in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 64026 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let nrf : (Ppxlib.rec_flag) = Obj.magic nrf in
        let _2 : unit = Obj.magic _2 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__2_ in
        let _endpos = _endpos_kind_priv_man_ in
        let _v =
          let name =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 64040 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 64046 "src/reason-parser/reason_parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4155 "src/reason-parser/reason_parser.mly"
      ( check_nonrec_absent (mklocation _startpos_nrf_ _endpos_nrf_) nrf;
        let (kind, priv, manifest), cstrs, endpos, and_types = kind_priv_man in
        let ty =
          Ast_helper.Type.mk name ~params ~cstrs ~kind ~priv
            ?manifest ~attrs:_1
            ~loc:(mklocation _symbolstartpos endpos)
        in
        ty :: and_types )
# 64063 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = kind_priv_man;
          MenhirLib.EngineTypes.startp = _startpos_kind_priv_man_;
          MenhirLib.EngineTypes.endp = _endpos_kind_priv_man_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = params;
            MenhirLib.EngineTypes.startp = _startpos_params_;
            MenhirLib.EngineTypes.endp = _endpos_params_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = nrf;
                MenhirLib.EngineTypes.startp = _startpos_nrf_;
                MenhirLib.EngineTypes.endp = _endpos_nrf_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let kind_priv_man : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic kind_priv_man in
        let params : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic params in
        let x : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 64119 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let nrf : (Ppxlib.rec_flag) = Obj.magic nrf in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_kind_priv_man_ in
        let _v =
          let name =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 64134 "src/reason-parser/reason_parser.ml"
            
          in
          let _1 =
            let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 64141 "src/reason-parser/reason_parser.ml"
             in
            
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 64146 "src/reason-parser/reason_parser.ml"
            
          in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 4155 "src/reason-parser/reason_parser.mly"
      ( check_nonrec_absent (mklocation _startpos_nrf_ _endpos_nrf_) nrf;
        let (kind, priv, manifest), cstrs, endpos, and_types = kind_priv_man in
        let ty =
          Ast_helper.Type.mk name ~params ~cstrs ~kind ~priv
            ?manifest ~attrs:_1
            ~loc:(mklocation _symbolstartpos endpos)
        in
        ty :: and_types )
# 64163 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic _3 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 64199 "src/reason-parser/reason_parser.ml"
           in
          (
# 4143 "src/reason-parser/reason_parser.mly"
    ( let (cstrs, constraints, endpos, and_types) = _3 in
      ((Ptype_variant (cstrs), _2, None), constraints, endpos, and_types) )
# 64205 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 64250 "src/reason-parser/reason_parser.ml"
           in
          (
# 4143 "src/reason-parser/reason_parser.mly"
    ( let (cstrs, constraints, endpos, and_types) = _3 in
      ((Ptype_variant (cstrs), _2, None), constraints, endpos, and_types) )
# 64256 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic _5 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 64308 "src/reason-parser/reason_parser.ml"
           in
          (
# 4146 "src/reason-parser/reason_parser.mly"
    ( let (cstrs, constraints, endpos, and_types) = _5 in
      ((Ppxlib.Ptype_variant cstrs, _4, Some _2), constraints, endpos, and_types) )
# 64314 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) = Obj.magic _5 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _4 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 64373 "src/reason-parser/reason_parser.ml"
           in
          (
# 4146 "src/reason-parser/reason_parser.mly"
    ( let (cstrs, constraints, endpos, and_types) = _5 in
      ((Ppxlib.Ptype_variant cstrs, _4, Some _2), constraints, endpos, and_types) )
# 64379 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.type_declaration list) = Obj.magic _3 in
        let _1 : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 = 
# 4179 "src/reason-parser/reason_parser.mly"
    ( [] )
# 64415 "src/reason-parser/reason_parser.ml"
           in
          let _endpos__2_ = _endpos__1_ in
          (
# 4149 "src/reason-parser/reason_parser.mly"
    ( (_1, _2, _endpos__2_, _3) )
# 64421 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.type_declaration list) = Obj.magic _3 in
        let _1_inlined1 : ((Ppxlib.core_type * Ppxlib.core_type * Location.t) list) = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _2 =
            let _1 = _1_inlined1 in
            
# 4180 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 64466 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__2_ = _endpos__1_inlined1_ in
          (
# 4149 "src/reason-parser/reason_parser.mly"
    ( (_1, _2, _endpos__2_, _3) )
# 64473 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type) = Obj.magic _3 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _2 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 64510 "src/reason-parser/reason_parser.ml"
             in
            
# 4196 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_abstract, _2, Some _3) )
# 64515 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4185 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 64521 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.core_type) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _2 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 64563 "src/reason-parser/reason_parser.ml"
             in
            
# 4196 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_abstract, _2, Some _3) )
# 64568 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4185 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 64574 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.label_declaration list) = Obj.magic _4 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 64609 "src/reason-parser/reason_parser.ml"
             in
            let _2 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 64614 "src/reason-parser/reason_parser.ml"
             in
            
# 4198 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _3 _4), _2, None) )
# 64619 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4185 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 64625 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.label_declaration list) = Obj.magic _4 in
        let _1_inlined1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _3 =
              let _1 = _1_inlined1 in
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 64669 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 64674 "src/reason-parser/reason_parser.ml"
              
            in
            let _2 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 64680 "src/reason-parser/reason_parser.ml"
             in
            
# 4198 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _3 _4), _2, None) )
# 64685 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4185 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 64691 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.label_declaration list) = Obj.magic _4 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _3 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 64733 "src/reason-parser/reason_parser.ml"
             in
            let _2 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 64738 "src/reason-parser/reason_parser.ml"
             in
            
# 4198 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _3 _4), _2, None) )
# 64743 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4185 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 64749 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.label_declaration list) = Obj.magic _4 in
        let _1_inlined2 : (Ppxlib.attribute Location.loc list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _3 =
              let _1 = _1_inlined2 in
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 64800 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 64805 "src/reason-parser/reason_parser.ml"
              
            in
            let _2 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 64811 "src/reason-parser/reason_parser.ml"
             in
            
# 4198 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _3 _4), _2, None) )
# 64816 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4185 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 64822 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _2 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 64857 "src/reason-parser/reason_parser.ml"
             in
            
# 4200 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_open, _2, None) )
# 64862 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4185 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 64868 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _2 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 64910 "src/reason-parser/reason_parser.ml"
             in
            
# 4200 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_open, _2, None) )
# 64915 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4185 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 64921 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 = 
# 4202 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_open, Public, Some _2) )
# 64969 "src/reason-parser/reason_parser.ml"
           in
          (
# 4185 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 64974 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.label_declaration list) = Obj.magic _6 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _5 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 65023 "src/reason-parser/reason_parser.ml"
             in
            let _4 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 65028 "src/reason-parser/reason_parser.ml"
             in
            
# 4204 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _5 _6), _4, Some _2) )
# 65033 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4185 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 65039 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.label_declaration list) = Obj.magic _6 in
        let _1_inlined1 : (Ppxlib.attribute Location.loc list) = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _5 =
              let _1 = _1_inlined1 in
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 65097 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 65102 "src/reason-parser/reason_parser.ml"
              
            in
            let _4 = 
# 5114 "src/reason-parser/reason_parser.mly"
                  ( Public )
# 65108 "src/reason-parser/reason_parser.ml"
             in
            
# 4204 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _5 _6), _4, Some _2) )
# 65113 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4185 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 65119 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.label_declaration list) = Obj.magic _6 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _5 = 
# 5230 "src/reason-parser/reason_parser.mly"
    ( [] )
# 65175 "src/reason-parser/reason_parser.ml"
             in
            let _4 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 65180 "src/reason-parser/reason_parser.ml"
             in
            
# 4204 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _5 _6), _4, Some _2) )
# 65185 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4185 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 65191 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.label_declaration list) = Obj.magic _6 in
        let _1_inlined2 : (Ppxlib.attribute Location.loc list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Ppxlib.core_type) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _5 =
              let _1 = _1_inlined2 in
              let _1 = 
# 5226 "src/reason-parser/reason_parser.mly"
                                               ( _1 )
# 65256 "src/reason-parser/reason_parser.ml"
               in
              
# 5231 "src/reason-parser/reason_parser.mly"
                       ( List.map ~f:(fun x -> x.txt) _1 )
# 65261 "src/reason-parser/reason_parser.ml"
              
            in
            let _4 = 
# 5115 "src/reason-parser/reason_parser.mly"
                  ( Private )
# 65267 "src/reason-parser/reason_parser.ml"
             in
            
# 4204 "src/reason-parser/reason_parser.mly"
    ( (Ppxlib.Ptype_record (prepend_attrs_to_labels _5 _6), _4, Some _2) )
# 65272 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4185 "src/reason-parser/reason_parser.mly"
      ( _1 )
# 65278 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (string) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let x = 
# 4248 "src/reason-parser/reason_parser.mly"
               ( mktyp (Ptyp_var _2) )
# 65313 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5313 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.core_type = x in
    { x
      with ptyp_loc =
        { x.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos }
    }
  )
# 65327 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4249 "src/reason-parser/reason_parser.mly"
  ( _1 )
# 65333 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4230 "src/reason-parser/reason_parser.mly"
  ( let (first: Ppxlib.core_type), second = _1 in
    let ptyp_loc =
        {first.ptyp_loc with loc_start = _symbolstartpos; loc_end = _endpos}
    in
    ({first with ptyp_loc}, second)
  )
# 65367 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = 
# 4213 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 65393 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = x;
            MenhirLib.EngineTypes.startp = _startpos_x_;
            MenhirLib.EngineTypes.endp = _endpos_x_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let x : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 = 
# 205 "<standard.mly>"
    ( x )
# 65434 "src/reason-parser/reason_parser.ml"
             in
            
# 5408 "src/reason-parser/reason_parser.mly"
                                                                ( _1 )
# 65439 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4218 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 65445 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (unit option) = Obj.magic _2 in
        let _1 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 = 
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 65479 "src/reason-parser/reason_parser.ml"
           in
          (
# 4208 "src/reason-parser/reason_parser.mly"
                                                                      (_1)
# 65484 "src/reason-parser/reason_parser.ml"
           : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.variance) = 
# 4241 "src/reason-parser/reason_parser.mly"
                ( NoVariance )
# 65503 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.variance) = 
# 4242 "src/reason-parser/reason_parser.mly"
                ( Covariant )
# 65528 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.variance) = 
# 4243 "src/reason-parser/reason_parser.mly"
                ( Contravariant )
# 65553 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.core_type) = 
# 4637 "src/reason-parser/reason_parser.mly"
                                 ( _1 )
# 65578 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.core_type) = 
# 4638 "src/reason-parser/reason_parser.mly"
                             ( _1 )
# 65603 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 65635 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 2984 "src/reason-parser/reason_parser.mly"
    ( _1 )
# 65641 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 65652 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 65658 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 65664 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _endpos = _endpos__3_ in
                let _startpos = _startpos__1_ in
                
# 2986 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc _3 )
# 65711 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 65722 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 65728 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 65734 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Reason_parser_def.labelled_parameter Location.loc list * bool) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _endpos = _endpos__4_ in
                let _startpos = _startpos__1_ in
                
# 2989 "src/reason-parser/reason_parser.mly"
    ( let (ps, uncurried) = _2 in
      let exp = List.fold_right ~f:mkexp_fun ps ~init:_4 in
      if uncurried then
        let loc = mklocation _startpos _endpos in
        {exp with pexp_attributes = (uncurry_payload loc)::exp.pexp_attributes}
      else exp
    )
# 65793 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 65804 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 65810 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 65816 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4;
              MenhirLib.EngineTypes.startp = _startpos__4_;
              MenhirLib.EngineTypes.endp = _endpos__4_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.expression) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Reason_parser_def.labelled_parameter Location.loc list * bool) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _endpos = _endpos__6_ in
                let _startpos = _startpos__1_ in
                
# 2997 "src/reason-parser/reason_parser.mly"
    ( let (ps, uncurried) = _2 in
    let exp = List.fold_right ~f:mkexp_fun ps
        ~init:(ghexp_constraint (mklocation _startpos__4_ _endpos) _6 (Some _4, None))  in
    if uncurried then
      let loc = mklocation _startpos _endpos in
      {exp with pexp_attributes = (uncurry_payload loc)::exp.pexp_attributes}
    else exp
    )
# 65890 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 65901 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 65907 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 65913 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _2_inlined1 : (Ppxlib.case list) = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Ppxlib.case) = Obj.magic _1_inlined1 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_inlined1_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _3 =
                  let (_1, _2) = (_1_inlined1, _2_inlined1) in
                  let _1 = 
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 65966 "src/reason-parser/reason_parser.ml"
                   in
                  
# 3594 "src/reason-parser/reason_parser.mly"
                                                            ( _1 )
# 65971 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__3_ = _endpos__2_inlined1_ in
                let _endpos = _endpos__3_ in
                let _startpos = _startpos__1_ in
                
# 3010 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc (mkexp (Pexp_function ([], None, (Pfunction_cases (_3, loc, []))))) )
# 65981 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__2_inlined1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 65992 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 65998 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 66004 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : unit = Obj.magic _6 in
        let _2_inlined1 : (Ppxlib.case list) = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Ppxlib.case) = Obj.magic _1_inlined1 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _5 =
                  let (_1, _2) = (_1_inlined1, _2_inlined1) in
                  let _1 = 
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 66078 "src/reason-parser/reason_parser.ml"
                   in
                  
# 3594 "src/reason-parser/reason_parser.mly"
                                                            ( _1 )
# 66083 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos = _endpos__6_ in
                let _startpos = _startpos__1_ in
                
# 3014 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc (mkexp (Pexp_match (_3, _5))) )
# 66092 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 66103 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 66109 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 66115 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : unit = Obj.magic _6 in
        let _2_inlined1 : (Ppxlib.case list) = Obj.magic _2_inlined1 in
        let _1_inlined1 : (Ppxlib.case) = Obj.magic _1_inlined1 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _5 =
                  let (_1, _2) = (_1_inlined1, _2_inlined1) in
                  let _1 = 
# 5381 "src/reason-parser/reason_parser.mly"
                                          ( _1 :: List.rev _2 )
# 66189 "src/reason-parser/reason_parser.ml"
                   in
                  
# 3594 "src/reason-parser/reason_parser.mly"
                                                            ( _1 )
# 66194 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos = _endpos__6_ in
                let _startpos = _startpos__1_ in
                
# 3018 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc (mkexp (Pexp_try (_3, _5))) )
# 66203 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 66214 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 66220 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 66226 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _5 = 
# 123 "<standard.mly>"
    ( None )
# 66277 "src/reason-parser/reason_parser.ml"
                 in
                let _endpos__5_ = _endpos__1_inlined1_ in
                let _4 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 66287 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos = _endpos__5_ in
                let _startpos = _startpos__1_ in
                
# 3022 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc (mkexp (Pexp_ifthenelse(_3, _4, _5))) )
# 66296 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 66307 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 66313 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 66319 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x;
          MenhirLib.EngineTypes.startp = _startpos_x_;
          MenhirLib.EngineTypes.endp = _endpos_x_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let x : (Ppxlib.expression) = Obj.magic x in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _5 =
                  let x = 
# 188 "<standard.mly>"
    ( x )
# 66385 "src/reason-parser/reason_parser.ml"
                   in
                  
# 126 "<standard.mly>"
    ( Some x )
# 66390 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__5_ = _endpos_x_ in
                let _4 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 66401 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos = _endpos__5_ in
                let _startpos = _startpos__1_ in
                
# 3022 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc (mkexp (Pexp_ifthenelse(_3, _4, _5))) )
# 66410 "src/reason-parser/reason_parser.ml"
                
              in
              let _startpos_x_ = _startpos__1_ in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 66421 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 66427 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 66433 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _4 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 66488 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__4_ = _endpos__1_inlined1_ in
                let _endpos = _endpos__4_ in
                let _startpos = _startpos__1_ in
                
# 3025 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc (mkexp (Pexp_while(_3, _4))) )
# 66498 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 66509 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 66515 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 66521 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _9;
            MenhirLib.EngineTypes.startp = _startpos__9_;
            MenhirLib.EngineTypes.endp = _endpos__9_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _8;
              MenhirLib.EngineTypes.startp = _startpos__8_;
              MenhirLib.EngineTypes.endp = _endpos__8_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _7;
                MenhirLib.EngineTypes.startp = _startpos__7_;
                MenhirLib.EngineTypes.endp = _endpos__7_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _6;
                  MenhirLib.EngineTypes.startp = _startpos__6_;
                  MenhirLib.EngineTypes.endp = _endpos__6_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _5;
                    MenhirLib.EngineTypes.startp = _startpos__5_;
                    MenhirLib.EngineTypes.endp = _endpos__5_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _4;
                      MenhirLib.EngineTypes.startp = _startpos__4_;
                      MenhirLib.EngineTypes.endp = _endpos__4_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _;
                        MenhirLib.EngineTypes.semv = _3;
                        MenhirLib.EngineTypes.startp = _startpos__3_;
                        MenhirLib.EngineTypes.endp = _endpos__3_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _;
                          MenhirLib.EngineTypes.semv = _2;
                          MenhirLib.EngineTypes.startp = _startpos__2_;
                          MenhirLib.EngineTypes.endp = _endpos__2_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = _1;
                            MenhirLib.EngineTypes.startp = _startpos__1_;
                            MenhirLib.EngineTypes.endp = _endpos__1_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _9 : unit = Obj.magic _9 in
        let _8 : (Ppxlib.expression) = Obj.magic _8 in
        let _7 : (Ppxlib.direction_flag) = Obj.magic _7 in
        let _6 : (Ppxlib.expression) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.pattern) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _10 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 66618 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos__10_ = _endpos__1_inlined1_ in
                let _endpos = _endpos__10_ in
                let _startpos = _startpos__1_ in
                
# 3029 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _startpos _endpos in
      _2 ~loc (mkexp (Pexp_for(_4, _6, _8, _7, _10))) )
# 66628 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 66639 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 66645 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 66651 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _8;
          MenhirLib.EngineTypes.startp = _startpos__8_;
          MenhirLib.EngineTypes.endp = _endpos__8_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _7;
            MenhirLib.EngineTypes.startp = _startpos__7_;
            MenhirLib.EngineTypes.endp = _endpos__7_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _6;
              MenhirLib.EngineTypes.startp = _startpos__6_;
              MenhirLib.EngineTypes.endp = _endpos__6_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _5;
                MenhirLib.EngineTypes.startp = _startpos__5_;
                MenhirLib.EngineTypes.endp = _endpos__5_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _4;
                  MenhirLib.EngineTypes.startp = _startpos__4_;
                  MenhirLib.EngineTypes.endp = _endpos__4_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _3;
                    MenhirLib.EngineTypes.startp = _startpos__3_;
                    MenhirLib.EngineTypes.endp = _endpos__3_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _8 : unit = Obj.magic _8 in
        let _7 : (Ppxlib.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__8_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _endpos = _endpos__8_ in
                let _symbolstartpos = _startpos__1_ in
                
# 3032 "src/reason-parser/reason_parser.mly"
    ( let loc_colon = mklocation _startpos__2_ _endpos__2_ in
      let loc = mklocation _symbolstartpos _endpos in
      mkexp_cons loc_colon (mkexp ~ghost:true ~loc (Pexp_tuple[_5;_7])) loc
    )
# 66735 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__8_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 66746 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 66752 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 66758 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4912 "src/reason-parser/reason_parser.mly"
                      ( ">" )
# 66804 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 66812 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 66822 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 66833 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 66839 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 66845 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : 
# 1175 "src/reason-parser/reason_parser.mly"
       (string)
# 66880 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let x = 
# 4913 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 66895 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 66903 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 66913 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 66924 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 66930 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 66936 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : 
# 1176 "src/reason-parser/reason_parser.mly"
       (string)
# 66971 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let x = 
# 4914 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 66986 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 66994 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 67004 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 67015 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 67021 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 67027 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : 
# 1177 "src/reason-parser/reason_parser.mly"
       (string)
# 67062 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let x = 
# 4915 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 67077 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 67085 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 67095 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 67106 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 67112 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 67118 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : 
# 1178 "src/reason-parser/reason_parser.mly"
       (string)
# 67153 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let x = 
# 4916 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 67168 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 67176 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 67186 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 67197 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 67203 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 67209 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4918 "src/reason-parser/reason_parser.mly"
                      ( "/>" )
# 67255 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 67263 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 67273 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 67284 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 67290 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 67296 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : 
# 1181 "src/reason-parser/reason_parser.mly"
       (string)
# 67331 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let x = 
# 4919 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 67346 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 67354 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 67364 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 67375 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 67381 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 67387 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4920 "src/reason-parser/reason_parser.mly"
                  ( "+"  )
# 67433 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 67441 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 67451 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 67462 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 67468 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 67474 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4921 "src/reason-parser/reason_parser.mly"
                  ( "+." )
# 67520 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 67528 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 67538 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 67549 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 67555 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 67561 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4922 "src/reason-parser/reason_parser.mly"
                  ( "-"  )
# 67607 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 67615 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 67625 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 67636 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 67642 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 67648 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4923 "src/reason-parser/reason_parser.mly"
                  ( "-." )
# 67694 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 67702 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 67712 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 67723 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 67729 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 67735 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4924 "src/reason-parser/reason_parser.mly"
                      ( "*" )
# 67781 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 67789 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 67799 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 67810 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 67816 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 67822 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4925 "src/reason-parser/reason_parser.mly"
                      ( "<" )
# 67868 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 67876 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 67886 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 67897 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 67903 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 67909 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4926 "src/reason-parser/reason_parser.mly"
                      ( "or" )
# 67955 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 67963 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 67973 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 67984 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 67990 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 67996 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4927 "src/reason-parser/reason_parser.mly"
                      ( "||" )
# 68042 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 68050 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 68060 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 68071 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 68077 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 68083 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4928 "src/reason-parser/reason_parser.mly"
                      ( "&" )
# 68129 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 68137 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 68147 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 68158 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 68164 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 68170 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4929 "src/reason-parser/reason_parser.mly"
                      ( "&&" )
# 68216 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 68224 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 68234 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 68245 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 68251 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 68257 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4930 "src/reason-parser/reason_parser.mly"
                      ( ":=" )
# 68303 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 68311 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 68321 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 68332 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 68338 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 68344 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4931 "src/reason-parser/reason_parser.mly"
                      ( "+=" )
# 68390 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 68398 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 68408 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 68419 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 68425 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 68431 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4932 "src/reason-parser/reason_parser.mly"
                      ( "%" )
# 68477 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 68485 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 68495 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 68506 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 68512 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 68518 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4933 "src/reason-parser/reason_parser.mly"
                     ( ">..." )
# 68564 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 68572 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 68582 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 68593 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 68599 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 68605 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
                  let x = 
# 4940 "src/reason-parser/reason_parser.mly"
                      ( "<..>" )
# 68651 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 68659 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 68669 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 68680 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 68686 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 68692 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let _startpos__1_ = _startpos__1_inlined1_ in
                  let x = 
# 4941 "src/reason-parser/reason_parser.mly"
                      ( ">>" )
# 68745 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 68753 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3037 "src/reason-parser/reason_parser.mly"
    ( let op = match _2.txt with
      | "->" -> {_2 with txt = "|."}
      | _ -> _2
      in mkinfix _1 op _3
    )
# 68763 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 68774 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 68780 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 68786 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let x = 
# 5140 "src/reason-parser/reason_parser.mly"
                  ( "-"  )
# 68824 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 68832 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3043 "src/reason-parser/reason_parser.mly"
    ( mkuminus _1 _2 )
# 68838 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 68849 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 68855 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 68861 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let x = 
# 5141 "src/reason-parser/reason_parser.mly"
                  ( "-." )
# 68899 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 68907 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3043 "src/reason-parser/reason_parser.mly"
    ( mkuminus _1 _2 )
# 68913 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 68924 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 68930 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 68936 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let x = 
# 5145 "src/reason-parser/reason_parser.mly"
                  ( "+"  )
# 68974 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 68982 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3045 "src/reason-parser/reason_parser.mly"
    ( mkuplus _1 _2 )
# 68988 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 68999 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 69005 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 69011 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let x = 
# 5146 "src/reason-parser/reason_parser.mly"
                  ( "+." )
# 69049 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 69057 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3045 "src/reason-parser/reason_parser.mly"
    ( mkuplus _1 _2 )
# 69063 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 69074 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 69080 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 69086 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _2;
          MenhirLib.EngineTypes.startp = _startpos__2_;
          MenhirLib.EngineTypes.endp = _endpos__2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : (Ppxlib.expression) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__2_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let x = 
# 3046 "src/reason-parser/reason_parser.mly"
                ("!")
# 69124 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 69132 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3047 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_apply(mkoperator _1, [Nolabel,_2])) )
# 69138 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__2_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 69149 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 69155 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 69161 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _3 =
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 69222 "src/reason-parser/reason_parser.ml"
                  
                in
                let _1 =
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 69231 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3049 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_setfield(_1, _3, _5)) )
# 69237 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 69248 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 69254 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 69260 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4;
              MenhirLib.EngineTypes.startp = _startpos__4_;
              MenhirLib.EngineTypes.endp = _endpos__4_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.expression) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 69328 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos = _endpos__6_ in
                let _symbolstartpos = _startpos__1_ in
                
# 3051 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let exp = Ppxlib.Pexp_ident(array_function ~loc "Array" "set") in
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc exp,
                       [Nolabel,_1; Nolabel,_3; Nolabel,_6]))
    )
# 69340 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__6_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 69351 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 69357 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 69363 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : (Ppxlib.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 69438 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos = _endpos__7_ in
                let _symbolstartpos = _startpos__1_ in
                
# 3057 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let exp = Ppxlib.Pexp_ident(array_function ~loc "String" "set") in
      mkexp(Pexp_apply(mkexp ~ghost:true ~loc exp,
                       [Nolabel,_1; Nolabel,_4; Nolabel,_7]))
    )
# 69450 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__7_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 69461 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 69467 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 69473 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__4_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__4_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _1_inlined2;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1_inlined1;
                      MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _5 : unit = Obj.magic _5 in
        let _4_inlined1 : (unit option) = Obj.magic _4_inlined1 in
        let _1_inlined2 : (Ppxlib.expression list) = Obj.magic _1_inlined2 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let _1_inlined1 = _1_inlined2 in
                  let _3 =
                    let _1 = _1_inlined1 in
                    
# 5395 "src/reason-parser/reason_parser.mly"
                                       ( List.rev _1 )
# 69556 "src/reason-parser/reason_parser.ml"
                    
                  in
                  
# 3149 "src/reason-parser/reason_parser.mly"
                                                                 ( _3 )
# 69562 "src/reason-parser/reason_parser.ml"
                  
                in
                let _1 =
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 69571 "src/reason-parser/reason_parser.ml"
                  
                in
                let _endpos = _endpos__4_ in
                let _symbolstartpos = _startpos__1_ in
                
# 3063 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      bigarray_set ~loc _1 _2 _4
    )
# 69581 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__4_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 69592 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 69598 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 69604 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 69640 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _1 =
                  let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 69653 "src/reason-parser/reason_parser.ml"
                   in
                  let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
                  let _endpos = _endpos_x_ in
                  let _symbolstartpos = _startpos_x_ in
                  
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 69661 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3067 "src/reason-parser/reason_parser.mly"
    ( mkexp(Pexp_setinstvar(_1, _3)) )
# 69667 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__3_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 69678 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 69684 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 69690 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 69731 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3069 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_assert _2) )
# 69737 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 69748 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 69754 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 69760 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _1_inlined1 : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _1 =
            let _1 =
              let x =
                let _2 =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 3278 "src/reason-parser/reason_parser.mly"
                                      ( mkexp_app_rev _startpos _endpos _1 )
# 69801 "src/reason-parser/reason_parser.ml"
                  
                in
                
# 3071 "src/reason-parser/reason_parser.mly"
    ( mkexp (Pexp_lazy _2) )
# 69807 "src/reason-parser/reason_parser.ml"
                
              in
              let (_endpos_x_, _startpos_x_) = (_endpos__1_inlined1_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 69818 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 69824 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 69830 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Ppxlib.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _1 =
            let _1 =
              let x = 
# 3097 "src/reason-parser/reason_parser.mly"
    ( (* Should use ghost expressions, but not sure how that would work with source maps *)
      (* So ? will become true and : becomes false for now*)
      let loc_question = mklocation _startpos__2_ _endpos__2_ in
      let loc_colon = mklocation _startpos__4_ _endpos__4_ in
      let fauxTruePat =
        Ast_helper.Pat.mk ~loc:loc_question (Ppat_construct({txt = Lident "true"; loc = loc_question}, None)) in
      let fauxFalsePat =
        Ast_helper.Pat.mk ~loc:loc_colon (Ppat_construct({txt = Lident "false"; loc = loc_colon}, None)) in
      let fauxMatchCaseTrue = Ast_helper.Exp.case fauxTruePat _3 in
      let fauxMatchCaseFalse = Ast_helper.Exp.case fauxFalsePat _5 in
      mkexp (Pexp_match (_1, [fauxMatchCaseTrue; fauxMatchCaseFalse]))
    )
# 69898 "src/reason-parser/reason_parser.ml"
               in
              let (_endpos_x_, _startpos_x_) = (_endpos__5_, _startpos__1_) in
              let _endpos = _endpos_x_ in
              let _symbolstartpos = _startpos_x_ in
              
# 5307 "src/reason-parser/reason_parser.mly"
  (
    let x: Ppxlib.expression = x in
    {x with pexp_loc = {x.pexp_loc with loc_start = _symbolstartpos; loc_end = _endpos}} )
# 69908 "src/reason-parser/reason_parser.ml"
              
            in
            
# 3109 "src/reason-parser/reason_parser.mly"
    (_1)
# 69914 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 3127 "src/reason-parser/reason_parser.mly"
                                                ( _1 )
# 69920 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.expression))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.toplevel_phrase list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.toplevel_phrase list) = 
# 1490 "src/reason-parser/reason_parser.mly"
                     ( reason_mapper Reason_syntax_util.apply_mapper_to_use_file _1 )
# 69946 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Ppxlib.toplevel_phrase list) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.toplevel_phrase list) = 
# 1483 "src/reason-parser/reason_parser.mly"
    (
      let phrase: Ppxlib.toplevel_phrase list = _1 in
      phrase
    )
# 69974 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 69995 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (string) = 
# 4907 "src/reason-parser/reason_parser.mly"
                           ( _1 )
# 70003 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : (string) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (string) = 
# 4908 "src/reason-parser/reason_parser.mly"
                           ( _2 )
# 70042 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (string) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.longident) = 
# 4962 "src/reason-parser/reason_parser.mly"
                                  ( Lident _1 )
# 70067 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (string) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.longident) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__3_ in
        let _v : (Ppxlib.longident) = 
# 4963 "src/reason-parser/reason_parser.mly"
                                  ( Ppxlib.Longident.Ldot(_1, _3) )
# 70106 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 70159 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.override_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _4 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 70173 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 70181 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__6_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2236 "src/reason-parser/reason_parser.mly"
    ( if _1 = Override then
        not_expecting _symbolstartpos _endpos
          "members marked virtual may not also be marked overridden";
      (_4, Mutable, Cfk_virtual _6)
    )
# 70196 "src/reason-parser/reason_parser.ml"
           : (string Location.loc * Ppxlib.mutable_flag * Ppxlib.class_field_kind))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _7;
          MenhirLib.EngineTypes.startp = _startpos__7_;
          MenhirLib.EngineTypes.endp = _endpos__7_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _7 : (Ppxlib.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Ppxlib.core_type option * Ppxlib.core_type option) = Obj.magic _5 in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 70257 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Ppxlib.override_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__7_ in
        let _v =
          let _4 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 70271 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 70279 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__7_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            _startpos__2_ in
          (
# 2242 "src/reason-parser/reason_parser.mly"
    ( not_expecting _startpos__6_ _endpos__6_
        "not expecting equal - cannot specify value for virtual val";
      let loc = mklocation _symbolstartpos _endpos in
      let e = ghexp_constraint loc _7 _5 in
      (_4, Mutable, Cfk_concrete (_1, e)) )
# 70294 "src/reason-parser/reason_parser.ml"
           : (string Location.loc * Ppxlib.mutable_flag * Ppxlib.class_field_kind))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.core_type) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 70342 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _2 : (Ppxlib.mutable_flag) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _3 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 70355 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 70363 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2248 "src/reason-parser/reason_parser.mly"
    ( (_3, _2, Cfk_virtual _5) )
# 70369 "src/reason-parser/reason_parser.ml"
           : (string Location.loc * Ppxlib.mutable_flag * Ppxlib.class_field_kind))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4;
              MenhirLib.EngineTypes.startp = _startpos__4_;
              MenhirLib.EngineTypes.endp = _endpos__4_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.expression) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.core_type option * Ppxlib.core_type option) = Obj.magic _4 in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 70424 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _2 : (Ppxlib.mutable_flag) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _3 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 70437 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 70445 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__6_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 2250 "src/reason-parser/reason_parser.mly"
    ( not_expecting _startpos__5_ _endpos__5_
        "not expecting equal - cannot specify value for virtual val";
      let loc = mklocation _symbolstartpos _endpos in
      let e = ghexp_constraint loc _6 _4 in
      (_3, _2, Cfk_concrete (Fresh, e)) )
# 70457 "src/reason-parser/reason_parser.ml"
           : (string Location.loc * Ppxlib.mutable_flag * Ppxlib.class_field_kind))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 70505 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _2 : (Ppxlib.mutable_flag) = Obj.magic _2 in
        let _1 : (Ppxlib.override_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _3 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 70518 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 70526 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2256 "src/reason-parser/reason_parser.mly"
    ( (_3, _2, Cfk_concrete (_1, _5)) )
# 70532 "src/reason-parser/reason_parser.ml"
           : (string Location.loc * Ppxlib.mutable_flag * Ppxlib.class_field_kind))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4;
              MenhirLib.EngineTypes.startp = _startpos__4_;
              MenhirLib.EngineTypes.endp = _endpos__4_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.expression) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Ppxlib.core_type option * Ppxlib.core_type option) = Obj.magic _4 in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 70587 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _2 : (Ppxlib.mutable_flag) = Obj.magic _2 in
        let _1 : (Ppxlib.override_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _3 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 70600 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 70608 "src/reason-parser/reason_parser.ml"
            
          in
          let _startpos__3_ = _startpos__1_inlined1_ in
          let _endpos = _endpos__6_ in
          let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
            _startpos__1_
          else
            if _startpos__2_ != _endpos__2_ then
              _startpos__2_
            else
              _startpos__3_ in
          (
# 2258 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let e = ghexp_constraint loc _6 _4 in
      (_3, _2, Ppxlib.Cfk_concrete (_1, e)) )
# 70625 "src/reason-parser/reason_parser.ml"
           : (string Location.loc * Ppxlib.mutable_flag * Ppxlib.class_field_kind))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _4;
          MenhirLib.EngineTypes.startp = _startpos__4_;
          MenhirLib.EngineTypes.endp = _endpos__4_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined1;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _4 : (Ppxlib.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined1 : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 70667 "src/reason-parser/reason_parser.ml"
         = Obj.magic _1_inlined1 in
        let _1 : (Ppxlib.mutable_flag * Ppxlib.virtual_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__4_ in
        let _v =
          let _2 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let x = 
# 5096 "src/reason-parser/reason_parser.mly"
                      ( _1 )
# 70679 "src/reason-parser/reason_parser.ml"
             in
            let (_endpos_x_, _startpos_x_) = (_endpos__1_, _startpos__1_) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 70687 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 2501 "src/reason-parser/reason_parser.mly"
  ( let (mut, virt) = _1 in (_2, mut, virt, _4) )
# 70693 "src/reason-parser/reason_parser.ml"
           : (string Location.loc * Ppxlib.mutable_flag * Ppxlib.virtual_flag *
  Ppxlib.core_type))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _endpos = _startpos in
        let _v : (Ppxlib.virtual_flag) = 
# 5124 "src/reason-parser/reason_parser.mly"
                  ( Concrete )
# 70713 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Ppxlib.virtual_flag) = 
# 5125 "src/reason-parser/reason_parser.mly"
                  ( Virtual )
# 70738 "src/reason-parser/reason_parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _6;
          MenhirLib.EngineTypes.startp = _startpos__6_;
          MenhirLib.EngineTypes.endp = _endpos__6_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _5;
            MenhirLib.EngineTypes.startp = _startpos__5_;
            MenhirLib.EngineTypes.endp = _endpos__5_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _4;
              MenhirLib.EngineTypes.startp = _startpos__4_;
              MenhirLib.EngineTypes.endp = _endpos__4_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _3;
                MenhirLib.EngineTypes.startp = _startpos__3_;
                MenhirLib.EngineTypes.endp = _endpos__3_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = x;
                  MenhirLib.EngineTypes.startp = _startpos_x_;
                  MenhirLib.EngineTypes.endp = _endpos_x_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : (Ppxlib.private_flag) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__6_ in
        let _v =
          let _7 = 
# 4179 "src/reason-parser/reason_parser.mly"
    ( [] )
# 70799 "src/reason-parser/reason_parser.ml"
           in
          let _endpos__7_ = _endpos__6_ in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 70808 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__7_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4455 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let typ = Ast_helper.Type.mk {_2 with txt=Ppxlib.Longident.last_exn _2.txt}
                  ~params:_3 ~cstrs:_7 ~manifest:_6 ~priv:_5 ~loc in
      Pwith_type (_2, typ)
    )
# 70820 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.with_constraint))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _1_inlined1;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _6;
            MenhirLib.EngineTypes.startp = _startpos__6_;
            MenhirLib.EngineTypes.endp = _endpos__6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _4;
                MenhirLib.EngineTypes.startp = _startpos__4_;
                MenhirLib.EngineTypes.endp = _endpos__4_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = _3;
                  MenhirLib.EngineTypes.startp = _startpos__3_;
                  MenhirLib.EngineTypes.endp = _endpos__3_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = x;
                    MenhirLib.EngineTypes.startp = _startpos_x_;
                    MenhirLib.EngineTypes.endp = _endpos_x_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : ((Ppxlib.core_type * Ppxlib.core_type * Location.t) list) = Obj.magic _1_inlined1 in
        let _6 : (Ppxlib.core_type) = Obj.magic _6 in
        let _5 : (Ppxlib.private_flag) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v =
          let _7 =
            let _1 = _1_inlined1 in
            
# 4180 "src/reason-parser/reason_parser.mly"
                                     ( _1 )
# 70891 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos__7_ = _endpos__1_inlined1_ in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 70901 "src/reason-parser/reason_parser.ml"
            
          in
          let _endpos = _endpos__7_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4455 "src/reason-parser/reason_parser.mly"
    ( let loc = mklocation _symbolstartpos _endpos in
      let typ = Ast_helper.Type.mk {_2 with txt=Ppxlib.Longident.last_exn _2.txt}
                  ~params:_3 ~cstrs:_7 ~manifest:_6 ~priv:_5 ~loc in
      Pwith_type (_2, typ)
    )
# 70913 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.with_constraint))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = x;
                MenhirLib.EngineTypes.startp = _startpos_x_;
                MenhirLib.EngineTypes.endp = _endpos_x_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.core_type) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) = Obj.magic _3 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 70971 "src/reason-parser/reason_parser.ml"
            
          in
          let (_endpos__2_, _startpos__2_) = (_endpos_x_, _startpos_x_) in
          let _endpos = _endpos__5_ in
          let _symbolstartpos = _startpos__1_ in
          (
# 4464 "src/reason-parser/reason_parser.mly"
    ( let last = match _2.txt with
        | Ppxlib.Longident.Lident s -> s
        | other ->
          not_expecting _startpos__2_ _endpos__2_ "Long type identifier";
          let rec fallback = function
            | Ppxlib.Longident.Lident s -> s
            | Ldot (_, s) -> s
            | Lapply (l, _) -> fallback l
          in
          fallback other
      in
      let loc = mklocation _symbolstartpos _endpos in
      Pwith_typesubst (_2, Ast_helper.Type.mk {_2 with txt=last} ~params:_3 ~manifest:_5 ~loc)
    )
# 70993 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.with_constraint))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x_inlined1;
          MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x_inlined1 : (Ppxlib.longident) = Obj.magic x_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_inlined1_ in
        let _v =
          let _4 =
            let (_endpos_x_, _startpos_x_, x) = (_endpos_x_inlined1_, _startpos_x_inlined1_, x_inlined1) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 71045 "src/reason-parser/reason_parser.ml"
            
          in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 71054 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4479 "src/reason-parser/reason_parser.mly"
      ( Pwith_module (_2, _4) )
# 71060 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.with_constraint))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x_inlined1;
          MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let x_inlined1 : (Ppxlib.longident) = Obj.magic x_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let x : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 71102 "src/reason-parser/reason_parser.ml"
         = Obj.magic x in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_x_inlined1_ in
        let _v =
          let _4 =
            let (_endpos_x_, _startpos_x_, x) = (_endpos_x_inlined1_, _startpos_x_inlined1_, x_inlined1) in
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 71116 "src/reason-parser/reason_parser.ml"
            
          in
          let _2 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 71125 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4481 "src/reason-parser/reason_parser.mly"
      ( let lident = {_2 with txt=Ppxlib.Longident.Lident _2.txt} in
        Pwith_modsubst (lident, _4) )
# 71132 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.with_constraint))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.module_type) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 71190 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4484 "src/reason-parser/reason_parser.mly"
      ( Ppxlib.Pwith_modtype (_3, _5) )
# 71196 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.with_constraint))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _5;
          MenhirLib.EngineTypes.startp = _startpos__5_;
          MenhirLib.EngineTypes.endp = _endpos__5_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _4;
            MenhirLib.EngineTypes.startp = _startpos__4_;
            MenhirLib.EngineTypes.endp = _endpos__4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = x;
              MenhirLib.EngineTypes.startp = _startpos_x_;
              MenhirLib.EngineTypes.endp = _endpos_x_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : (Ppxlib.module_type) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let x : (Ppxlib.longident) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__5_ in
        let _v =
          let _3 =
            let _endpos = _endpos_x_ in
            let _symbolstartpos = _startpos_x_ in
            
# 5363 "src/reason-parser/reason_parser.mly"
  ( mkloc x (mklocation _symbolstartpos _endpos) )
# 71254 "src/reason-parser/reason_parser.ml"
            
          in
          (
# 4486 "src/reason-parser/reason_parser.mly"
      ( Ppxlib.Pwith_modtypesubst (_3, _5) )
# 71260 "src/reason-parser/reason_parser.ml"
           : (Ppxlib.with_constraint))
        in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
    |]
  
  let terminal_count =
    131
  
  let token2terminal : token -> int =
    fun _tok ->
      match _tok with
      | WITH ->
          1
      | WHILE ->
          2
      | WHEN ->
          3
      | VIRTUAL ->
          4
      | VAL ->
          5
      | UNDERSCORE ->
          6
      | UIDENT _ ->
          7
      | TYPE ->
          8
      | TRY ->
          9
      | TRUE ->
          10
      | TO ->
          11
      | TILDE ->
          12
      | THEN ->
          13
      | SWITCH ->
          14
      | STRUCT ->
          15
      | STRING _ ->
          16
      | STAR ->
          17
      | SLASHGREATER ->
          18
      | SIG ->
          19
      | SHARPOP _ ->
          20
      | SHARPEQUAL ->
          21
      | SHARP ->
          22
      | SEMISEMI ->
          23
      | SEMI ->
          24
      | RPAREN ->
          25
      | REC ->
          26
      | RBRACKET ->
          27
      | RBRACE ->
          28
      | QUOTED_STRING_ITEM _ ->
          29
      | QUOTED_STRING_EXPR _ ->
          30
      | QUOTE ->
          31
      | QUESTION ->
          32
      | PUB ->
          33
      | PRI ->
          34
      | PREFIXOP _ ->
          35
      | POSTFIXOP _ ->
          36
      | PLUSEQ ->
          37
      | PLUSDOT ->
          38
      | PLUS ->
          39
      | PERCENT ->
          40
      | OR ->
          41
      | OPEN ->
          42
      | OF ->
          43
      | OBJECT ->
          44
      | NONREC ->
          45
      | NEW ->
          46
      | NATIVEINT _ ->
          47
      | MUTABLE ->
          48
      | MODULE ->
          49
      | MINUSGREATER ->
          50
      | MINUSDOT ->
          51
      | MINUS ->
          52
      | LPAREN ->
          53
      | LIDENT _ ->
          54
      | LETOP _ ->
          55
      | LET ->
          56
      | LESSUIDENT _ ->
          57
      | LESSSLASHIDENTGREATER _ ->
          58
      | LESSSLASHGREATER ->
          59
      | LESSIDENT _ ->
          60
      | LESSGREATER ->
          61
      | LESSDOTDOTGREATER ->
          62
      | LESS ->
          63
      | LBRACKETPERCENTPERCENT ->
          64
      | LBRACKETPERCENT ->
          65
      | LBRACKETLESS ->
          66
      | LBRACKETGREATER ->
          67
      | LBRACKETBAR ->
          68
      | LBRACKETAT ->
          69
      | LBRACKET ->
          70
      | LBRACELESS ->
          71
      | LBRACE ->
          72
      | LAZY ->
          73
      | INT _ ->
          74
      | INITIALIZER ->
          75
      | INHERIT ->
          76
      | INFIXOP4 _ ->
          77
      | INFIXOP3 _ ->
          78
      | INFIXOP2 _ ->
          79
      | INFIXOP1 _ ->
          80
      | INFIXOP0 _ ->
          81
      | INCLUDE ->
          82
      | IN ->
          83
      | IF ->
          84
      | GREATERRBRACE ->
          85
      | GREATERDOTDOTDOT ->
          86
      | GREATER ->
          87
      | FUNCTOR ->
          88
      | FUNCTION ->
          89
      | FUN ->
          90
      | FOR ->
          91
      | FLOAT _ ->
          92
      | FALSE ->
          93
      | EXTERNAL ->
          94
      | EXCEPTION ->
          95
      | ES6_FUN ->
          96
      | EQUALGREATER ->
          97
      | EQUAL ->
          98
      | EOL ->
          99
      | EOF ->
          100
      | END ->
          101
      | ELSE ->
          102
      | DOWNTO ->
          103
      | DOTDOTDOT ->
          104
      | DOTDOT ->
          105
      | DOT ->
          106
      | DONE ->
          107
      | DOCSTRING _ ->
          108
      | DO ->
          109
      | CONSTRAINT ->
          110
      | COMMENT _ ->
          111
      | COMMA ->
          112
      | COLONGREATER ->
          113
      | COLONEQUAL ->
          114
      | COLONCOLON ->
          115
      | COLON ->
          116
      | CLASS ->
          117
      | CHAR _ ->
          118
      | BEGIN ->
          119
      | BARRBRACKET ->
          120
      | BARBAR ->
          121
      | BAR ->
          122
      | BANG ->
          123
      | BACKQUOTE ->
          124
      | ASSERT ->
          125
      | AS ->
          126
      | ANDOP _ ->
          127
      | AND ->
          128
      | AMPERSAND ->
          129
      | AMPERAMPER ->
          130
  
  let error_terminal =
    0
  
  let token2value : token -> Obj.t =
    fun _tok ->
      match _tok with
      | WITH ->
          Obj.repr ()
      | WHILE ->
          Obj.repr ()
      | WHEN ->
          Obj.repr ()
      | VIRTUAL ->
          Obj.repr ()
      | VAL ->
          Obj.repr ()
      | UNDERSCORE ->
          Obj.repr ()
      | UIDENT _v ->
          Obj.repr (_v : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 71561 "src/reason-parser/reason_parser.ml"
          )
      | TYPE ->
          Obj.repr ()
      | TRY ->
          Obj.repr ()
      | TRUE ->
          Obj.repr ()
      | TO ->
          Obj.repr ()
      | TILDE ->
          Obj.repr ()
      | THEN ->
          Obj.repr ()
      | SWITCH ->
          Obj.repr ()
      | STRUCT ->
          Obj.repr ()
      | STRING _v ->
          Obj.repr (_v : 
# 1244 "src/reason-parser/reason_parser.mly"
       (string * string option * string option)
# 71583 "src/reason-parser/reason_parser.ml"
          )
      | STAR ->
          Obj.repr ()
      | SLASHGREATER ->
          Obj.repr ()
      | SIG ->
          Obj.repr ()
      | SHARPOP _v ->
          Obj.repr (_v : 
# 1240 "src/reason-parser/reason_parser.mly"
       (string)
# 71595 "src/reason-parser/reason_parser.ml"
          )
      | SHARPEQUAL ->
          Obj.repr ()
      | SHARP ->
          Obj.repr ()
      | SEMISEMI ->
          Obj.repr ()
      | SEMI ->
          Obj.repr ()
      | RPAREN ->
          Obj.repr ()
      | REC ->
          Obj.repr ()
      | RBRACKET ->
          Obj.repr ()
      | RBRACE ->
          Obj.repr ()
      | QUOTED_STRING_ITEM _v ->
          Obj.repr (_v : 
# 1249 "src/reason-parser/reason_parser.mly"
  (string * Location.t * string * string option)
# 71617 "src/reason-parser/reason_parser.ml"
          )
      | QUOTED_STRING_EXPR _v ->
          Obj.repr (_v : 
# 1247 "src/reason-parser/reason_parser.mly"
  (string * Location.t * string * string option)
# 71623 "src/reason-parser/reason_parser.ml"
          )
      | QUOTE ->
          Obj.repr ()
      | QUESTION ->
          Obj.repr ()
      | PUB ->
          Obj.repr ()
      | PRI ->
          Obj.repr ()
      | PREFIXOP _v ->
          Obj.repr (_v : 
# 1227 "src/reason-parser/reason_parser.mly"
       (string)
# 71637 "src/reason-parser/reason_parser.ml"
          )
      | POSTFIXOP _v ->
          Obj.repr (_v : 
# 1228 "src/reason-parser/reason_parser.mly"
       (string)
# 71643 "src/reason-parser/reason_parser.ml"
          )
      | PLUSEQ ->
          Obj.repr ()
      | PLUSDOT ->
          Obj.repr ()
      | PLUS ->
          Obj.repr ()
      | PERCENT ->
          Obj.repr ()
      | OR ->
          Obj.repr ()
      | OPEN ->
          Obj.repr ()
      | OF ->
          Obj.repr ()
      | OBJECT ->
          Obj.repr ()
      | NONREC ->
          Obj.repr ()
      | NEW ->
          Obj.repr ()
      | NATIVEINT _v ->
          Obj.repr (_v : 
# 1216 "src/reason-parser/reason_parser.mly"
       (nativeint)
# 71669 "src/reason-parser/reason_parser.ml"
          )
      | MUTABLE ->
          Obj.repr ()
      | MODULE ->
          Obj.repr ()
      | MINUSGREATER ->
          Obj.repr ()
      | MINUSDOT ->
          Obj.repr ()
      | MINUS ->
          Obj.repr ()
      | LPAREN ->
          Obj.repr ()
      | LIDENT _v ->
          Obj.repr (_v : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 71687 "src/reason-parser/reason_parser.ml"
          )
      | LETOP _v ->
          Obj.repr (_v : 
# 1182 "src/reason-parser/reason_parser.mly"
       (string)
# 71693 "src/reason-parser/reason_parser.ml"
          )
      | LET ->
          Obj.repr ()
      | LESSUIDENT _v ->
          Obj.repr (_v : 
# 1199 "src/reason-parser/reason_parser.mly"
       (string)
# 71701 "src/reason-parser/reason_parser.ml"
          )
      | LESSSLASHIDENTGREATER _v ->
          Obj.repr (_v : 
# 1236 "src/reason-parser/reason_parser.mly"
       (string)
# 71707 "src/reason-parser/reason_parser.ml"
          )
      | LESSSLASHGREATER ->
          Obj.repr ()
      | LESSIDENT _v ->
          Obj.repr (_v : 
# 1198 "src/reason-parser/reason_parser.mly"
       (string)
# 71715 "src/reason-parser/reason_parser.ml"
          )
      | LESSGREATER ->
          Obj.repr ()
      | LESSDOTDOTGREATER ->
          Obj.repr ()
      | LESS ->
          Obj.repr ()
      | LBRACKETPERCENTPERCENT ->
          Obj.repr ()
      | LBRACKETPERCENT ->
          Obj.repr ()
      | LBRACKETLESS ->
          Obj.repr ()
      | LBRACKETGREATER ->
          Obj.repr ()
      | LBRACKETBAR ->
          Obj.repr ()
      | LBRACKETAT ->
          Obj.repr ()
      | LBRACKET ->
          Obj.repr ()
      | LBRACELESS ->
          Obj.repr ()
      | LBRACE ->
          Obj.repr ()
      | LAZY ->
          Obj.repr ()
      | INT _v ->
          Obj.repr (_v : 
# 1186 "src/reason-parser/reason_parser.mly"
       (string * char option)
# 71747 "src/reason-parser/reason_parser.ml"
          )
      | INITIALIZER ->
          Obj.repr ()
      | INHERIT ->
          Obj.repr ()
      | INFIXOP4 _v ->
          Obj.repr (_v : 
# 1181 "src/reason-parser/reason_parser.mly"
       (string)
# 71757 "src/reason-parser/reason_parser.ml"
          )
      | INFIXOP3 _v ->
          Obj.repr (_v : 
# 1178 "src/reason-parser/reason_parser.mly"
       (string)
# 71763 "src/reason-parser/reason_parser.ml"
          )
      | INFIXOP2 _v ->
          Obj.repr (_v : 
# 1177 "src/reason-parser/reason_parser.mly"
       (string)
# 71769 "src/reason-parser/reason_parser.ml"
          )
      | INFIXOP1 _v ->
          Obj.repr (_v : 
# 1176 "src/reason-parser/reason_parser.mly"
       (string)
# 71775 "src/reason-parser/reason_parser.ml"
          )
      | INFIXOP0 _v ->
          Obj.repr (_v : 
# 1175 "src/reason-parser/reason_parser.mly"
       (string)
# 71781 "src/reason-parser/reason_parser.ml"
          )
      | INCLUDE ->
          Obj.repr ()
      | IN ->
          Obj.repr ()
      | IF ->
          Obj.repr ()
      | GREATERRBRACE ->
          Obj.repr ()
      | GREATERDOTDOTDOT ->
          Obj.repr ()
      | GREATER ->
          Obj.repr ()
      | FUNCTOR ->
          Obj.repr ()
      | FUNCTION ->
          Obj.repr ()
      | FUN ->
          Obj.repr ()
      | FOR ->
          Obj.repr ()
      | FLOAT _v ->
          Obj.repr (_v : 
# 1163 "src/reason-parser/reason_parser.mly"
       (string * char option)
# 71807 "src/reason-parser/reason_parser.ml"
          )
      | FALSE ->
          Obj.repr ()
      | EXTERNAL ->
          Obj.repr ()
      | EXCEPTION ->
          Obj.repr ()
      | ES6_FUN ->
          Obj.repr ()
      | EQUALGREATER ->
          Obj.repr ()
      | EQUAL ->
          Obj.repr ()
      | EOL ->
          Obj.repr ()
      | EOF ->
          Obj.repr ()
      | END ->
          Obj.repr ()
      | ELSE ->
          Obj.repr ()
      | DOWNTO ->
          Obj.repr ()
      | DOTDOTDOT ->
          Obj.repr ()
      | DOTDOT ->
          Obj.repr ()
      | DOT ->
          Obj.repr ()
      | DONE ->
          Obj.repr ()
      | DOCSTRING _v ->
          Obj.repr (_v : 
# 1265 "src/reason-parser/reason_parser.mly"
       (string)
# 71843 "src/reason-parser/reason_parser.ml"
          )
      | DO ->
          Obj.repr ()
      | CONSTRAINT ->
          Obj.repr ()
      | COMMENT _v ->
          Obj.repr (_v : 
# 1264 "src/reason-parser/reason_parser.mly"
       (string * Location.t)
# 71853 "src/reason-parser/reason_parser.ml"
          )
      | COMMA ->
          Obj.repr ()
      | COLONGREATER ->
          Obj.repr ()
      | COLONEQUAL ->
          Obj.repr ()
      | COLONCOLON ->
          Obj.repr ()
      | COLON ->
          Obj.repr ()
      | CLASS ->
          Obj.repr ()
      | CHAR _v ->
          Obj.repr (_v : 
# 1142 "src/reason-parser/reason_parser.mly"
       (char)
# 71871 "src/reason-parser/reason_parser.ml"
          )
      | BEGIN ->
          Obj.repr ()
      | BARRBRACKET ->
          Obj.repr ()
      | BARBAR ->
          Obj.repr ()
      | BAR ->
          Obj.repr ()
      | BANG ->
          Obj.repr ()
      | BACKQUOTE ->
          Obj.repr ()
      | ASSERT ->
          Obj.repr ()
      | AS ->
          Obj.repr ()
      | ANDOP _v ->
          Obj.repr (_v : 
# 1183 "src/reason-parser/reason_parser.mly"
       (string)
# 71893 "src/reason-parser/reason_parser.ml"
          )
      | AND ->
          Obj.repr ()
      | AMPERSAND ->
          Obj.repr ()
      | AMPERAMPER ->
          Obj.repr ()
  
  let default_reduction =
    "\000\000\000\000\000\000\004\005\004\004\004\003\004\002\004\001\003\213\004\000\003\255\003\254\003\253\003\252\003\239\003\251\003\250\003\249\003\248\003\247\003\246\003\245\003\244\003\243\003\242\003\241\003\240\003\212\003\238\003\237\003\236\003\235\003\234\003\233\003\232\003\231\003\230\003\229\003\228\003\227\003\226\003\225\003\224\003\223\003\222\003\221\003\220\003\219\003\218\003\217\003\216\003\215\003\214\000\000\000\000\000$\001G\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002-\000\000\000\000\000\000\0003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\248\000\000\000\000\000\000\001\247\000\000\001\246\000\000\000\000\000\000\000\000\002\004\000q\000\000\000\000\002\005\000r\000\000\000\000\001#\000\000\001A\001B\0001\000\000\000\000\000\000\002\003\000\000\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\152\000\000\000\000\003\169\000\000\000\000\000\000\004\184\000\000\000\000\000\000\001\249\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\000\000\003a\000\000\002x\002r\000\155\000\000\000\000\000\000\000\000\003\138\000\000\002k\002\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001S\000\000\001T\000\000\000\000\000\000\002U\000\000\000\000\000\000\000\215\000\000\000\214\000\000\000\217\000\000\000\216\000\000\000\219\000\000\000\218\000\000\001\177\001\226\000\000\000\000\001\227\004}\004\128\000\000\000\000\004\127\000\000\000\000\000\000\000\000\004L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W\000\000\000\000\002\146\002\142\000\000\000\000\000\000\003N\000\000\000\000\000\000\000\000\000\154\000\000\001\028\000\000\003i\000\000\000\000\000\000\000\000\000\149\000\151\000\156\000\150\000\000\000\000\000\000\0027\000\000\000\000\000\000\000\000\000\000\000\000\003\150\000\000\000\000\003\151\000\000\000\000\003\153\003\146\004\186\000\000\000\000\000\000\000\000\003\179\003\178\003k\003s\003\145\003\172\003v\000\000\000\000\000\000\000\000\002z\002\134\000\000\000\000\000\000\000\000\003J\003j\003M\000\000\000\000\003d\000\000\000\000\000\000\000\000\000\000\001\250\001U\000\000\000\000\000\000\001\251\000\000\001I\001?\000\000\001@\000\000\000\000\003\141\003u\003\144\000\000\003\177\003\176\003t\000\000\000\000\003S\000\000\003f\000\000\000\000\001a\000\000\001g\000\000\000\000\002j\002u\002t\002\128\002w\002v\000\000\002\132\002\130\002y\002s\002q\002p\002o\002n\002\129\000\000\002\131\002~\002{\002l\002\133\002|\002}\000\000\004\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\228\000\000\000\000\000\000\000\000\000\000\002a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002?\000\000\000\000\002\144\000\000\000\000\000\000\000\000\000&\000\184\0025\000\000\000/\000\000\000\000\002\178\001q\0005\000\000\000\185\0023\004\132\000\000\000\000\004M\000\000\000\000\000:\000!\000\000\000\000\000\"\000\000\002=\004\133\000\000\000\000\000\000\000\183\002\217\000\028\000\000\001\228\000\000\000\000\000\000\001\229\000\000\000\031\000\000\000\000\000 \004\020\000\000\000\000\002\214\002\213\000\000\000\000\002]\000\000\002_\000\000\002c\001\222\001\173\001\204\000\000\000\000\000\000\004\021\000\000\000\000\002^\000\000\000\000\001\223\000\000\004\022\000\000\000\000\001\205\000\000\002`\000\000\002e\000\000\000\000\002b\000\000\002d\000\000\000\000\000\000\000<\000\000\0047\000\000\000\000\002\248\002\243\000-\000\000\000\000\000\000\000\000\0048\0021\002\244\0024\000\000\0022\000\000\0007\000\000\000\000\000\000\000.\002\245\000\000\001\155\000\000\000\000\002\246\000\000\001\218\000\000\000\000\000\000\000\000\002\242\000\000\000\000\000\000\002\241\000\000\000\000\001\219\000\000\002\220\000\000\000\162\000\000\000\000\001\189\000\164\001\188\000\000\000\163\000\161\000\000\000\000\002\164\001>\000\160\001$\002\158\000\000\001)\000\000\000\000\001&\000\000\000\000\001%\000\000\001(\000\000\001'\000\000\000\000\000\000\002M\000\000\000\000\000\000\000\000\002O\000\000\002N\000\000\002L\000*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\001\152\001\151\000\000\001\150\000)\003\025\000\000\000\000\000\170\000\000\000\000\000\000\000\167\001\216\000\000\000\000\001\217\000\000\004]\000\000\000\000\000\166\000\000\000\169\004v\000\000\000\168\000\000\000\000\000\165\000\000\000\000\000\000\000\000\000\171\000\000\000\176\000\000\000\000\000\173\000\000\000\000\000\172\000\000\000\175\000\000\000\174\000+\004j\004s\000\000\000\000\000\000\000\000\000\000\000,\004t\000\000\000\000\000\000\000\000\000\158\000\000\002S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\004~\004n\004m\000\026\004c\000\000\004f\000\000\000\000\004d\004e\004p\000\192\000\193\004u\004i\004q\000\000\004r\000\000\000\000\000\000\000\000\004l\004z\000\000\004{\004w\004k\004x\000\000\004y\004g\000\000\000\000\000\000\000\000\000\000\004A\000\023\000\000\000\000\000\000\000\024\004G\004F\004H\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\000\000\000\000\000\000\000\000\000\000\003\029\004J\000\000\000\000\000\000\000\000\000\000\000\000\003\030\001F\000\000\002\182\000\000\000\000\000\000\000\000\002\160\000\000\000\000\000\000\000\000\002\"\003\182\003\181\000\000\000\000\000\000\001\\\000\000\000\000\001]\000\000\000\000\000\000\000\000\000\000\004\198\000\000\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002+\002*\000\000\000\000\000\000\003\183\000\000\002#\000\000\000\000\000\000\000\000\000\000\001\186\000\000\000\000\001\187\000\000\000\000\002(\0038\000\000\002\135\000\000\000\000\000\000\003$\000\000\000\000\000\000\003\192\000\000\003\198\000\000\003H\003I\000\000\003F\003G\000\000\000\000\000\000\002\002\000\000\003\200\000\000\002\150\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\003\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\197\003\191\003\201\003\186\003\185\002\201\000\000\000\000\003\194\003E\000\000\003\195\000\000\000\000\000\000\003\211\002\198\000\000\000\000\000\000\003\202\000\000\000\000\000\000\000\000\001\214\000\000\000\000\002\196\000\000\002\191\000\000\002\206\000\000\000\000\001\215\000\000\002\194\000\000\000\000\001\183\000\000\003\190\000\000\000\000\003\189\000\000\000\000\003\188\002\193\002\200\000\000\003\187\000\000\002\199\000\000\003\209\000\000\000\000\003\208\000\000\003\210\000\000\003\207\000\000\000\000\003\206\003\196\002\204\000\000\000\000\003\199\002\205\000\000\000\000\001t\000\000\003\203\000\000\002\192\000\000\000\000\003\205\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\001n\000\000\000\000\000\000\001o\001p\000\000\000\000\001l\000\000\000\000\000\000\000\000\000\000\000\000\000\233\000\000\000\229\000\000\000\231\001m\000\000\000\000\001\197\000\000\000\232\001\196\000\000\000\000\000\230\000\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003c\000\000\000\000\000\000\000\000\000\000\003L\003g\001\014\000\000\003K\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\219\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0012\000\203\000\000\000\000\000\000\0014\000\000\000\000\000\000\000\000\0015\000\000\000\000\000\000\000\000\0013\000\000\000\000\000\000\002;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\174\004=\000\000\000\000\000\000\001x\000\000\000\000\000\000\001u\000\000\000\000\000\000\000\000\001*\000\000\000\000\001/\000\000\000\000\000\000\001,\000\000\000\000\000\000\001+\000\000\000\000\001.\000\000\000\000\001-\000\195\000\194\004\006\000\000\000\000\002\253\003\018\000\000\000\000\000\000\000\189\000\188\002\020\000\000\000\000\003\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001<\001\202\000\000\000\000\000\000\000\000\000\000\001\203\000\000\001=\000\000\001;\000\000\000\000\003\r\000\000\000\000\002\140\002\139\000\000\002\138\000\000\000\000\000\000\000\000\003\022\000\000\000\000\003\019\000\000\000\000\000\000\000\000\000\000\000\000\001\139\001\138\001}\000\000\002\254\000\000\000\000\003\000\000\000\000\000\002\255\000\000\003\012\003\020\000\000\001\130\001\129\000\000\000\000\000\000\001v\000\000\004\007\000\000\000\000\000\000\000\000\000\000\003\015\000\000\002\b\000\000\000\000\000\000\002\006\002\025\001\200\000\000\002\007\000\000\000\000\000\000\001\201\002\023\000\000\000\000\000\000\000\000\000\000\003\180\002\172\000\000\000\000\000\000\000\000\000\000\002\t\000\000\000\000\000\000\003\017\000\000\000\000\000\000\000\000\000\000\002\028\002\011\002\n\001\169\000\000\000\000\000\000\003\016\003\021\003\n\000\000\000\000\001\018\000\000\000\000\003\007\002\249\001\031\000\000\000\000\000\000\000\000\000\000\003\003\000\000\000\000\000\000\003\005\000\000\000\000\000\000\003\002\000\000\000\000\000\000\000\000\003\011\000\000\000\000\000\000\000\000\000\000\003\004\000\000\000\000\000\000\003\006\000\000\000\000\001\193\000\000\001!\001\029\000\000\000\000\003\b\000\000\002\250\000\000\000\000\002\252\001\192\000\000\003T\001\030\000\000\000\000\002\251\000\000\000\000\001V\000\000\003]\000\000\001Y\000\000\000\000\001Z\000\000\000\000\000\000\003\140\003|\000\000\003\143\001[\000\000\000\000\003\128\000\000\000\000\000\000\003\129\000\000\000\000\000\000\000\000\000\000\003\130\000\000\003~\000\000\000\000\003\\\000\000\003^\000\000\003_\000\000\000\000\000\000\001\195\000\000\003b\001\194\000\000\000\000\004\017\000\000\000\000\000\000\002\237\003V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\000\000\000\000\000\000\000\000\004\016\002\236\001\220\000\000\000\000\000\000\000\000\000\000\002\224\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\225\002\222\000\000\000\000\001\221\004\019\000\000\002\238\000\000\003[\000\000\003Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\234\002\230\000\000\002\235\002\231\000\000\000\000\002\227\000\000\000\000\000\000\000\000\000\000\000\000\002\232\002\228\000\000\002\233\002\229\002\226\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001^\003h\000\000\003W\000\000\000\000\000\000\003X\000\000\000\000\000\000\003Y\003U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\186\000\187\000\000\000\000\000\000\000\000\002\180\000\000\000\000\000\000\002\168\000\000\000\000\000\000\0016\000\205\000\000\000\000\000\000\0018\000\000\000\000\000\000\000\000\0019\000\000\000\000\000\000\000\000\0017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\238\000\000\001\158\000\000\001\159\000\236\000\000\000\000\004\172\000\000\004\171\000\000\000\000\000\000\000\000\000\000\000\000\002\152\000\000\000\000\004+\000\000\004\170\000\000\004\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\003R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\184\000\000\000\000\001\158\000\000\004\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004 \000\000\000\000\0029\004\030\002\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003(\000\000\003&\000\000\003\023\000\000\004\196\000\000\000\000\000\000\000\000\004\130\004\131\000\000\000\000\004|\004\\\001\224\000\000\000\000\001\225\000\000\001\167\000\000\000\000\000\000\000\000\002/\000\000\0020\000~\000\000\000\000\000\000\004\194\002\154\000\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\128\002\148\000\000\000\147\000\000\000\000\000\148\000p\000\000\000\000\000\000\000\141\000\000\001\175\000m\000o\000|\000\000\000n\000\000\000\000\000\000\000\000\000\159\000\132\000\000\000t\000z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\000\000\000\000\000\000\000\000\000\131\000\000\000\000\000\000\000\000\000\129\000\000\000}\000\000\000\133\000\135\000\000\000\000\000\134\001\235\000{\001\234\000w\000y\000x\000\000\000\000\000v\000\000\000\143\000\000\000\142\000\000\000\200\000\144\000\201\000\000\000\000\000\016\000\000\000\000\000\017\000\145\000\000\001\136\000\000\000\000\000\000\000\000\000C\000P\000\000\000\000\000D\000\000\000\000\000\014\000\000\000\000\000\015\000Q\000\000\001\134\003+\003*\000\000\000\000\003C\003#\003,\003-\000\000\000\000\000\000\003.\000\000\000\000\000\000\002&\002\018\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\021\0034\000\000\001\143\000\000\000\000\000\000\000\000\000\000\000\000\002\137\002\136\003<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\027\004h\004I\000\000\000\000\000\000\000\000\000\000\000\000\003\028\000\000\000\000\000\000\000\000\000\000\000\000\003\031\004K\000\000\000\000\000\000\000\000\000\000\000\000\003 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0039\000\000\000\000\000\000\000\000\003%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000\000\003'\000\000\003\024\000\000\000\000\000\000\000\146\000\000\000R\000\000\000\000\000\000\003/\000\000\000\000\0035\000\000\000\000\000\000\000\000\003B\003A\003@\003?\002\208\000\000\002\209\000\000\000\000\000\000\000\000\000\000\000\000\002\162\000\000\000\000\000\190\000\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\185\000Z\000[\000\000\000\000\000\000\000\000\000\000\000X\000\137\000T\000\000\000Y\000\000\000\000\000\000\000V\000\000\000\000\000\000\000\000\000W\000\000\000\000\000\000\000\000\000U\000\000\000\000\002\156\000`\000\000\000f\002Y\000\000\000\000\000\000\000\000\000\000\002X\000^\000\000\000\000\000c\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000\000\000g\000k\000\000\000\000\000\000\000\000\000\000\001\242\000\000\000\000\000\000\000\000\000\000\000\000\001\245\002\170\000\000\001\244\001\243\000e\000\000\000\000\000\000\000j\000\000\000d\001\233\002Z\000\000\000\000\000\000\000\000\000\000\002W\001\232\000\000\000\000\000]\000\\\000\000\000_\000\000\000\138\000\000\000\140\000\000\000\000\000\139\000\000\000\199\000\000\000\198\000E\000G\000\000\000\000\000\000\000\000\000I\000\000\000\000\000\000\000J\000\000\000\000\000\000\000\000\000\000\000L\000\000\000\000\000N\000\000\000\000\000\000\000O\000\000\000\000\000\000\000M\000K\000\000\000\000\000\000\000H\000F\000\000\000\000\000\012\000\000\000\000\000\r\004.\000\000\001\132\000\000\004\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\"\000\000\000\000\004\025\004#\004$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\000\000\000\000\000\000\000\018\000\000\000\000\000\000\000\019\004'\000\000\001\141\000\000\004-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002E\000\000\000\000\000\000\000\000\002G\000\000\002F\000\000\002D\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\000\000\001\147\001\146\000\000\001\145\000'\004\n\000\000\000\000\000\000\000\000\000\000\000\000\004\011\000\000\000\000\000\000\000\000\000\000\000\000\004\014\000\000\000\000\000\000\000\000\000\000\000\000\004\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\004\031\000\000\000\000\004/\000\000\000\000\004&\000\000\000\000\004(\000\000\004\029\0045\000\000\004\028\0043\0040\0044\002\207\000\000\000\000\000\000\000\000\001E\000\000\002)\004?\002\176\001\165\000\000\000\000\000\000\000\196\000\000\000\000\000\000\001f\001i\001e\001h\000\000\001d\000\197\001c\001\230\001b\000\000\001_\000\000\000\000\000\000\001\231\000\000\001`\000\000\001\157\000\000\001J\000\000\000\000\001K\000\000\000\000\001\015\000\000\003}\000\000\000\000\003\134\000\000\000\000\003\133\000\000\003\135\000\000\003\136\000\000\000\000\000\000\003\139\000\000\003\127\000\000\003\132\000\000\003\131\000\000\000\000\000\000\003\171\003\155\000\000\003\174\000\000\000\000\003\159\000\000\000\000\000\000\000\000\000\000\000\000\001\240\000\000\001\241\001\239\001\160\000\000\004\139\001\161\000\000\000\000\000\000\003\160\000\000\000\000\000\000\003\161\003\157\003\149\000\000\000\000\000\000\000\000\003\156\000\000\000\000\003\165\000\000\000\000\003\164\000\000\003\166\000\000\003\167\000\000\000\000\000\000\003\170\000\000\003\158\000\000\003\163\000\000\003\162\003\148\003\175\003\152\003\147\000\000\002\029\000\000\003q\000\000\000\000\003r\000\000\000\000\0026\000\000\000\000\003p\000\000\000\000\003o\001\207\000\000\003O\001\206\000\000\003w\000\000\000\000\003x\000\000\001X\000\000\003m\000\000\003n\000\000\003l\000\000\000\000\001\160\000\000\004\140\000\000\000%\000\000\0006\001\181\000\000\0008\000\000\000\000\000\000\000\000\002Q\001\179\000\000\0009\000\000\000\000\004^\000\000\000\000\000\000\004a\000\000\000\000\000\000\000\000\004b\000\000\004`\000\000\004_\000\000\000\000\004V\000\000\000\000\000\177\004S\000\000\004T\000\000\000\000\000\181\000\000\000\178\000\000\000\179\000\180\004P\004C\004U\004Q\000\000\004R\000\000\000\000\000\000\004Z\000\000\004[\004E\004W\004X\000\000\004Y\004D\004B\004@\000\000\000\000\000\000\000\000\004\b\000\000\000\000\000\000\000\000\000\000\000\000\004\t\000\000\000\000\000\000\000\000\000\000\000\000\004\012\000\000\000\000\000\000\000\000\000\000\000\000\004\r\000\000\001\"\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\000\246\001\017\000\000\003{\000\000\000\000\001H\000\000\000\000\001M\000\000\001O\001P\001N\001R\000\000\000\000\001\160\000\000\000\240\000\000\003\154\000\000\000\000\000\000\001\160\000\000\000\241\000\000\000\000\000\000\002\017\000\000\000\000\000\000\000\000\000\000\002\016\002\022\000\000\002\021\000\000\003\184\002\216\0000\000\000\004>\000\000\000\000\000\000\000\000\000\000\000b\000\000\000\000\000\000\000\000\000\000\000?\000\000\000\000\000>\000\000\000=\000\000\000A\000\000\000@\000\000\000B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\186\000\000\000\000\000\000\001C\000\001\000\000\000\000\001D\000\002\000\000\000\003\000\000\002\187\000\000\000\004\000\000\002\188\000\000\000\000\002\189\000\005\000\000\000\000\000\000\000\226\000\221\000\222\000\225\000\223\000\000\004;\000\206\000\006\000\000\000\208\000\000\000\207\004<\000\000\000\209\004\182\000\007\000\000\000\000\000\211\000\000\000\000\000\210\004\183\000\212\000\213"
  
  let[@inline] default_reduction =
    fun i ->
      MenhirLib.PackedIntArray.get16 default_reduction i
  
  let error =
    "!\226\128\006\019\162^\205\239\224(?\136\b\006\028\000\000\000\000\000\016\000\128\000\016\000\000\000\000\000\000\001\247\220@\128\129\251\n\000\001`\227\220\028X\020\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000G\197\004m'L\191\155\223\192P\127\000P\028x\031}\196\b\b\031\176\160\000\022\014=\193\197\129A\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000\000\000\000\000\000\000\133\138\000\bL\by5\191\128 \242\000\160\bp\000\000\000\000\000@\002\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\000\000\000\000\000\000\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\194\000\000\000\000\000 \128\000\000\000\000\000\000\000\004\000\000\000\000\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\001\132\001\001\128\000\003\004\191@\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000A\177\000\000\012\000\t\004\006\000PQ\129\001\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\001\004\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\004\027\016\000\000\192\000\144@`\005\005\024\016\016\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\016l@\000\003\000\002A\001\128\020\020`@@\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000 \128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\024@\016\024\000\0020K\244\000\000\004\000@\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\006\192\000\000 H$\000\b\003@V\005\020\003\b\002\003\000\000F\t~\128\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\001\128\017 \000\000\000\002\000\000\002\000\000\006\192\000\000 \000$\000\b\003AG\004\004\003\000\000B\000\000F\000D\128\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\000\000\000\016\000\000\000\000\000\000\130 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\001\000\017 \000\b \002\000\000\000(\000\002\016\000\000 \002$\000\001\004\000@\000\000!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000$\016\000B\016@\201\173t\000\001\128\000\000A\000\004\130\000\b@\b\0255\174\128\0000\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\004 \004\012\154\215@\000\024\000\000\004\016\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!b\224B\031\194_Oo\231\203<\128\b\"]`$\016\000B\016@\201\173t\000\001\128\000\000A\000\004\130\000\b@\b\0255\174\128\0000\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000`\000\000 0\000\002\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\128\000\002\000\000\002\003\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\128\002\000\000\b\000\000\b\012\000\000\000\000\000\000\000\016\000@\000\001\000\000\001\001\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\005 \004\012\154\215@\000\024\000\000\004\016\000H \000\132\000\129\147Z\232\000\003\000\000\000\130\000\t\004\000\016\128\0162k]\000\000`\000\000\016@\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\139\129\b\127\t}=\191\159,\242\000 \137u\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H \016\132\000\129\147Z\232\000\003\000\000\000\130\000\t\004\000\016\128\0162\235]\000\000`\000\000\016@\001 \128\002\016\002\006Mk\160\000\012\000\000\002\b\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\177p!\015\225/\167\183\243\229\158@\004\017.\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bX\160\016\132\192\135\147[\248\002\015 \002\000\135\001\011\020\000\016\152\016\242k\127\000A\228\000@\016\224!b\128\002\019\002\030Mo\224\b<\128\b\002\028\004,P\000B`C\201\173\252\001\007\144\001\000C\128\133\138\000\bL\by5\191\128 \242\000 \bp\016\177p!\015\225/\167\183\243\229\158@\004\025.\178\022(\004!0!\228\214\254\000\131\200\000\128!\192\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\200X\160\000\132\192\135\147[\248\002\015 \002\000\135\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000 \000\128\000\002\000\000\002\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\002\000\000\b\000\000\b\012\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\223q\002\002\007\236(\000\005\131\143pq`PhC\197\000-'D\189\155\223\192P\127\000\016\0288\031\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\019\000\000\000\128 \128\000\000\005\005@\000\016\012\000\000\004\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000 \000\000\016\000\000\b\000\001\004\004\000 \000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\000\000\000\000\000\128\000\000\005\001@\000\016\012\160\b\012\128\000\024%\250\000\000\018\001 @\128\000\000\000L\000\000\002\000\002@\000\000\004\021\004\016@0\128 0\000\000`\151\232\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\002@\000\000@\000\000 \000\000\024@\016\024\000\0020K\244\000\000\004\000@\000\000\003\000\002\003\000\000\006\t~\128\000\000\000\b\000(\000`\000B`\000\000\193/\208\000\000\000\001\000\005\000\012\000\b\012\000\000\024%\250\000\000\000\000 \000\160>\251\136\016\016?a@\000,\028{\131\139\002\131B\030(\001i:%\236\222\254\002\131\248\000\128\225\192\002A\000\004!\004\012\154\215@\000\024\000\000\004\016\000H \000\132\000\129\147Z\232\000\003\000\000\000\130\000\b\000\000\000\000\000\016\000\000\000\b\000\000\000\000\000\000\000 \000\128\000\002\000\000\002\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\130\000\b@\b\025u\174\128\0000\000\000\b \016\177@\001\t\129\015&\183\240\004\030@DAN\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bX\160\000\132\192\135\147[\248\002\015 \002\000\135\001\011\020\000\016\152\016\242k\127\000A\228\004D\020\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\002\000\016\177@\t\t\129\015&\183\240\004\030@D\001N\002\022(\000!0!\228\214\254\000\131\200\000\128!\192B\197\000$&\004<\154\223\192\016y\001\016\0048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\b\128\000B\197\000\004&\004<\154\223\192\016y\000\016\0048\000H \000\132\000\129\147Z\232\000\003\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\019\014\237\169\252#\231\246\250|p\196\178\142\174\158B\197\000\132&\004\188\154\223\192\016y\000\016\0048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000 \002$\000\001\004\000@\000\000!\226\128\014\019\162^\205\239\224(?\128\b\006\028\000$\016\000B\016@\201\173t\000\001\128\000\000A\000\004\130\000\b@\b\0255\174\128\0000\000\000\b \016\177@\001\t\129\015&\183\240\004\030@DAN\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000  \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\002\000\b\000\000\160\000\000\000\b\000\000\000\t\004\000\016\128\0162k]\000\000`\000\000\016@\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000&\029\219S\248G\207\237\244\248\225\137e\029]<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\252\004\000\000\000\000\000\024\000\174\000\000\000\000\000\000\000\016\177p\001\015\241/\231\183\243\229\158\192\004\017.\183\223q\006\002\007\236(\000\005\131\143pq`Ph\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\020\002\016\152\016\242k\127\000A\228\000@\016\224\000\000\000\000\000\128\004\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000\000\000\000\000\000\000\004\130\000\b@\b\0255\174\128\0000\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\027\182#\240\015\000\201\225\241\192\018\202:8x\t\004\000\016\128\0162k]\000\000`\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\016\000\000@\000\000@`\000\004\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000@\000\003\000\000\001\001\128\000\016\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\128\000\006\000\000\002\003\000\000 \000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\004\000\016\128\0163k]\000\000`\004\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\017\192C\000D\207\173t\000\001\128\004\000A\000\004\130\000\b@\b\0255\174\128\0000\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000L;\182\167\240\143\159\219\233\241\195\018\202:\186x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\130\000\b@\b\0255\174\128\0000\000\000\b \000\152wmO\225\031?\183\211\227\134%\148ut\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\004 \004\012\154\215@\000\024\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027T\002\016\152\018\242k\127\000A\228\001D\016\224#j\128B\019\002\030Mo\224\b<\128\b\002\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\170\000\bL\by5\191\128 \242\000 \bp\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000`\000\000\000\000\000\000\000\000\000\002\000\192\000?\128>\006\000\015\134\000\000\000@\162\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\001\252\001\1440\000|0\000\000\002\005\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000H\000\000a\000@`\000\b\193/\208\000\000\016\001\000\000\000\004\000\000\b\000\000\024\001\018\000\000\000\000 \000\000\000@\000\006\000\016 @B\000\016\001\128\004\002\000\007\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\254\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000&\001\000\001\000A\000\000\000\n\002\136\000 \016\000\000\b\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\152\004\000\000\000\004\000\000\000(\n \000\128$\000\000\004\000\000\128\000\192\000\000\128\001\002\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\002\000\003\000\000\002\000\004\b\016\000\000\000\t\128\000\000@\000H\000\000\000\128\128\130\000\006\016\004\006\000\000\012\018\253\000\000\001\000\016\000\000\000\192\000\128\192\000\001\130_\160\000\000\000\002\000\n\000\000\000\000@\000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000\000\000@\000\128\000\000\000\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\132\001\001\128\000\003\004\191@\000\000@\004\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\0012\000\000\000\000\001\000\000\000\208A\128\004\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\012 \b\012\000\001\024%\250\000\000\002\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\128 0\000\004`\151\232\000\000\b\000\128\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\024@\016\024\000\0020K\244\000\000\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000l\000\000\002\004\130@\000\1284\005`Q@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000@\001\000\000\000\000\000\016 \000\000\000\000\000\000\000\016\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012 \b\012\000\000\024%\234\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\012 \b\012\000\000\024%\250\000\000\002\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\176\000\000\000\000\t\000\002\000\208\021\129E\000\194\000\128\192\000\001\130_\160\000\000 \002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000l\000\000\000\000\002@\000\128\020\005`Q@\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000@\000\0000\128$0\000\004`\151\232\000\000\b\002\128\000\000\006\016\004\006\000\000\140\018\253\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\012 \b\012\000\000\024%\250\000\000\002\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\194\000\128\192\000\001\130_\160\000\000 \002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\017\000\000\012 \b\012\000\000\024%\250\000\000\002\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000 0\000\000 \007\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\006\016\004\006\000\000\012\018\253\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\004@\000\003\b\002\003\000\000\006\t~\128\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\002\000\000\000\000@\004\000\000\000\000\002\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\002\000\004\000\000\000\000\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \002\000\000\000\128\001\000\000\000\000\"\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\001\001\128\000\003\004\191@\000\000\000\004\000\004\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000 \000\000\b\018\b\000\002\000\000\016\000@\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\128\000 \000\001\000\004\b\000\000\000\000\000\000\016$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\t\004\000\001\000\000\b\000 @\000\000\000\000\000\000\129 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\016\000\004\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\0000\000 0\000\000`\151\232\000\000\000\000\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000 \000\b\000\000@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000@\000\000\000\000\016\000\004\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b \000@\000\000\000\006\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\136\000\000a\000@`\000\000\193/\208\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\b\128\000\006\016\004\006\000\000\012\018\253\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\130\000\004\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\024@\018\024\000\0000K\244\000\000\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\000\000\000\000\001\000\000\000\002\002\130\b \024@\016\024\000\0000K\244\000\000\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0010\000\000\b\000\t\000\000\000\016\016\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\152\000\000\004\000\004\128\000\000\b\b\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000L\000\000\002\000\002@\000\000\004\004\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0010\000\000\b\000\t\000\000\000\016\016\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000 \000$\000\000\000@@A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\000\128\000\192\000\000\128\001\002\000\000\004\128\000\000\000\000\016\000\b\000\000\016\000\000@\000\000\000\000L\000\000\000\000\002\000\000\000\004\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000H\000\000\000\000\001\000\001\128\000\001\000\002\004\000\000\t\000\000\000\000\000 \000\016\000\000 \000\000\128\000\000\000\000\152\000\000\000\000\004\000\000\000\b\b\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002`\000\000\000\000\016\000\000\000  \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\128\000\000\000\000@\000\000\000\128\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000 \000\000\000@@\001\000\001 \000\000\000\000\004\000\006\000\000\004\000\b\016\000\000$\000\000\000\000\000\128\000@\000\000\128\000\002\000\000\000\000\002`\000\000\000\000\016\000\000\000  \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\018\000\000\000\000\000@\000`\000\000@\000\129\000\000\002@\000\000\000\000\b\000\004\000\000\b\000\000 \000\000\000\000&\000\000\000\000\001\000\000\000\002\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\152\000\000\000\000\004\000\000\000\b\b\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000L\000\000\000\000\002\000\000\000\004\004\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025@\016\025\000\0000K\244\000\000$\002@\129\000\000\000\000\152\000\000\004\000\004\128\000\000\b\n\b \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\160\b\012\000\000\024%\250\000\000\018\001 @\128\001\132\001!\128\000#\004\191@\000\000@\004\000\000\000\000\000\t\128\000\000@\000H\000\000\000\128\160\130\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\004\000\000\003\b\002C\000\000F\t~\128\001\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000!0\000\000`\151\232\000\000\000\000\128\002\128\000\000\0010\000\000\b\000\t\000\000\000\016\020\016A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000 \000$\000\000\000@PA\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002`\000\000\016\000\018\000\000\000 ( \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\000\000\000@\000`\000\000@\000\129\000\000\000\000\0010\000\000\b\000\t\000\000\000\016\020\016A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\000\128\000@\000\000\128\000\002\000\000\000\000\002`\000\000\016\000\018\000\000\000 ( \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\128\000\000@\000H\000\000\000\128\160\130\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000 \000$\000\000\000@PA\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002`\000\000\016\000\018\000\000\000 ( \130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\128\000\000@\000H\000\000\000\128\160\130\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\000\000\001\000\001 \000\000\002\002\130\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\001\001\128\000\003\004\189@\000\002@\000\b\016\000\000\000\t\128\000\000@\000H\000\000\000\130\160\130\b\006\016\004\134\000\000\140\018\253\000\000\001\000\016\000\000\000\192\000\132\192\000\001\130_\160\000\000\000\002\000\n\000\t\000\000\000\000\000 \0000\000\000 \000@\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002`\000\000\000\000\016\000\000\000 (\000\130\001\132\001\001\128\000\003\004\191@\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\006\016\004\006\000\000\012\018\253\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\006\192\000\000\000\000$\000\b\001@V\004\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\004\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\t\128\000\000\000\000@\000\000\000\128\160\000\b\000\000\0010\000\000\000\000\b\000\000\000\016\016\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\152\000\000\000\000\004\000\000\000\b\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\130\000\000\000L\000\000\000\000\002\000\000\000\004\005\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\128 0\000\000`\151\168\000\000H\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\000\000\000\000\001\000\000\000\n\002\128\000 \t\000\000\001\000\000 \0004\000\000 \002@\129\000\001 \000\000\000\000\004\000\006\128\000\004\000\b\016 \000\000\000\000\000\000\016@\000\128\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\000\000\000@\000(\000\000@\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\000\128\000P\000\000\128\000\002\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\128\000\000\000\000@\000\000\000\128\160\000\b\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000&\000\000\001\000A\000\000\000\n\002\128\000 \000\000\004\192\000\000 \b \000\000\001@P\000\004\000\000\000\152\000\000\000\000\004\000\000\000(\n\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000L\000\000\000\000\002\000\000\000\004\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000@\016\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\b\000\001\000\001\128\000\001\000\002\004\b\000\t\000\000\000\000\000 \0000\000\000 \000@\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\252\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000L\002\000\002\000\130\000\000\000\020\005\000\000@\000\000\t\128@\000\000\000@\000\000\002\128\160\000\b\002@\000\000@\000\b\000\012\000\000\b\000\016 @\000H\000\000\000\000\001\000\001\128\000\001\000\002\004\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\000\128\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\002@\000\000@\000\b\000\012\000\000\b\000\016 @\000H\000\000\000\000\001\000\001\128\000\001\000\002\004\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\016\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0010\000\000\000\000\000\000\000\000\016@\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000 \000\128\002\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\002`\000\000\000\000\002\000\000\000\160\000\128\000\000\128\000\001\000\000\003\000\"@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\004\192\000\000\000\000\000\000\000\000@\000\000\000\000\128\000\000\000\000@\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000@\000\000\000\b\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001\000\000\003\b\002\003 \000\006\t~\128\000\000\128\b\000\000\000a\000@`\000\000\193/\208\000\000\016\001\000\000\001\000\000\003`\000\000\000\000\018\000\004\000\160+\002\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\128 0\000\000`\151\232\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\001\001\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\027\000\000\000\000\000\144\000 \005\005\024\016\016\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\016\000\000\016\000\000 \000\000`\004H\000\000\000\000\128\000\000\128\000\001\176\000\000\000\000\t\000\002\000P\017\129\001\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000@\000\000\216\000\000\004\000\004\128\001\000h(\224\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\000\000 \000\000`\004H\000\000\000\000\128\000\000\128\000\001\176\000\000\000\000\t\000\002\000P\017\129\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\0000\002$\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000@\000\000\192\b\144\000\000\000\001\000\000\001\000\000\003`\000\000\000\000\018\000\004\000\160#\002\002\000\000\000\000\000\000\000\000\000\000\000\000\016\016\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\176\000\000\000\000\t\000\002\000PQ\129\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\006\192\000\000\000\000$\000\b\001@F\004\004\000\128\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\000\024\001\018\000\000\000\000 \000\000 \000\000L\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \017\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\012 \b\012\000\000\024%\250\000\000\002\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\223q\002\002\007\236(\000\005\131\143pq`PhC\197\000-'D\189\155\223\192P\127\000\016\0288\000\200 \128\128@\003\128\019\184\000\003@\002\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003 \226B\031\192_\003N\231\195\r\000\b2Y`\000\000\b\000\000\000\000\000\004\000\001\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\017\128\017 \000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\002\000\000\006\000D\128\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003`\000\000\000\000\000\000\004\000\128\003\002\000\000\000\000 \000\000\000\000\000\016\000\004\000\000\000\000\0002\b  \016\000\224\004\238\000\000\208\b\128(\128\006A\004\004\002\000\028\000\157\192\000\026\000\016\004\016\000\200 \132\128@\003\128\019\184\000\003@\"\000\130\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\016\000\000\012\130\bH\004\0008\001;\128\0004\002 \n \001\144A\001\000\128\007\000'p\000\006\128\004\001\004\000\016\000\000\000\000\000 \000\000\000\000\000\b\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\000\024\000\000@\000\000\016\000\000\000\000\000\004\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000D\001\0002\b  \016\000\224\004\238\000\000\208\000\128 \128\006A\004\004\002\000\028\000\149@\000\024\000\000\004\016\000\2008\144\135\240\023\192\211\185\240\195@\002\b\150X\025\004\016\016\b\000p\002w\000\000h\000@\016@\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\002d\016[@ \001\192\tT\002\001\141\000\019U@\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\027\000\000\000\000\000\000\002\000\r\012\019\020@\000\002\000\000\004\000 \000\000\128\000 \000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\002\000\016\000\000@\000\016\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\001\000\000\000\000\000\004\000\n\128\000\000\000\000\000\000\000d\016H@ \001\192\t\220\000\001\160\001\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\254\006A\004\004\002\000\028\000\157\192\000\026\000\016\004\016\004\000\0006\000\000\000\000\000\000\004\000\026\000&(\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017 \000\216\000\000\004\000\n\128\016\004h\000\152\162\000d\016H@ \t\192\t\220\000\001\160\001\000A\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000@\001\016@\000\194\000\128\192\000\001\130_\160\000\000 \002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003 \130\002\001\000\014\000N\224\000\r\000\b\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\130\b\b\004\0008\001;\128\0004\000 \b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\b\000\000\006A\004\132\002\000\156\000\157\192\000\026\000\016\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d\016@@ \001\192\t\220\000\001\160\017\000Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200 \132\128@\003\128\019\184\000\003@\"\000\130\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\b  \016\000\224\004\238\000\000\208\b\128(\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\004\016\144\b\000p\002w\000\000h\004@\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000@\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\b\002\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\016\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000@P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\003 \130\002\001\000\014\000N\224\000\r\000\b\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000@\012\130\b\b\004\0008\001;\128\0004\000 \b \000\000\000 \000\000\000\000\000\000\000\000\000\000\b\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000 \000\000\000\000\000\000\000\000\000\000\000@\bX\160\000\132\192\135\147[\248\002\015 \002\000\135\000\000\000\000\000\004\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000 \000u\016H@ \t\192\t\220\000\001\160\005\000A\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000@\001\016\004\000\200 \128\128@\019\128\019\184\000\003@\002\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\004\000\016\000\000\133\138\000\nL\by5\191\128 \242\000 \bp\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\200 \128\128@\003\128\019\184\000\003@\002\000\130\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\001\000!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000@\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\212q!\015\224/\129\167s\225\134\128\020\017,\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007Q\004\132\002\000\156\000\157\192\000\026\000\016\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\128\000\000u\016H@ \t\192\t\220\000\001\160\001\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\016\177@\001\t\129\015&\183\240\004\030@\004\001\014\002\022(\000!0!\228\214\254\000\131\200\000\128!\192\002A\000\004 \004\012\154\215@\000\024\000\000\004\016\000\004\027\182#\240\015\000\201\225\241\192\018J:8x\t\004\000\016\128\0162k]\000\000`\000\000\016@\0010\238\218\159\194>\127o\167\199\012K(\234\233\228,P\000B`C\201\173\252\001\007\144\001\000C\128\000A\187b?\000\240\012\158\031\028\001$\163\163\135\128\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\197\000\004&\004<\154\223\192\016y\000\016\0048\031\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\248\b\000\000\000\000\0000\001\\\000\000\000\000\000\000\000!b\224\002\031\226_\207o\231\203=\128\b\"]d,P\bB`C\201\173\252\001\007\144\001\000C\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002a\221\181?\132|\254\223O\142\024\150Q\213\211\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d\016H@ \001\192\t\220\000\001\160\001\000A\000\133\138\000\bL\by5\191\128 \242\128 h\248?\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\242\022(\000!0!\228\214\254\000\131\200\000\128!\192\000 \193\177\015\1280\006\b\015\142\000\146\017\209\195\200X\160\000\132\192\135\147[\248\002\015 \002\000\135\000\000\131\006\196>\000\192\024 >8\002HGG\015!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000\002\012\027\016\248\003\000`\128\248\224\t!\029\028<\133\138\000\bL\by5\191\128 \242\000 \bp\000\0000\000C\224\012\001\128\003\225\128\000\000\020 2\022(\000!0!\228\214\254\000\131\200\000\128!\192\000 \193\177\015\1280\006\b\015\142\000\146\017\209\195\200X\160\000\132\192\135\147[\248\002\015 \002\000\135\000\000\131\006\196>\000\192\024 >8\002HGG\015!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000\002\012\027\016\248\003\000`\128\248\224\t!\029\028<\133\138\000\bL\by5\191\128 \242\000 \bp\000\b0lC\224\012\001\130\003\227\128$\132tp\242\022(\000!0!\228\214\254\000\131\200\000\128!\192\000 \193\177\015\1280\006\b\015\142\000\146\017\209\195\200X\160\000\132\192\135\147[\248\002\015 \002\000\135\000\000\131\006\196>\000\192\024 >8\002HGG\015!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000\002\012\027\016\248\003\000`\128\248\224\t!\029\028<\133\138\000\bL\by5\191\128 \242\000 \bp\000\b0lC\224\012\001\130\003\227\128$\132tp\242\022(\000!0!\228\214\254\000\131\200\000\128!\192\000 \193\177\015\1280\006\b\015\142\000\146\017\209\195\200X\160\000\132\192\135\147[\248\002\015 \002\000\135\000\000\131\006\196>\000\192\024 >8\002HGG\015!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000\002\012\027\016\248\003\000`\128\248\224\t!\029\028<\133\138\000\bL\by5\191\128 \242\000 \bp\000\b0lC\224\012\001\130\003\227\128$\132tp\242\022(\000!0!\228\214\254\000\131\200\000\128!\192\000 \193\177\015\1280\006\b\015\142\000\146\017\209\195\200X\160\000\132\192\135\147[\248\002\015 \002\000\135\000\000\131\006\196>\000\192\024 >8\002HGG\015!b\128\002\019\002\030Mo\224\t<\128\b\002\028\004,P\000B`C\201\173\252\001\007\144\001\000C\128\000A\131b\031\000`\012\016\031\028\001$#\163\135\128\b0lC\224\012\001\130\003\227\128$\132tp\242\022(\000!0!\228\214\254\000\131\200\000\128!\192\000 \193\177\015\1280\006\b\015\142\000\146\017\209\195\200X\160\000\132\192\135\147[\248\002\015 \002\000\135\000\000\131\006\196>\000\192\024 >8\002HGG\015!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000\002\012\027\016\248\003\000`\128\248\224\t!\029\028<\133\138\000\bL\by5\191\128 \242\000 \bp\000\b0lC\224\012\001\130\003\227\128$\132tp\242\022(\000!0!\228\214\254\000\131\200\000\128!\192\000 \193\177\015\1280\006\b\015\142\000\146\017\209\195\192\000\000\000\000\000\000\000\000\000\000\000\b\000\006\b\128\024@\016\024\000\0000K\244\000\000\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\004,P\000B`C\201\173\252\001\007\144\001\000C\129\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\128\000\000\000\000\000\000\000\000\000\000\000\016\000\000\016\002\022(\000!0!\228\214\254\000\131\200\000\128!\192\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\192\000\000 \000\000\000\000\000\000\000\000\000\000\000\000A\011\020\000\016\157\018\254k\127\000A\236\000@\016\224\003 \130\002\001\000\014\000N\224\000\r\000\b\002\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000 \133\138\000\bN\137\1275\191\128 \246\000 \bp\001\144A\017\000\208'\000'p\000\006\128\004\001\004\0002\b\" \016\000\224\004\238\000\000\208\000\128 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200 \128\128@\003\128\019\184\000\003@\002\000\130\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\193\016\003\b\002\003\000\000\006\t~\128\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\133\138\000\bL\by5\191\128 \242\000 \bp?\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\240\000\000\000\000\000\000@\000\000\000\000\002\000\005\130 \007Q\004\132\002\000\156\000\157\192\000\026\000P\004\016\000\000\000\000\000\000\000\000\000 \000\000\b\000\002\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\000\000\000!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000\000\012\027\016\248\003\000`\128\248`\001\001\004\012\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\136$ \016\004\224\004\238\000\000\208\000\128 \128\000\000\000\000\000\000\000\000\001\000\000\000@\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\128\000 \000\000\000\000\000\000\000\000\000\000@\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\000@\000\000\000\000\000\000\000\000\000\000\128\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014 \b\012\000\001\024%\250\000\000\002\000 \000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\024@\016\024\000\0000K\244\000\000\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\004,P\000B`C\201\173\252\001\007\144\001\000C\129\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\128\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\0000\128 0\000\000`\151\232\000\000\b\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\bX\160\000\132\192\135\147[\248\002\015 \002\000\135\003\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\000\000\000\216\000\000\000\000\000\000\000\000 \000\192\128\000a\000@`\000\000\193/\208\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000B\197\000\004&\004<\154\223\192\016y\000\016\0048\031\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000 \004,P\000B`C\201\173\252\001\007\144\001\000C\129\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\000\000\000@\000 \000\000@\000\001\000\000\000\000\0010\000\000\b\000\t\000\000\000P\016\016@\000H\000\000\000\000\001\000\000\128\000\001\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\000\000\000\128\000\144\000\000\005\001\001\004\000\004\128\000\000\000\000\016\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0010\000\000\b\000\t\000\000\000P\016\016@\000H\000\000\000\000\001\000\000\128\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\000\000\000\128\000\144\000\000\005\001\001\004\000\004\128\000\000\000\000\016\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\128\000\000@\000H\000\000\002\128\128\130\000\002@\000\000\000\000\b\000\004\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000 \000$\000\000\001@@A\000\001 \000\000\000\000\004\000\002\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\bX\160\000\132\232\151\243[\248\002\015`\002\000\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\002\000\016\001\018\000\000\130\000 \000@\000\128\000\001\000\000\002\000\"@\000\016@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000 \000\004\000\000\000\000\000\000\000!b\128\002\019\162_\205o\224\b=\128\b\002\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\128\000 \000\001\128\000!\000\000\003\000\"@\000\000\000\004\000\000\0000\000\004 \000\004`\004H\000\000\000\000\128\000\000\000\000\000\128\000\000\000\000\000\000\000\000\128\001\000\000\016\000\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\004\000\000@\000\000\216\000\000\000\000\004\128\001\000h\b\192\128\128`\000\b@\000\000\192\b\144\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\000\004\000\000\012\000\137\000\000\000\000\016\000\000\016\000\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\004\000\000\003\000\000B\000\000\006\000D\128\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\001\011\020\000\016\157\018\254k\127\000A\236\000@\016\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000@\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\012\000\000\000\000\b\000\000\000\000\003 \130\002\001\000\014\000N\224\000\r\000\b\002\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000 \133\138\000\bN\137\1275\191\128 \246\000 \bp\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\254\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\192\000\000\000\000 \000\000\000@@\001\004\003 \130\002\001\000\014\000N\224\000\r\000\b\002\b\000\000\000\027\000\000\000\000\000\128\000\000\001\001\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\144A\001\000\128\007\000'p\000\006\128\004\001\004\000\000\000\r\128\000\000\000\000@\000\000\000\128\128\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!b\128\002\019\"_\205o\224\b=\128\b\002\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\191\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\223\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144A\001\000\128\007\000'p\000\006\128\004\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200 \136\128h\003\128\019\184\000\003@\002\000\130\000\025\004\017\016\b\000p\002w\000\000h\000@\016@\003 \130\002\001\000\014\000N\224\000\r\000\b\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\000\016\000\b\000\000\016\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\002\000\000\004\001\000\b\000\137\000\000A\000\016\000 \000@\000\000\128\000\001\000\017 \000\b \002\000\000\000\000\000\004\000\000\000 \000\004\000\000\000\000\000\000\000!b\128\002\019\162_\205o\224\b=\128\b\002\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\001\b\000\000\016\001\018\000\000\130\000\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000@\000\b\000\000\000\000\b\128\000\002\000\000\004\000\000\012\000\137\000\000\000\000\016\000\000\016\000\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\128\000\000@\000H\000\000\000\130\136\128\b\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\001@\000\016\128\000\001\000\017 \000\b \002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\000\128\000\001\000\000\003\000 @\000\000\000\000\000\000\0000\000\000 \000\004`\004H\000\000\000\000\128\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000 \000\000@\000\000\128\b\144\000\004\016\001\000\000\000\000\000\003`\000\000\016\000\018\000\000\000 \" \002\000\128\000\001\000\000\002\000\"@\000\016@\004\000\000\000\000\000\r\128\000\000@\000H\000\000\000\128\136\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\001\000\017 \000\b \002\000\000\000\000\000\004\000\000\000 \000\004\000\000\000\000\000\000\000!b\128\002\019\162_\205o\224\b=\128\b\002\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\128\000 \000\000\128\000\001\000\000\002\000\"@\000\016@\004\000\000\000\000\000\t\128\000\000@\000H\000\000\000\128\128\000\b\002\000\000\004\000\000\012\000\137\000\000\000\000\016\000\000\016\000\000\000\000\000\000\000\000 \000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\000\000\002\000\"@\000\016@\004\000\000\000\000\000\b\000\000\000@\000\b\000\000\000\000\000\000\000B\197\000\004'D\191\154\223\192\016{\000\016\0048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\b\000\000\000@\000\000\000\000\000\000\000\000\000\133\138\001\bL\by5\191\128 \242\000 \bp\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000B\197\000\004'D\191\154\223\192\016{\000\016\0048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\002\000\016\001\018\000\000\130\000 \000@\000\128\000\001\000\000\002\000\"@\000\016@\004\000\000\000\000\000\b\000\000\000@\000\b\000\000\000\000\000\000\000B\197\000\004'D\191\154\223\192\016{\000\016\0048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000 \002$\000\001\004\000@\000\000\000\000\000\128\000\000\004\000\000\128\000\000\000\000\000\000\004,P\000BtK\249\173\252\001\007\176\001\000C\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000@\000\000\016\000\004\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000B\197\000\004'D\191\154\223\192\016{\000\016\0048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\012\000\000\000\000\b\000\000\000\000\003 \130\002\001\000\014\000N\224\000\r\000\b\002\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000 \133\138\000\bN\137\1275\191\128 \246\000 \bp\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\002\000\000\004\001\000\b\000\137\000\000A\000\016\000 \000@\000\000\128\000\001\000\017 \000\b \002\000\000\000\000\000\004\000\000\000 \000\004\000\000\000\000\000\000\000!b\128\002\019\162_\205o\224\b=\128\b\002\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\000\016\001\018\000\000\130\000 \000\000\000\000\000@\000\000\002\000\000@\000\000\000\000\000\000\002\022(\000!:%\252\214\254\000\131\216\000\128!\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000  \001\011\020\002\016\152\016\242k\127\000A\228\000@\020\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\252\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000B\197\000\132'D\191\154\223\192\016{\000\016\0048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\020\000\016\153\018\254k\127\000A\236\000@\016\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\253\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\228,P\bBtK\249\173\252\001\007\176\001\000C\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\128\000\000\000\000\000\000\002\000\b\000\000 \000\000 0\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\130\000\b@\b\025\181\174\128\0000\002\000\b \000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\004 \004\012\154\215@\000\024\000\000\004\016\000\000\003\128\002\000\b\b\000\128\000\000\000\b\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\130\000\b@\b\0255\174\128\0000\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\024\004!\240\006\000\192\001\240\192\000\000\b\016\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\002\128\000\000\000\000\000\000\004,P\000B`C\201\173\252\001\007\144\001\000C\128\000\001\128B\031\000`\012\000\031\012\000\000\000\129\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\022(\000!0!\228\214\254\000\131\200\000\128!\192\000\000\000\016\000\000\000\000\000\000\000\000\000\001\000\000\bX\160\002\132\192\135\147[\248\002\015 \002\000\135\000\000\003\000D>\000\192\024\000>\024\000\000\005\002\003\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\"\031\000`\012\000\031\012\000\000\002\129\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\022(\000!0!\228\214\254\000\131\200\000\128!\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\020\000\144\152\016\242k\127\000A\228\004@\016\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\b\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\002\000 \000\000\b\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\024\002!\240\006\000\192\001\240\192\000\000(\016\024\000\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\138\000\bL\by5\191\128 \242\000 \bp\000\000\000@\000\000\000\000\000\000\000\000\000\000@\000\000\016\000\000\000\000\000 \000\000\000\000\000\b\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\"\000\001\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\000`\b\135\192\024\003\000\007\195\000\000\000\160@`\000\000\001\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000\000 \000\000\b\000\000\000\000\000\002\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\b\128\000B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\024\002!\240\006\000\192\001\240\192\000\000(\016\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\128\000\000\000\002\000\000\000\000\000\000\128\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\017\000\000\133\138\000\bL\by5\191\128 \242\000 \bp\000\0000\004C\224\012\001\128\003\225\128\000\000P 0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\000\000\000\000\000\000\136\000\004,P\000B`C\201\173\252\001\007\144\001\000C\128\000\001\130\"\031\000`\012\000\031\012\000\000\002\129\001\128\000\000D\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\004\000\000\000\000\000\001\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\004@\000!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000\000\012\017\016\248\003\000`\000\248`\000\000\020\b\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\000\000\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000 \000\000\000\000\000@\000\000\000\000\000\016\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000D\000\002\022(\000!0!\228\214\254\000\131\200\000\128!\192\000\000\193\017\015\1280\006\000\015\134\000\000\001@\128\192\000\000\"\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\022(\000!0!\228\214\254\000\131\200\000\128!\192\000\000\193\017\015\1280\006\000\015\134\000\000\001@\128\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000@\000\000\016\000\000\000\000\000\004\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000\017\000\000\133\138\000\bL\by5\191\128 \242\000 \bp\000\0000DC\224\012\001\128\003\225\128\000\000P 0\000\000\b\128\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\001\b|\001\1280\000|0\000\000\002\004\006\000 \221\177\031\128x\006O\015\142\000\210Q\209\195\200X\160\000\132\192\135\147[\248\002\015 \002\000\135\000\000\131\006\196>\000\192\024 >8\002HGG\015\001\000\000\000\000\000\002\000\002\128\000\000\000\000\000\000\004,P\000B`C\201\173\252\001\007\144\001\000C\128\000\001\128B\031\000`\012\000\031\012\000\000\000\129\001\128\b7lG\224\030\001\147\195\227\1284\148tp\242\022(\000!0!\228\214\254\000\131\200\000\128!\192\000 \193\177\015\1280\006\b\015\142\000\146\017\209\195\200X\160\000\132\192\135\147[\248\002\015 \002\000\135\000\000\000\000@\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\002\r\219\017\248\007\128d\240\248\224\r%\029\028<\133\138\000\bL\by5\191\128 \242\000 \bp\000\b0lC\224\012\001\130\003\227\128$\132tp\240\001\006\237\136\252\003\1922x|p\006\146\142\142\030B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\004\0246!\240\006\000\193\001\241\192\018B:8x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\002\016\248\003\000`\000\248`\000\000\004\b\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\001@\000\000\000\000\000\000\002\022(\000!0!\228\214\254\000\131\200\000\128!\192\000\000\192!\015\1280\006\000\015\134\000\000\000@\128\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\000\000\b\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\r\136|\001\1280@|p\004\144\142\142\030\006\000\004\006\000\000\012\018\253\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\016`\216\135\192\024\003\004\007\199\000I\b\232\225\224`\000@`\000\000\193/\208\000\000\000\001\000\000\000\000A\128\002\031\000`\012\000\031\012\000\004\000\129\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\024\016!\240\006\000\192\001\240\192\000\000\b\016\024\t\004\000\016\128\0162k]\000\000`\000\000\016@\000\016n\216\143\192<\003'\135\199\000I(\232\225\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\002\031\000`\012\000\031\012\000\000\002\129\001\128\000\000\000\000\000\000\000\000@\000\000 \000\004\000\0000\000 0\000\000`\151\232\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\001\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\016`\216\135\192\024\003\004\007\199\000I\b\232\225\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\212A!\000\128'\000'p\000\006\128\004\001\004\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\b\000\001\000\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\016\000\002\000\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d\016@@ \001\192\t\220\000\001\160\001\000A\000@\000\000\000\000\000\000\000\000\000\000\001\000\000\000\128\016\177@\001\t\129\015&\183\240\004\030@\004\001\014\000\000\006\000\b|\001\1280\000|0\004\000\002\004\006B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\004\0246!\240\006\000\193\001\241\192\018B:8y\011\020\000\016\152\016\242k\127\000A\228\001@\016\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\012\027\016\248\003\000`\128\248\224\t!\029\028<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b0lC\224\012\001\130\003\227\128$\132tp\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\004!\240\006\000\192\001\240\192\000\000\b\016\025\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004,P\000B`C\201\173\252\001\007\144\001\000C\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\000@\002\000\"@\000\016@\004\000\b\000\016\000\000 \b\000@\004H\000\002\b\000\128\000\000\002\000\000\004\000\000\b\000\137\000\000A\000\016\000\000\000\000\000&\000\000\001\000\000 \000\000\002\000\000\000\000\028\000\001\000\004\000\016\000\000\000\000\000\000\000\000\000\001\000\000\000\000\016\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000?\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004,\\\bC\248K\233\237\252\249g\144\001\006K\172\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\002\022(\000!0!\228\214\254\000\131\200\000\128!\192\000\000\192\001\015\1280\006\000\015\134\000\000\001@\128\200X\160\000\132\192\135\147[\248\002\015 \002\000\135\000\000\003\002\004>\000\192\024\000>\024\000\000\001\002\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\242\022(\000!0!\228\214\254\000\131\200\000\128!\192\000\000\1931\015\1280\006\000\015\134\000\016\000@\128\192\200 \136\128`\019\128\019\184\000\003@\002\000\130\000\t\004\000\016\128\0162k]\000\000`\000\000\016@\000\000n\152\143\192<\003#\135\195\000\b  @` \000\000@\000\000\128\b\144\000\004\016\001\000\000\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\128\000\000\000\000@\002\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\000\000\000\000\000\000\000\002A\000\004 \004\012\154\215@\000\024\000\000\004\016\000\000\027\166#\240\015\000\200\225\240\192\002\136\b\016\025\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\000`\152\135\192\024\003\000\007\195\000\b\000 @`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\016\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\1931\015\1280\006\000\015\134\000\016\000@\192\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000d\016@@ \001\192\t\220\000\001\160\001\000A\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\128\016\177@\001\t\129\015&\183\240\004\030@\004\001\014\000\001\006\000\b|\001\1280\000|0\000\016\002\004\006B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\024\016!\240\006\000\192\001\240\192\000\000\b\016\024\t\004\000\016\128\0162k]\000\000`\000\000\016@\000\000n\152\143\192<\003#\135\195\000\b  @`\000\000\000\000\016\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\0000\128 0\000\000`\151\232\000\000\b\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\152\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000\bX\160\000\132\192\135\147[\248\002\015 \002\000\135\000\000\003\004\196>\000\192\024\000>\024\000@\001\002\003\003\000\002\003\000\000\006\t~\128\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\133\138\000\bL\by5\191\128 \242\000 \bp\000\0000LC\224\012\001\128\003\225\128\004\000\016 08\128!p\002\004h\159\232\002\0008\000\128@\000\002\000\000\004\000\000\012\000\137\000\000\000\000\016\000\000\016\000\000&\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\004\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\012 \b\012\000\000\024%\250\000\000\002\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\000 \000\016\000\000 \000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000@\000\000\000\000\000\000\000@@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\b\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\000\000\000\007\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\254\016\000\000\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\006\016\004\006\000\000\012\018\253\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\132\001\001\128\000\003\004\191@\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\003\b\002\003\000\000\006\t~\128\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\000\000\001\000\"@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\000\000\000\128\000\144\000\000\005\001\000\000\016\012 \b\012\000\000\024%\250\000\000\002\000 \000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\000\b\001\018\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\254\006\016\004\006\000\000\012\018\253\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\024@\016\024\000\0000K\244\000\000\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012 \b\012\000\000\024%\250\000\000\002\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000 \000\000\015\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\252\016\000\0021\128\000\000\002\000 \000\000\000\b\000\000\004\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\003\b\002\003\000\000\006\t~\128\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\006\016\004\006\000\000\012\018\253\000\000\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\016\002$\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000@`\000\000\193/\208\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\254\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\031\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000 \000\000 \004H\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\152\000\000\000\000\004\000\000\000\b\b\000\000\129\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000 \000\000\000@@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\016\000\000 \000\000`\004H\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\001\000\000\002\000\000\006\000D\128\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002`\000\000\000\000\016\000\000\000  \000\002\004\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\002\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\000\000\000\000\000\128\000\000\001\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0010\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\007\000\b\016 !\000\b\000\194\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000@\000\000\016\000\004\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0010\000\000\000\000\000\000\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\001\000\000\002\000\000\006\000D\128\000\000\000\b\000\000\b\000\000\019\000\000\000\000\000\128\000\000\001\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\0010\000\000\000\000\b\000\000\000\016\016\000\001\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\000\000\000\000\001\000\000\000\002\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000 \000\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000\000\004\000\005\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000L\000\000\000\000\000\000\000\000\004\016\000\000\000\000\000\002\000\000\000 \000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\019\128\004\b\016\016\000\004\000a\000\000\128\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\128\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\t\128@\000@\016@\000\000\002\128\162\000\b\000\000\0010\b\000\000\000\b\000\000\000P\020@\001\000H\000\000\b\000\001\000\001\128\000\001\000\002\004\b\000\t\000\000\000\000\000 \0000\000\000 \000@\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\001\000\000 \0000\000\000 \000@\129\000\001 \000\000\000\000\004\000\006\000\000\004\000\b\016 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\128\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\t\128@\000@\016@\000\000\002\128\160\000\b\000\000\0010\b\000\000\000\b\000\000\000P\020\000\001\000H\000\000\b\000\001\000\001\128\000\001\000\002\004\b\000\t\000\000\000\000\000 \0000\000\000 \000@\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000@\016\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\b\000\001\000\001\128\000\001\000\002\004\b\000\t\000\000\000\000\000 \0000\000\000 \000@\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\016\000\000\000\000\000\000\000\000\000\002\000\004\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\128\000\000\000\000\000\000\000\000\130\000\000\000\007\000\000@\001\000\004\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000\004\000\000\001@\001\000\000\001\000\000\002\000\000\006\000D\128\000\000\000\b\000\000\b\000\000\019\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\194\000\128\192\000\001\130_\160\000\000 \002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\002\000\000\006\000D\128\000\000\000\b\000\000\b\000\000\019\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\002\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\006\016\004\006\000\000\012\018\253\000\000\001\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\000\016\000\b\000\000\016\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000&\000\000\000\000\001\000\000\000\002\002\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\152\000\000\000\000\004\000\000\000\b\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\128\000 \000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\128\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\004\192\000\000\000\000 \000\000\000@@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\004\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\128\000\160\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\128\000\000\000\000\000\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014 \n\\\000\129\026'\234\000\128\014\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\000\b\000\002\000\000\029D\018\024\b\002p\002w\000\000h\001@\016@\000\000\000\000\000\000\000\000\000\128\000\000 \000\b\000\000 \000\000@\000\000\192\b\144\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\000\000\000\007\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\0000\002$\000\001\004\000@ \000\127\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\224d\016D@4\001\192\t\220\000\001\160\001\000A\000\004\130\000\b@\b\0255\174\128\0000\000\000\b \000\000\007D\004\000\018\000\017\192\000\000\000\016\000\000\000\016\000\000 \000\000`\004H\000\002\b\000\128A\000\002\000\000\004\000\000\012\000\137\000\000A\000\016\b\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\006\192\000\000 H \000\000\000@@@\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000:\136$ \016\004\224\004\238\000\000\208\002\128 \128\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000@\000\000\128\000\001\128\017 \000\b \002\001\000\000\000\000\006\192\000\000 \001,\000\000\000@@@\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\000\000\003\000\"@\000\016@\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007Q\004\132\002\000\156\000\157\192\000\026\000\016\004\016\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\b\000\000\016\000\0000\002$\000\001\004\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\000\000 \000\000`\004H\000\002\b\000\128@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000 \000\000@\000\000\192\b\144\000\004\016\001\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024@\016\024\000\0000K\244\000\000\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000@\000\000\031\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\017\140\000\000\016\016\003\000\000\000\000@\000@ \000\000\000\000\002\b\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b \000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\003\b\002\003\000\000F\t~\128\000\000\128\b\000\000\000\000\000\017\000\000\000\000\000\000\000\000\004\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\016\177@\001\t\129\015&\183\240\004\030@\004\001\014\000\000\006\b\136|\001\1280\000|0\000\000\002\004\006\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\018\000\001\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\000`\136\135\192\024\003\000\007\195\000\000\000 @`\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\133\138\000\bL\by5\191\128 \242\000 \bp\000\0000DC\224\012\001\128\003\225\128\000\000\016 02\b\" \024\000\224\004\238\000\000\208\000\128 \128\002A\000\004 \004\012\154\215@\000\024\000\000\004\016\000\000\003\162\002\000\t\000\b\224\000\000\000\b\000\000\000\b\000\000\016\000\0000\002$\000\001\004\000@ \128\001\000\000\002\000\000\006\000D\128\000 \128\b\004\000\000\000\000\017\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\132\001\001\128\000\003\004\191@\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\128\000\000\000\000\000\000\000\004\000@\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\012 \b\012\000\000\024%\250\000\000\002\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\000\000\002\000\000\128\000\007\016\004\006\000\000\012\018\253\000\000\001\000\016\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\003\b\002\003\000\000\006\t~\128\000\000\128\b\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\127\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\239\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\252\016\000\0021\128\000\000\002\000`\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000d\016@@ \001\192\t\220\000\001\160\001\000A\000\000\000\002 \000\000\000\000\000\000\000\000\000\000\000\128\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\007\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\127\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000@\000\000\192\b\144\000\000\000\001\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\001\128\017 \000\b \002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\128\000 \000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\004\000\000\000\000\000:\136$ \016\004\224\004\238\000\000\208\000\128 \128\000\000\000\000\000\000\000\000\001\000\000\000@\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\000@\000\016\000\000\234 \144\128@\019\128\019\184\000\003@\n\000\130\000\000\000\000\000\000\000\000\000\004\000\000\001\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\016H@ \t\192\t\220\000\001\160\001\000A\000\000\000\000\000\000\000\000\000\002\000\000\000\128\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\b\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\128\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002`\000\000\000\000\016\000\000\000  \000\002\004\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\002\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\000\000\000\000\000\128\000\000\001\001\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\177@\001\t\129\015&\183\240\004\030@\004\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\004 \004\012\154\215@\000\024\000\000\004\016\000\000\027\166#\240\015\000\200\225\240\192\002\b\b\016\024\000\003t\132~\001\224\025\028>\024\002\001\001\002\003\127\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\228,P\000B`C\201\173\252\001\007\144\001\000C\128\000\001\130b\031\000`\012\000\031\012\000 \000\129\001\144\177@\001\t\129\015&\183\240\004\030@\004\001\014\000\000\006\t\136|\001\1280\000|0\000\128\002\004\006B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\024\000!\240\006\000\192\001\240\192\000\000\n\016\025\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\000`\152\135\192\024\003\000\007\195\000\b\000 @d,P\000B`C\201\173\252\001\007\144\001\000C\128\000\001\130b\031\000`\012\000\031\012\000 \000\129\001\144\177@\001\t\129\015&\183\240\004\030@\004\001\014\000\000\006\t\136|\001\1280\000|0\000\128\002\004\006B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\024&!\240\006\000\192\001\240\192\002\000\b\016\025\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\000`\152\135\192\024\003\000\007\195\000\b\000 @d,P\000B`C\201\173\252\001\007\144\001\000C\128\000\001\130b\031\000`\012\000\031\012\000 \000\129\001\144\177@\001\t\129\015&\183\240\004\030@\004\001\014\000\000\006\t\136|\001\1280\000|0\000\128\002\004\006B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\024&!\240\006\000\192\001\240\192\002\000\b\016\025\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\000`\152\135\192\024\003\000\007\195\000\b\000 @d,P\000B`C\201\173\252\001\007\144\001\000C\128\000\001\130b\031\000`\012\000\031\012\000 \000\129\001\144\177@\001\t\129\015&\183\240\004\030@\004\001\014\000\000\006\t\136|\001\1280\000|0\000\128\002\004\006B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\024&!\240\006\000\192\001\240\192\002\000\b\016\025\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\000`\152\135\192\024\003\000\007\195\000\b\000 @d,P\000B`C\201\173\252\001\007\144\001\000C\128\000\001\130b\031\000`\012\000\031\012\000 \000\129\001\144\177@\001\t\129\015&\183\240\004\030@\004\001\014\000\000\006\t\136|\001\1280\000|0\000\128\002\004\006B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\024&!\240\006\000\192\001\240\192\002\000\b\016\025\011\020\000\016\152\016\242k\127\000I\228\000@\016\224!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000\000\012\019\016\248\003\000`\000\248`\001\000\004\b\012\000\001\130b\031\000`\012\000\031\012\000 \000\129\001\144\177@\001\t\129\015&\183\240\004\030@\004\001\014\000\000\006\t\136|\001\1280\000|0\000\128\002\004\006B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\024&!\240\006\000\192\001\240\192\002\000\b\016\025\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\000`\152\135\192\024\003\000\007\195\000\b\000 @d,P\000B`C\201\173\252\001\007\144\001\000C\128\000\001\130b\031\000`\012\000\031\012\000 \000\129\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\128\000\000\000\000\000\000\000\000\128\000\000\000C\197\000<'D\189\155\223\192P\127\016\016\0128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\211\017\248\007\128dp\248`\001\004\004\b\012\133\138\000\bL\by5\191\128 \242\000 \bp\000\0000\bC\224\012\001\128\003\225\128\000\000\016 0\000\006\233\136\252\003\19228|0\002\130\002\004\006B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\024&!\240\006\000\192\001\240\192\002\000\b\016\024\b\000\000\000\000\000\016\000\020\000\000\000\000\000\000\000!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000\000\012\002\016\248\003\000`\000\248`\000\000\004\b\012\000\001\186b?\000\240\012\142\031\012\000\160\128\129\001\144\177@\001\t\129\015&\183\240\004\030@\004\001\014\000\000\006\t\136|\001\1280\000|0\000\128\002\004\006B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000n\152\143\192<\003#\135\195\000(  @d,P\000B`C\201\173\252\001\007\144\001\000C\128\000\001\130b\031\000`\012\000\031\012\000 \000\129\001\128\0007LG\224\030\001\145\195\225\128\020\016\016 2\022(\000!0!\228\214\254\000\131\200\000\128!\192\000\000\1931\015\1280\006\000\015\134\000\016\000@\128\192\000\000\000\000\000\001\000\000 \000\000\b\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\128\000\000 \000\b\000\000\000\000\019\000\000\000\000\000\128\000\000\001\001\000\000\016\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000@\000\000\016\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\004\000\000\001\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002`\000\000\000\000\016\000\000\000  \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\002\000\b\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\251\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\019\000\128\000\128 \128\000\000\005\001@\000\016\000\000\002`\016\000\000\000\016\000\000\000\160(\000\002\000\144\000\000\016\000\002\000\003\000\000\002\000\004\b\016\000\018\000\000\000\000\000@\000`\000\000@\000\129\002\000\002@\000\000\000\000\b\000\012\000\000\b\000\016 \000\000H\000\000\000\000\001\000\000\128\000\001\000\000\004\000\000\000\000\004\192\000\000\000\000 \000\000\000@@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\128\000\000\000\000\016\000\024\000\000\016\000 @\000\000\144\000\000\000\000\002\000\001\000\000\002\000\000\b\000\000\000\000\t\128\000\000\000\000@\000\000\000\128\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\000\000\000\000\001\000\000\000\002\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\152\000\000\000\000\004\000\000\000\b\b\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000L\000\000\000\000\002\000\000\000\004\004\000\016\000\018\000\000\000\000\000@\000`\000\000@\000\129\000\000\002@\000\000\000\000\b\000\004\000\000\b\000\000 \000\000\000\000&\000\000\000\000\001\000\000\000\002\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\001 \000\000\000\000\004\000\006\000\000\004\000\b\016\000\000$\000\000\000\000\000\128\000@\000\000\128\000\002\000\000\000\000\002`\000\000\000\000\016\000\000\000  \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\128\000\000\000\000@\000\000\000\128\128\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192\000\000\000\000 \000\000\000@@\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\b\002\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\001\000\000 \0000\000\000 \000@\129\000\001 \000\000\000\000\004\000\006\000\000\004\000\b\016 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\128\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\t\128@\000@\016@\000\000\002\128\160\000\b\000\000\0010\b\000\000\000\b\000\000\000P\020\000\001\000H\000\000\b\000\001\000\001\128\000\001\000\002\004\b\000\t\000\000\000\000\000 \0000\000\000 \000@\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\000\128\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\002@\000\000@\000\b\000\012\000\000\b\000\016 @\000H\000\000\000\000\001\000\001\128\000\001\000\002\004\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\002\000\128\004\000D\128\000 \128\b\000\016\000 \000\000@\016\000\128\b\144\000\004\016\001\000\000\000\004\000\000\b\000\000\016\001\018\000\000\130\000 \000\000\000\000\000L\000\000\002\000\000@\000\000\004\000\000\000\0008\000\002\000\b\000 \000\000\000\000\000\000\000\000\000\002\000\000\000\000 \004\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\003\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d\016D@0\t\192\t\220\000\001\160\001\000A\000\004\000\000\b\000\000\016\001\018\000\000\130\000 \000\000?\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\240\000\000\000\000\b\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\024@\016\024\000\0000K\244\000\000\004\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\0010\000\000\000\000\b\000\000\000\016\016\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\000\000\000\000\000\000\004\000\000\128\000\000 \000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\000\128\000 \000\000\000\000L\000\000\000\000\002\000\000\000\004\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000C\197\000\012'D\189\155\223\192P\127\000\016\0128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\226\128\006\019\162^\205\239\224(?\128\b\006\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\001\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\000\000`\016\135\192\024\003\000\007\195\000\000\000 @`\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000 \000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\254F\197\000\005&\004<\154\223\192\016y\000\016\1488\b\216\160\000\132\192\135\147[\248\002\015 \002\018\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 @\000\000\000\000\000\000\000\000\000d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000@\000\0026\168\004!0!\228\214\254\000\131\200\002\128!\192F\213\000\004&\004<\154\223\192\016y\000\016\0048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004,P\002B`C\201\173\252\001\007\144\001\000C\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\004 \004\012\154\215@\000\024\000\000\004\016\000\000\003\128\002\000\b\b\000\128\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000\002\012\027\016\248\003\000`\128\248\224\t!\029\028<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\000\002\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\177@\t\t\129\015&\183\240\004\030@D\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@\004\000\000\001\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\016\000B\000@\201\173t\000\001\128\000\000A\000\000\0008\000 \000\144\000\142\000\000\000\000\128\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H \000\132\000\129\147Z\232\000\003\000\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000\000\012\002\016\248\003\000`\000\248`\000\000\004\b\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\0002\b  \016\000\224\004\238\000\000\208\000\128 \128 \000\000\000\000\000\000\000\000\000\000\000\128\000\000@\bX\160\000\132\192\135\147[\248\002\015 \002\000\135\000\000\003\000\004>\000\192\024\000>\024\002\000\001\002\003!b\128\002\019\162_\205o\224\b=\128\b\002\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\138\000\bN\137\1275\191\128 \246\000\160\bp\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000P\000\000\000\000\000\000\000\133\138\000\bL\by5\191\128 \242\000 \bp\000\0000\bC\224\012\001\128\003\225\128\000\000\016 0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\000\002\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\240\016\000\000\000\000\000`\002\184\000\000\000\000\000\000\000B\197\192\004?\196\191\158\223\207\150{\000\016D\186\192\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\000\000\001\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\177@\001\t\129\015&\183\240\004\030@\004\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bX\160\004\132\192\135\147[\248\002\015 \"\000\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@ \002\000\000\000\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\016\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000 \000\000`\004H\000\000\000\000\128\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\187b?\000\240\012\158\031\028\001$\163\163\135\128\0000\000C\224\012\001\128\003\227\128\000\000P 0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000  \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\197\000$&\004<\154\223\192\016y\001\016\0048\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\001\000\004\000\000P\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\b\002\003\000\000F\t~\128\001\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\b\000\000\006\016\004\006\000\000\140\018\253\000\002\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000A\000\000\000\202\000\128\192\000\001\130_\160\000\001 \018\004\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\152\000\000\004\000\006\000\000\004\b\b\016\000\128$\000\000\000\000\000\128\000@\000\000\128\000\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\128 0\000\000`\151\168\000\000H\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\000\000\000\000\001\000\000\000\002\002\128\b \000\000\004\192\000\000\000\000 \000\000\000@@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000L\000\000\000\000\002\000\000\000\004\005\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\160\b\012\000\000\024%\234\000\000\018\000\000@\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\128\000\000\000\000@\000\000\002\128\160\000\b\002@\000\000@\000\b\000\r\000\000\b\000\144 @\000H\000\000\000\000\001\000\001\160\000\001\000\002\004\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\000\000\000\004\000\002\128\000\004\000\000\016 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\b\000\005\000\000\b\000\000 @\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002`\016\000\016\004\016\000\000\000\160(\000\002\000\000\000L\002\000\000\000\002\000\000\000\020\005\000\000@\018\000\000\002\000\000@\000`\000\000@\000\129\002\000\002@\000\000\000\000\b\000\012\000\000\b\000\016 @\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128 \000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\016\000\002\000\003\000\000\002\000\004\b\016\000\018\000\000\000\000\000@\000`\000\000@\000\129\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\248\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\152\004\000\004\001\004\000\000\000(\n\000\000\128\000\000\019\000\128\000\000\000\128\000\000\005\001@\000\016\004\128\000\000\128\000\016\000\024\000\000\016\000 @\128\000\144\000\000\000\000\002\000\003\000\000\002\000\004\b\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000 \000 \b\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\004\000\000\128\000\192\000\000\128\001\002\004\000\004\128\000\000\000\000\016\000\024\000\000\016\000 @\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\0246!\240\006\000\193\001\241\192\018B:8x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\133\138\000\bL\by5\191\128 \242\000 \bp\000\0000\000C\224\012\001\128\003\225\128\000\000P 2\022(\000!0!\228\214\254\000\131\200\000\128!\192\000\000\192\129\015\1280\006\000\015\134\000\000\000@\128\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\195\187j\127\b\249\253\190\159\0281,\163\171\167\128\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002a\221\181?\132|\254\223O\142\024\150Q\213\211\192\000\011\128\"\000\t\128\b\224\128\192\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000.\000\136\000&\000#\130\003\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\016\000@\000\005\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\128\002\000\000(\000\000\000\002\000\000\000\000\000\028\000\016\000@\000\005\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\129\002\031\000`\012\000\031\012\000\000\003\161\001\128\128\000\001\000\000#\000\"@\000\000\000\004\000\000\000\016\000\000 \000\000`\004H\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\017\128\017 \000\000\000\002\000\000\000\b\000\000\016\000\0000\002$\000\000\000\000@\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\192\000\000 \000\000@\000\b\192\b\144\000\000\000\001\000\000\000\004\000\000\b\000\000\024\001\018\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000 \000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\016\004\006\000\000\140\018\253\000\000\001\000\016\000\000\000\000\000\"\000\000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000!b\128\002\019\002\030Mo\224\b<\128\b\002\028\000\000\012\017\016\248\003\000`\000\248`\000\000\004\b\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0007DG\224\030\001\145\195\225\128\000\016T 7\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\254B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\000\000\"\000\000\000\000\000\000\000\000\000\000 \000\000\b\000\000@\000\000\016\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \016\001\000\000\000@\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\198\002\000\024\b\001\128\000\016\000 \000 \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\192@\000\000\000\000\001\128\n\224\000\000\000\000\000\000\003\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\001 \128\002\016\002\006Mk\160\000\012\000\000\002\b\000\002\r\219\017\248\007\128d\240\248\224\t%\029\028<\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H \000\132\000\129\147Z\232\000\003\000\000\000\130\000\000\003t\196~\001\224\025\028>\024\000A\001\002\003\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002\000\016 @B\000\016\001\132\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024@\016\024\000\0000K\244\000\000\004\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\177@\001\t\129\015&\183\240\004\030@\004\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\001\015\1280\006\000\015\134\000\016\000@\128\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\004\016\016\b\000p\002w\000\000h\000@\016@\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\241A\003\t\209/f\247\240\020\031\196\004\003\014\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\002A\001\000\000\000\012\000\000@\000\b\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\030( a:%\236\222\254\002\131\248\128\128a\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\b\000\000\000\004<P@\194tK\217\189\252\005\007\241\001\000\195\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\004\000\000\000\002\030( a:%\236\222\254\002\131\248\128\128a\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000"
  
  let[@inline] error =
    fun i ->
      MenhirLib.PackedIntArray.get1 error i
  
  let[@inline] error =
    fun i j ->
      error (131 * i + j)
  
  let start =
    7
  
  let action_displacement =
    "C\214\169\000N\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000>8N\140\000\000\000\00090O`\169\00090&\150\172*\181^\000\000@\2282\006\131|\000\000\178\144\026f<\146>\166\177\204\026f\178\220\026f=\206\000\000\026f\137\168<\244\000\000<\220\000\000B ?l\168p$\142\000\000\000\000A\2248\004\000\000\000\000\179\\\168p\000\000>\204\000\000\000\000\000\000T\150\142\188\182z\000\000\142\188\000\000B\246B\178\180\216y\220!\130\169\000\176\220\000\000\000\000\176\220$\142\000\000;r\169\000\176\220\000\000?@\026f8\b\000\000\142\234;|\142\234\142\234\000\000\169\132\169\132\169\132$\142\000\000;r\000\000\000\000\000\000\169\132\167`\167`$\142\000\000;r\000\000\000\000V\198!\130!\130!\130!\130;rU*\028n!\1304\006\142\234\000\000\137\168\000\000N\140C\214#\138\000\000:(\168\134_0\000\000>\204\000\0009\202\000\000>\204\000\000:R\000\000>\204\000\000@\148\000\000\000\0004\210\132\236\000\000\000\000\000\000\132\236@~\000\000dn\140\202\184F\182\018\000\000\131|\168p\131|\173P\131|N\140C\214\169\000\176\2207\136\142\234\000\000\167`X`\000\000\000\000!\130X`@\230\000\0003\176Q\204!\130Y(\000\0003\176\000\000A\248\000\0009\1904\004!\130\169\132\000\000\000\000\000\000\000\000>\2047\146O`\000\000\180\216C\214\169\000\176\220X`A\132\000\0003\176A\152\000\000?\250>\204\000\000\000\000\000\000?\020\167`>\2042\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000)\162H\254:zN\140\000\000\000\000T\\\169\00090\169\132\000\000\000\000\000\000I\020\167`\000\0003t=,D\004\026f: \000\000\000\000@.\026f8\252\000\0003\170\000\000\000\000\167`\000\000\139B\167`\000\000\000\000\000\0005\162\000\000\000\000\000\000\169\1323\178\000\000\167`\000\000S|Z\220\000\000?\250\000\000=\030\132\246\000\000\000\000\000\000\000\000\000\000\000\000\132\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\230\000\0002\152\180\200T\150D\168#\138>\220\145*\132\236dn\172D\000\000W\130\169\238\182\018\131|\180\216\000\000\127\176BZ\134\216>\204\\\016>\204\\\016\000\000_0P2\000\000\180\0048\0128\182\168p\000\000\000\000\000\000\177\170\000\0004\166R\140\000\000\000\000\000\000\131|\000\000\000\000\000\0007\1865\028\000\0007b\131|\000\000\000\000\181\132\131|\000\000+\170\000\000\000\000\182:<\130>\204\000\000\000\000\000\0007b\000\000;\128P2\180\004\000\000=\"\000\000<\202\131|\000\000\000\000<\236\131|\000\000\000\0005\024\134\216\000\000\026f\000\000>^\000\000\000\000\000\000\000\0002\244=\252\134\216\000\0008\128\134\216\000\0005\190\131|\000\0002\244\000\0006\016\170\216\000\0002\244\000\000?\026\000\000\127\176?(\000\000?2\000\000\131|>\204M\128\000\000\026f\000\000<\164\026f\000\000\000\000\000\0007\234>\204[\"\026f\000\000\000\000\000\000\000\000\026f\000\000?\160\000\000=f7\234\131|\000\000\000\000=f\000\0007\234=f\000\000\180\216\000\000\181^?\1409x\134\216\000\000?\172:h\134\216\000\0007\nW\130\000\000?\242\000\000@\006\000\000<P\131|\000\000\000\000\000\000@\030\000\000\000\000\138\128\131|\000\000\000\000\000\000\000\000\000\000\169\238\000\000@,\169\238\000\000@@\169\238\000\000\169\238\000\000\169\238\000\000W\130W\130<j\000\000?\172W\130W\130\136\022\000\000\136\170\000\000\135\130\000\000\000\000W\152W\130W\130W\152?\228W\130W\130W\152\000\000W\152\000\000\000\000W\152\000\000\000\000\000\000\170\148\169\238\000\000\175z\173P\169\238\000\000\000\0003d\168p\000\000A\014\000\000\168p\169\238\000\000\169\238\000\000\000\000\169\238\000\000\181^\169\238\000\000\173P\168p>n\169\238\000\000\169\238\000\000\172\202\169\238\000\000\172\202\169\238\000\000\169\238\000\000\169\238\000\000\000\000\000\000\000\000\177f\184F\172\202\172\202\181^\000\000\000\000:z\131|@\192\131|\000\000\1836\000\000A&\145*dn:z:z\177fA0\145*dn\000\000\000\000\000\000\000\000\000\000\000\000:z\000\000\177f:z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\177f\000\000Z:\181^\181^\181^\000\000\000\000>n\000\000\000\000\000\000\000\000>n\000\000\000\000;r>\030\145*\145*dn\000\000\000\000;r>n>\030\000\000\000\000\000\000\000\000AN>\n\145*A\252\172DW\130\000\000(\158>@\145*f\240\172DW\130\000\000\000\000At>b\145*B\004\172DW\130\000\000\000\000\172*\000\000\142L&\1509\016Ib\000\0005P>\204\182zT\150\000\000\000\000\000\000K\0307\158\176N\000\000@\1403\004\000\000\145*:\242\172D\131|\183X\000\000\131|\000\0004t8v\026f\148JT\1508\140T\150\1840@F:\166Z\\\000\000\000\000@TT\150\183z\000\000T\150\000\000T\150\175\220{\020\026f\147.\000\000\159\1907\158\000\000T\150<`\000\000\000\000\142L\000\000\132\246?\b\134\216\000\000N\140C\214\137>\000\000\026f\000\0004J\000\000\000\00038\000\000\000\000B\2224J88\000\0005\140\000\000O\154\000\000T\150\000\000B\19038Q\004\137>Y(?\154\000\0003\022Q\204\137>X`\176N7\bX`S|\000\000\000\0005\216\137>\134\144B\222\137>>\204\134\144>\204\000\000\000\000\000\000\000\000\000\000\000\000\176\200\134\144\000\000\000\000\134\144\000\000\019J3\004\174\\\000\000\000\000\022V\137>N\n\000\000\176N\171\186885\140\000\000T\020\131|\000\000\137>\000\000\137>\000\000>\002\147\216\000\000B\140\000\000Q\0043\022\000\000;R\000\000Y(B\142\000\000X`;|\000\000\000\000\000\000\031z\000\000\132\246\000\000B^\000\000Q\0047f\000\000\171\026\000\0003T\000\000X`B\146\000\000\000\000\000\000>\002B\154\000\000\000\0004\176\132\246\000\000B\150\000\000@\222\000\000B^A\226\000\000B\162Bn\137>4\218\137>4\218\000\000T\020!\130\169\000Y\218\137>Bp\000\000Br\138\128\137>\000\000\000\0005\028?\250\000\000\169\000Bv\137>T\020!\130:<\000\000@\236\000\000\146\188\000\000\000\000>j\147\216\000\000B\198\000\000\000\000>jB\200\000\000\000\0009@!\130!\130\169\132I\248\169\1328\138!\130M\136B\144\000\000!\130'\154Ib:zW\152\000\000\000\000\000\0009\130\000\000!\130\000\000\174\240?\250\"\134!\130s\200!\130\\d!\130j\150!\130\139\182!\130qF!\130w\246!\130[\142!\130fj!\130o\154!\130m\024!\130h\022!\130^\230!\130b<!\130kl!\130x\204!\130^\016!\130ut!\130afA\238!\130w y\162!\130pp!\130n\196!\130r\028!\130g@!\130]:2\220\131|BN!\130\005\018@\222!\130\015::\142\025b\137>;\026\025b\142L\176\n\000\000\137>3\212\131|BX!\130\006\022A4\136\170\138\1282\186!\130~(\000\000\000\000\151\150\138\1282\186\000\000>jB\236\138\1282\186\000\000>jC\000\138\1282\186\000\000\134\2166\1306\130\000\000B`\131|Br!\130\011*Bd\131|Bv!\130/\186J\004\131|\000\000\000\000Bx!\130\000\003\000\000B^!\130\029r\000\000\170\216]\n:\132;r\000\000]\224:\132\000\0002\246\169\238:\132\000\0003,b\012:\132\000\000c\184:\132\000\000a6:\132\000\000\000\000\000\000\000\0007\144\025b\000\000\000\0008H~.\180\216\000\000\000\000\000\0002\176\025b\000\000<\026\182z\183\0206j;*6\020\168TDh\000\000\000\0009lT\150K\0309R\127\020\000\000:z\000\0009\244\000\000:~\025b\000\000886\254\000\000\000\0004\252\000\000P2\137>3\n\025b\000\000\r2\025b\000\000\134\216\137>\134\216;\022\137>\134\216\000\000\000\000\000\000\025b\000\000\016>\025b\000\000\t\"\025b\000\000!\130\000\000\000\000\137>\000\000\000\000\142L\176\n\137>\000\000\170\216\000\000<,~.\180\2165\248\025b\000\000\180\216\000\000A,T\150Cr\000\000\000\000\000\000<v\000\000{\020:\236\132\236\000\000\000\000<\0262\016:N\182z<\156\000\000\000\000<\030\180\216ET\180\216\129,\000\000\180\2166\240\025b\000\000\180\216\180\216A,T\150ET\000\000\000\000\000\000\000\000\180\2167F\025b\000\000\000\000\000\0004\006U\248\000\000=P\025b\000\000\000\000\000\000=F~.\180\2167\136\025b\000\000\180\21688\025b\000\000<\026=\170\025b\000\0002\160\137>4|\025b\000\000>\022~.\180\2168>\025b\000\000\180\2168\128\025b\000\0007rD\168\000\0001\194\000\000\000\000>\142?\250\000\000\025b\000\000\004\014\025b\000\000\000\000>\162\000\000\000\000\003\nA\238\000\0007\136\137\168\000\000>\176\000\0004R\000\000\167`>\136\000\000\167`P\210>\148\000\000\000\000\167`\000\000\000\000!\130\164^\000\0009\168!\130\163\220\000\000!\1308n?\250\164^>\204\000\000\163\220\000\000!\130>\022\000\000i\228\000\000>\210\000\0009\1902r3\160\000\000>`\000\000\000\000:\132\127\186\000\000!\130\165P\170\216\000\000\000\000!\1309\000X`\176N6\144!\130\163l6:Q\204\176N8\192!\130\165\192\000\000;\0228\250!\130\164\206\000\000\000\000\000\000\176N5\202!\130\140~3\188\000\000Q\204\176N5\152!\130\145\148\000\0005\172\000\000\000\0007\006W\130\000\000\000\000W\130\000\000?x\000\000?\128\000\0004\134X`\176N6\194!\130\140~>\b\000\000\000\0007\156\000\000\000\000!\130\144\206\000\000Q\204\176N\140~!\130\140~8\148\000\000\000\0008\180\000\000\000\000\000\000\000\000\145\148H0!\130t\158=\170!\130\140~Fh!\130`\144!\1308n?\162E\132!\130vJGL!\130c\018\000\000\000\000\167\212\000\000<\132!\130\166\196\000\000!\1308n?\172\000\000\000\000m\238\026f?(!\130lB\026f~(\000\000\000\000!\130\141\200\169\132L\164\000\000\139\182:\200\026f\000\000:z!\130d\190\000\000\000\000\148\244:\200:z\000\000>j?\216:\200:z\000\000>j?\234:\200:z\000\000\137>B^!\130\137\252!\130c\232A\238\000\000h\236\000\000Y\218\000\000\000\000\164\206!\130\000\000!\130\000\000\172*\142L\180\216=\0204X=\188\000\000>\204-\178\000\000!\130\000\000!\130\000\000<j@\012?\216!\130\141F!\130\141F\000\000@\018\000\000\001\002!\130\150\240\142L\169\132\129\\\180\216\017B\169\00090\169\132z\134!\130\150n\000\000\169\000Y\218\000\000\144\142\000\000\169\000?\238\137>B^!\130~(!\130\143\228\169\132\130\026\142L\132\246?r\131|5\242\000\0008\0248\024\000\000\000\000\000\000:<2\020!\130\152\142\026f?\184!\130\139\182\131|T\150?\132\142L\132\246?\152\131|5v\000\0008\024\000\000W\130\000\000>\"\000\000>\"@(5\168\127\020\000\000\000\000@X>\204\000\000\000\000\000\000>6\127\020\000\000@r\000\000_0%\1465\016\181^\000\000>\"\000\000\000\000@>?\212\131|\000\000\000\000>\"@T?\220\134\216\000\000>\"@\\=\234\134\216\000\000\000\000_0\000\000?\2526p\000\000\000\000Q\222\131|<P\000\000@\164\000\000\000\000\000\000\000\000_0\000\000\021R\131|@&\131|\000\000\000\000\131|\000\000\000\000@\170\172*&\1503\134\021R?\n5\016\000\000>\"@\154@ \134\216\000\000>\"@\166:\190\134\216\000\000_0\000\000\131|\000\000\000\000\b\0300\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000>`\0146\000\000@\232\000\000@\238\000\000_0\000\000\000\000\000\000@\236>\"\000\000@*>\"\000\000\000\000@\236\000\000@\1945\168B$_0\000\000\000\000@n_0\000\000B\222>\"\000\000@D>\"\000\000\000\000B\222\000\000\000\000\000\00060D\168\000\000\000\000\000\000\000\0006\160&\150Ax\000\000\182zT\150Cr\000\000\000\000\182zV\19888\182z\000\000@L88\182z\000\000\000\000V\198\000\000;\\4\176\026f\137\1686\254<(\000\000\000\000\000\000\138\186#\138=(\145*b\194\172DW\130\000\000\000\000\000\000@\146=\246\145*A\"\172DW\130\000\000(\158>\200\145*g\198\172DW\130\000\000\000\000@\156>\166\145*A(\172DW\130\000\000\172*\142L&\150A\0186H>\204\183\020T\150;*\000\000\142L\132\246@\146\134\216\000\000T\150=\142\142L\132\246@\154\131|9,\000\0008\024\000\000W\130\000\000:6>\"@\236\000\000B\222\000\0007\152&\150?\238\000\000\182zV\198\000\000902\192\026f<\146\000\000\000\000\000\000\000\000\000\000\138\186\000\000>\"A$;\196\133\210;\196_0\000\0003\254\024^\000\000\000\000$\142\024^\142L\169\132\134J\172*$\142$\142\133N\000\000\000\000\000\000B@\136\022A\238$\142\142\234\000\000\000\000\000\000$\142\000\000\163\nA\216$\142\000\000>jAz@\240$\142\000\000>jA\134@\248$\142\000\0004@AV\000\000\000\000\131|\000\000\000\000Ar\172*&\150;4\024^\000\000\000\000S&\172*\000\0007\2487\190A\\:^\180\2006\026A\006!\130\167\212A`A\238!\130\166\196A\016!\130\166B\142L\169\132\128L\172*$\1424@\000\000\131|\000\000\000\000~.9\026Ap@\248\134\216\000\0008\144\180f6\130A\020\131|2\186\000\000\000\0002\186\000\000\000\000\000\000\012.\030v=f\000\000~.\000\000\000\000\000\000@\250\137>T\020;\020.\182\000\000\000\000A\206\024^\000\000\000\000$\142\000\000A\206\000\0006\156\000\000_0A\214\000\000A\216\000\000$\142\000\000\000\000\000\0004J38\160h;\196\000\000>jA\224;\196\000\000>6A\2309\136\135\130;\196\000\000\159L;\196\000\000>jB\000;\196\000\000>jB\004;\196\000\000\000\000>jB\018;\196\000\000\000\000\137>>\"\000\000A8>\"\000\000\000\000\137>\000\000!\130\000\000\169\132\130\216\132.,\174!\130\161\226!\130\155\154!\130~(!\130\143\164!\130\154\020!\130\159\194!\130\160\222!\130\158\166!\130\156\158!\130\156\028!\130\148N!\130\153\146!\130\157 !\130\162d!\130\154\150!\130\161`!\130\158$!\130\155\024!\130\157\162?\250!\130\152\012\1472!\130\143\228!\130\153\016!\130\149\236!\130\149j\000\0007(C\214\000\000\000\000\000\000\127\012!\130\144\206|\002!\130\141F=\128!\130\166B}~!\130\137\252!\1308nA\\{D!\130\141\200|\192!\130\146\022<\026\000\000<\026\133\21088<\026\000\000AR88<\026\000\000\000\000\133\210\000\00088\000\000\027j#\138=\250\145*h\156\172D\170\216\170\216\170\216O`\000\000An\170\216\170\216T\\\000\000U*\000\000U\248\000\000\000\000A\238\170\216\170\216A\238Av\170\216\170\216A\238\000\000A\238\000\000\000\000A\238\000\000\000\000\000\000@r<\220\145*B$\172D\170\216\000\000(\158<\014\145*h\250\172D\170\216\000\000@\020;\028\145*B:\172D\170\216\000\000\172*\142L\180\216;h7@=\188>\204\n&\000\000\142L\180\216\023Z\142L\132\246A\158\131|6\168\000\0008\024\000\000:6\137>\000\000 ~<\026\000\000<\026\133\210\000\000C\214\000\000\000\000C\214\000\000\000\000\000\000\000\000\000\000@H!\130\163l;\154\000\000@\180\000\000\000\000\000\000\000\0003\154:n@\172\000\000*\166R\140A\238\000\000\000\000\000\000\000\0002\152\000\000\000\000\000\000\000\000\000\000@\162\000\000< P2?\250\000\000@\154\000\000?\250\000\000@8\000\000\167`N\224\000\000!\130r\242\000\000@t\000\0007\136@h\000\000!\130?\172\000\000Q\004\000\000BT\000\0009\1902r?\232\000\000\132\236\000\000@X\000\000?\246\000\000\169\132F\182@\004\000\000\000\000\167`\000\000!\130\165P\000\0008\210\137>@\222!\130~(\025b\000\000?\250\000\000\000\000\000\0008\210\000\000\000\000=v!\130\165\192\000\000!\1308n@\004\000\000\000\000\000\000\007\026<\176:z?\246\000\0007\136?\254\000\000!\130?2\000\000_\222\000\000?\234\000\0009\1902r?*\000\000y\220\000\000?\216\000\000?\196\000\000\000\000\000\000\000\000\000\000?\194\000\000;h\000\000T\150?\192\000\0007r?\172\000\000K\192~(\000\0002rA\228\000\000\000\000>\240\000\000\000\000>\232\000\0003\176A\162\000\000?X\000\0005~\000\000X`\000\000Bb\000\000I\1288\210\000\0007\152\000\000?r\000\000?\150\000\000\000\000?\128\000\0005\254;\172>\204;\172\000\000\000\000?p\000\0003d>\226\000\000\168p3d>\208\000\0002\030\168p3dA\240\000\000>\186\000\000A\242\000\0007\186\173\214\000\000\181^>n\000\000\000\000\177f\000\000;r;r\000\000>n\000\000;r\000\000\000\000\000\000\000\000\000\000\000\000\177f\000\000R\158\127\176\127\176\000\000>n\000\000\000\000\000\000\000\000>n\000\000\000\000\000\000\000\000\145*eD\172D\170\216\000\000>.:\012\145*Bn\172D\170\216\000\000(\158>r\145*f\026\172D\170\216\000\000A\2308\176\145*>\134\172D\170\216\000\000>D\000\000e\148\000\000B\138=F!\130\141\200!\130\143\164\000\000\000\000=\254\000\0004\170=8\000\0006\154\142\234\000\000\142\234\000\000\000\000\000\000\000\000E\2108\210\000\0003\250\000\000=&\000\000H~G\1548\210\000\0003\210\000\000\137\252O\154T\150\000\000O\154T\1509`O\154T\150\000\000\000\000<|\000\000=\020\000\000\000\000\000\0004\166\000\000\180\2005\";\218!\130\169\248\000\000\127\186\020N!\1309\140Q\004\000\000;\022<$\000\000<\"\000\000<\020\000\000<\006\000\000<\000\000\000P2\018F;\184\002\006\169\132J\220;\152\000\000B\150\000\000\169\132\128\158:2\000\000\000\000D\168:\n\000\000\000\000\131|\000\0008\158\000\000!\130\000\000\140~\000\000\137>T\020\000\000\000\000?\n>\204\132\246\000\000\000\000\000\000\000\000\000\0003\154\000\000\000\000\000\0006\216\000\0005\018\000\000\000\000=f\000\000\000\000\000\0002\232=f\000\0002\164=f\000\000\000\000\000\000\000\000"
  
  let[@inline] action_displacement =
    fun i ->
      MenhirLib.PackedIntArray.get16 action_displacement i
  
  let action_data =
    "\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\0152\015B\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\015J\005\217\005\217\005\217\005\217\015R\015j\015r\015Z\015z\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\015\130\015\138\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\015\146\015\170\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\015:\015b\015\154\015\162\015\178\005\217\005\217\005\217\005\217\015\186\015\194\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\005\217\015\234\005\217\005\217\005\217\005\217\005\217\005\217\015\210\005\217\005\217\005\217\005\217\005\217\005\217\005\217\015\218\015\226\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\0242\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\005q\018\221\018\221\018\221\005q\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\0152\015B\004}\004}\004}\004}\004}\020f\004}\004}\004}\004}\004}\004}\004}\015J\004}\004}\004}\004}\015R\015j\015r\015Z\015z\004}\004}\004}\004}\004}\004}\004}\004}\004}\015\130\015\138\004}\004}\004}\004}\004}\004}\004}\004}\004}\015\146\015\170\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\015:\015b\015\154\015\162\015\178\004}\004}\004}\004}\015\186\015\194\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\001\014\015\234\004}\005f\004}\004}\004}\004}\015\210\004}\004}\004}\004}\004}\004}\004}\015\218\015\226\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\0152\015B\na\na\na\na\na\020J\na\na\na\na\na\na\na\015J\na\na\na\na\015R\015j\015r\015Z\015z\na\na\na\na\na\na\na\na\na\015\130\015\138\na\na\na\na\na\na\na\na\na\015\146\015\170\na\na\na\na\na\na\na\na\na\na\na\na\na\015:\015b\015\154\015\162\015\178\na\na\na\na\015\186\015\194\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\015\234\na\na\na\na\na\na\015\210\na\na\na\na\na\na\na\015\218\015\226\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\0152\015B\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\015J\005\249\005\249\005\249\005\249\015R\015j\015r\015Z\015z\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\015\130\015\138\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\015\146\015\170\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\015:\015b\015\154\015\162\015\178\005\249\005\249\005\249\005\249\015\186\015\194\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\015\234\005\249\005\249\005\249\005\249\005\249\005\249\015\210\005\249\005\249\005\249\005\249\005\249\005\249\005\249\015\218\015\226\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\0152\015B\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\015J\005\237\005\237\005\237\005\237\015R\015j\015r\015Z\015z\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\015\130\015\138\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\015\146\015\170\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\015:\015b\015\154\015\162\015\178\005\237\005\237\005\237\005\237\015\186\015\194\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\005\237\015\234\005\237\005\237\005\237\005\237\005\237\005\237\015\210\005\237\005\237\005\237\005\237\005\237\005\237\005\237\015\218\015\226\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a$\178\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\026\150\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\0152\015B\na\na\na\na\na\018z\na\na\na\na\na\na\na\015J\na\na\na\na\015R\015j\015r\015Z\015z\na\na\na\na\na\na\na\na\na\015\130\015\138\na\na\na\na\na\na\na\na\na\015\146\015\170\na\na\na\na\na\na\na\na\na\na\na\na\na\015:\015b\015\154\015\162\015\178\na\na\na\na\015\186\015\194\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\015\234\na\na\na\na\na\na\015\210\na\na\na\na\na\na\na\015\218\015\226\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\005n\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\011.\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\016\165\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\0152\015B\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\015J\005\229\005\229\005\229\005\229\015R\015j\015r\015Z\015z\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\015\130\015\138\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\015\146\015\170\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\015:\015b\015\154\015\162\015\178\005\229\005\229\005\229\005\229\015\186\015\194\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\005\229\015\234\005\229\005\229\005\229\005\229\005\229\005\229\015\210\005\229\005\229\005\229\005\229\005\229\005\229\005\229\015\218\015\226\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\030\230\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\0186\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\025v\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\025\158\na\na\na\na\011\002\na\na\na\025\162\025\182\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\012\018\na\na\na\na\003.\na\na\na\na\na\na\025\206\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\005\226\na\026\022\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\0152\015B\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\015J\005\253\005\253\005\253\005\253\015R\015j\015r\015Z\015z\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\015\130\015\138\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\015\146\015\170\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\015:\015b\015\154\015\162\015\178\005\253\005\253\005\253\005\253\015\186\015\194\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\005\253\015\234\005\253\005\253\005\253\005\253\005\253\005\253\015\210\005\253\005\253\005\253\005\253\005\253\005\253\005\253\015\218\015\226\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\0152\015B\na\na\na\na\na\018n\na\na\na\na\na\na\na\015J\na\na\na\na\015R\015j\015r\015Z\015z\na\na\na\na\na\na\na\na\na\015\130\015\138\na\na\na\na\na\na\na\na\na\015\146\015\170\na\na\na\na\na\na\na\na\na\na\na\na\na\015:\015b\015\154\015\162\015\178\na\na\na\na\015\186\015\194\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\015\234\na\na\na\na\na\na\015\210\na\na\na\na\na\na\na\015\218\015\226\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\018\202\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\003\194\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\016\193\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a(z\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\r\002\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\002z\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\005m\018\221\018\221\018\221\005m\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\na\na\na\na\025v\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\025\158\na\na\na\na\011\002\na\na\na\025\162\025\182\na\na\na\na\na\na\na\nI\na\na\na\na\na\na\na\na\na\na\na\na\na\025\202\na\na\na\na\na\na\na\012\018\na\na\na\na\003.\na\na\na\na\na\na\025\206\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\005\226\na\026\022\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\026*\na\na\na\na\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\r\022\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\r\162\n\245\n\245\n\245\n\245\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\018\202\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\003\194\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\016\197\na\na\na\na\000\250\na\001f\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\025\158\na\na\na\na\011\002\001\134\na\na\029V\029Z\na\na\na\na\na\na\na\nI\na\na\na\na\na\na\na\na\na\na\029^\001j\na\029f\na\na\na\na\na\na\na\012\018\002\146\na\na\na\003.\na\na\029b\na\na\029j\029r\na\na\na\na\na\na\na\na\na\na\na\na\na\017\146\na\na\na\na\na\017\150\na\na\na\na\na\na\na\na\na\na\na\005\226\na\029\254\na\na\na\na\na\na\029z\na\na\na\na\na\na\na\na\006\165\na\na\na\na\ne\000\238\ne\ne\ne\ne\001f\ne\001\198\001\206\ne\ne\ne\001\230\ne\001\210\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\001\134\ne\ne\ne\ne\002\030\ne\ne\002^\002b\000\n\ne\nI\ne\ne\ne\002\"\ne\ne\004:\ne\002f\002j\002n\002v\016\"\016.\001\242\ne\ne\002\002\002>\ne\002~\ne\002\146\003>\ne\003^\003.\003v\003\142\000\246\003\154\003\158\ne\ne\ne\ne\ne\ne\ne\ne\ne\004B\ne\ne\ne\ne\ne\014>\014r\003\162\003\166\ne\017\018\014\134\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\005\226\ne\ne\ne\ne\ne\ne\ne\ne\ne\003\170\ne\ne\ne\ne\014\210\003\174\014\214\ne\ne\ne\ne\ne\b\237\b\237\b\237\b\237\b\237\001\018\001\022\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\001b\b\237\b\237\b\237\b\237\b\237\b\237\b\237\001\134\001\138\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\001\130\003\022\b\237\b\237\b\237\b\237\b\237\003\026\b\237\b\237\003\030\b\237\002\146\003\"\003&\003*\003.\005\154\b\237\005\158\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\005\226\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\016\213\000\006\016\213\016\213\016\213\016\213\001f!\158\0036\001\206\016\213\016\213\016\213\003\198\016\213\001\210\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\011\002\001\134\016\213\016\213\016\213\016\213\002\030\016\213\016\213\023\190\023\198\000\n\016\213\"\130\016\213\016\213\016\213\002\"\016\213\016\213\"\146\016\213\023\246\023\254\024\006\024.\016\213\"\166\001\242\016\213\016\213\002\002\002>\016\213\002~\012\018\002\146\003>\016\213\003^\016\213\003v\003\142\000\246\024>\003\158\016\213\016\213\016\213\016\213\016\213\016\213\016\213\"\170\016\213\024N\016\213\016\213\016\213\016\213\016\213\024j\024~\003\162\003\166\"\178\018\170\024\210\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\016\213\"\210\003\170\016\213\016\213\016\213\016\213 \014\003\174 \022\016\213\016\213\016\213\016\213\016\213\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\002z\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\0152\015B\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\015J\005\233\005\233\005\233\005\233\015R\015j\015r\015Z\015z\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\015\130\015\138\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\015\146\015\170\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\015:\015b\015\154\015\162\015\178\005\233\005\233\005\233\005\233\015\186\015\194\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\005\233\015\234\005\233\005\233\005\233\005\233\005\233\005\233\015\210\005\233\005\233\005\233\005\233\005\233\005\233\005\233\015\218\015\226\ne\ne\ne\ne\000\250\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\011\002\ne\ne\ne\029V\029Z\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\012\018\ne\ne\ne\ne\003.\ne\ne\ne\ne\ne\029j\029r\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\005\226\ne\029\254\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\011\026\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i & .\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i 6\016i\016i\016i\016i F N V ^ f\016i\016i\016i\016i\016i\016i\016i\016i\016i n v\016i\016i\016i\016i\016i\016i\016i\016i\016i ~ \134\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i \142 \150 \158 \166 \174\016i\016i\016i\016i \182 \190\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i\016i \206\016i\016i\016i\016i\016i\016i \214\016i\016i\016i\016i\016i\016i\016i \222 \230\b\237\000\238\b\237\b\237\b\237\b\237\001f\b\237\001\198\001\206\b\237\b\237\b\237\001\230\b\237\001\210\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\001\134\b\237\b\237\b\237\b\237\002\030\b\237\b\237\002^\002b\b\237\b\237\b\237\b\237\b\237\b\237\002\"\b\237\b\237\b\237\b\237\002f\002j\002n\002v\b\237\b\237\001\242\b\237\b\237\002\002\002>\b\237\002~\b\237\002\146\003>\b\237\003^\003.\003v\003\142\000\246\003\154\003\158\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\004B\b\237\b\237\b\237\b\237\b\237\014>\014r\003\162\003\166\b\237\b\237\014\134\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\005\226\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\003\170\b\237\b\237\b\237\b\237\014\210\003\174\014\214\b\237\b\237\b\237\b\237\b\237\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\0152\015B\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\015J\005\245\005\245\005\245\005\245\015R\015j\015r\015Z\015z\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\015\130\015\138\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\015\146\015\170\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\015:\015b\015\154\015\162\015\178\005\245\005\245\005\245\005\245\015\186\015\194\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\015\234\005\245\005\245\005\245\005\245\005\245\005\245\015\210\005\245\005\245\005\245\005\245\005\245\005\245\005\245\015\218\015\226\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\000\n\tM\tM\tM\tM\002\158\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\b\237\b\237\b\237\b\237\b\237\b\237\001f\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\001\134\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\029^\001j\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\002\146\b\237\b\237\b\237\003.\b\237\b\237\029b\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\017\146\b\237\b\237\b\237\b\237\b\237\017\150\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\005\226\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\029z\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\na\na\na\na\025v\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\025\158\na\na\na\na\011\002\na\na\na\025\162\025\182\na\na\na\na\na\na\na\nI\na\na\na\na\na\na\na\na\na\na\na\na\na\025\202\na\na\na\na\na\na\na\012\018\na\na\na\na\003.\na\na\na\na\na\na\025\206\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\026\018\na\005\226\na\026\022\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\026*\na\na\na\na\na\000\238\na\na\000\250\na\001f\na\001\198\001\206\na\na\na\001\230\na(.\na\na\na\na\na\na\na\025\158\na\na\na\na\011\002\001\134\na\na\029V\029Z\002\030\na\na\002^\002b\000\n\na\nI\na\na\na\002\"\na\na\004:\na\002f\002j\002n(2\016\"\016.\001\242\na\na\002\002\002>\na\002~\012\018\002\146\003>\na\003^\003.\003v\003\142\000\246\003\154\003\158\029j\029r\na\na\na\na\na\na\na\004B\na\na\na\na\na\014>\014r\003\162\003\166\na\017\018\014\134\na\na\na\na\na\na\na(6\na\na\na\005\226\na\029\254\na\na\na\na\na\na\na\003\170\na\na\na\na\014\210\003\174\014\214\006\165\na\na\na\na\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\014\254\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\002\158\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\tM\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\004*\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\002a\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221#V\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\018\221\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\003.\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\005\226\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\b\237\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e & .\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e 6\016e\016e\016e\016e F N V ^ f\016e\016e\016e\016e\016e\016e\016e\016e\016e n v\016e\016e\016e\016e\016e\016e\016e\016e\016e ~ \134\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e \142 \150 \158 \166 \174\016e\016e\016e\016e \182 \190\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e\016e \206\016e\016e\016e\016e\016e\016e \214\016e\016e\016e\016e\016e\016e\016e \222 \230\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\005n\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\011.\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\016\161\na\na\na\na\000\250\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\025\158\na\na\na\na\011\002\na\na\na\029V\029Z\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\012\018\na\na\na\na\003.\na\na\na\na\na\029j\029r\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\005\226\na\029\254\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\na\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\0152\015B\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\015J\005\225\005\225\005\225\005\225\015R\015j\015r\015Z\015z\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\015\130\015\138\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\015\146\015\170\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\015:\015b\015\154\015\162\015\178\005\225\005\225\005\225\005\225\015\186\015\194\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\005\225\015\234\005\225\005\225\005\225\005\225\005\225\005\225\015\210\005\225\005\225\005\225\005\225\005\225\005\225\005\225\015\218\015\226\ne\ne\ne\ne\025v\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\011\002\ne\ne\ne\025\162\025\182\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\012\018\ne\ne\ne\ne\003.\ne\ne\ne\ne\ne\ne\025\206\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\005\226\ne\026\022\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\ne\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\0152\015B\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\015J\004}\004}\004}\004}\015R\015j\015r\015Z\015z\004}\004}\004}\004}\004}\004}\004}\004}\004}\015\130\015\138\004}\004}\004}\004}\004}\004}\004}\004}\004}\015\146\015\170\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\015:\015b\015\154\015\162\015\178\004}\004}\004}\004}\015\186\015\194\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\004}\001\014\015\234\004}\005f\004}\004}\004}\004}\015\210\004}\004}\004}\004}\004}\004}\004}\015\218\015\226\r\229\n\185\n1\r\229\r\229\n\169)R\024\218#r\r\229\r\229\r\229\017\162\r\229\r\229\r\229\001\014\r\229\r\229(\022\r\229\r\229\nI\r\229\019\014\r\229\024\226&\022\r\229\r\229\r\229\r\229\r\229\r\229\r\229\019\226\018\154\001v\006\210\r\229)F\018\202\n1\r\229\r\229\r\229\003\182\r\229\0176\b\005\r\229\r\229\r\229\r\229\r\229\r\229\r\229\018*\r\229\003>\003\194\r\229\r\229\r\229\003\142\000\246\n1\r\229\b\005\021\022\r\229\r\229\r\229\r\229\r\229\018\170\006\222\017F\r\229\r\229\r\229\t\213)_\r\006\011V\r\229\r\229\018\t\n\185\001\014\r\229\016b\005f\r\229\b\005\r\229\r\229\r\202\r\178\r\229\r\190\r\229\r\206\n1\005-\r\229\r\229\r\229\011\021\r\229\029\014\r\229\b\005\r\229\r\229\r\229)c\r\229\002\006\026F\r\229\r\229\r\229\r\229\0145\011\021\015\254\0145\0145\003}\012:\004\150\011\021\0145\0145\0145\011\021\004^\0145\0145\002\014\0145\0145\n1\0145\0145\021\178\0145\012>\0145\n1\012\138\0145\004\210\0145\0145\0145\0145\0145\n1\018\142'\198\003\146\0145\002\018\n1\001\022\004\214\0145\0145\004\222\0145\005-\005-\0145\0145\0145\0145\0145\0145\0145'\166\0145\003>\t\225\0145\0145\014\230\003\142\000\246\t\002\0145\004j\n5\0145\0145\0145\0145\0145\004\154\004\158\011\026\0145\0145\0145\003}\n\021\n\021\023\226\0145\0145#F\ni\002\130\0145\020\134\ni\0145\t\205\0145\0145\011~\011\138\022\206\018\005\0145\n\021\029R\003n\0145\0145\0145\014\229\0145\021\182\0145\n1\0145\0145\0145\n\021\0145\019\234\004\193\0145\0145\0145\0145\014!\014\229\016B\014!\014!\031Z\n\021$R\014\229\014!\014!\014!\014\229\004\170\004\202\020\158\000q\014!\014!\012.\014!\014!\004\193\014!\005\197\014!\003\150$R\014!\020\166\014!\014!\014!\014!\014!\004\154\020\138\0122\n1\014!\001\166\012N\0142\020\170\014!\014!\014!\014!\025z\b\005\014!\014!\014!\014!\014!\014!\014!\001&\014!\014!\n}\014!\014!\020\182\014!\014!\029\242\014!\b\005)+\014!\014!\014!\014!\014!\005\165\ti\018\245\014!\014!\014!\018\245\n\021\n\021\011&\014!\014!\022\006\n}\005\250\014!\0222\025\130\014!\b\005\014!\014!\018\142\b\181\020\194\n1\014!\n\021\000q\006\"\014!\014!\014!\005\197\014!\027\202\014!\b\005\014!\014!\014!\n\021\014!\rB\025\018\014!\014!\014!\014!\r\225\002\234%\146\r\225\r\225\014*\n\021\012V\r\022\r\225\r\225\r\225\006\141\r\225\r\225\r\225\006\141\r\225\r\225\r\162\r\225\r\225\021\210\r\225\014j\r\225\n1\n\177\r\225\r\225\r\225\r\225\r\225\r\225\r\225\n1\ti\006\133\005\165\r\225\006\170\006\133\016\230\r\225\r\225\r\225\003\182\r\225\005\201\025:\r\225\r\225\r\225\r\225\r\225\r\225\r\225\024\186\r\225\003>\018\194\r\225\r\225\r\225\003\142\000\246\006\197\r\225\006\149\025\022\r\225\r\225\r\225\r\225\r\225\017\194\n1\018\237\r\225\r\225\r\225\018\237\n\021\n\021\028z\r\225\r\225%\150\027Z\018\202\r\225\012\133\012\133\r\225\006\149\r\225\r\225\n1\012Z\r\225\006\141\r\225\n\021\001&\021\194\r\225\r\225\r\225\003\194\r\225\021\182\r\225\006\149\r\225\r\225\r\225\n\021\r\225\bu\006\238\r\225\r\225\r\225\r\225\r}\006\133%\218\r}\r}\021\166\n\021\024\190\005\201\r}\r}\r}\012\178\004^\014\222\014\238\007A\r}\r}\031B\r}\r}\r\246\r}\"\198\r}\025\222\n\177\r}\004\210\r}\r}\r}\r}\r}\016\178\007\002\006\133\017\198\r}\012\133\006\133\016\230\004\214\r}\r}\004\222\r})#\017\174\r}\r}\r}\r}\r}\r}\r}\021j\r}\003>\019B\r}\r}\014\230\003\142\000\246\004\229\r}\006\157\027\214\r}\r}\r}\r}\r}\n1\000\029\n1\r}\r}\r}\bu\n\021\n\021\"\150\r}\r}\b\229 \246\018\202\r}\016]\016]\r}\027r\r}\r}\018\014\"\202\022\206\007A\r}\n\021\019v\021^\r}\r}\r}\003\194\r}\031F\r}\006\157\r}\r}\r}\n\021\r}\000u\001\022\r}\r}\r}\r}\rA\006\133\n1\rA\rA\022\018\n\021\011F\018\202\rA\rA\rA\019\182\rA\rA\rA\017z\rA\rA\030:\rA\rA\022*\rA%\182\rA\n1\003\194\rA\rA\rA\rA\rA\rA\rA\021\222\012\158\007\226\007\021\rA\016]\018\202\003B\rA\rA\rA\003\182\rA\011z\017\174\rA\rA\rA\rA\rA\rA\rA\001v\rA\003>\003\194\rA\rA\rA\003\142\000\246\006*\rA\006\157\b\177\rA\rA\rA\rA\rA\003J\024\194\001\254\rA\rA\rA\000u\001\166\012N\b\221\rA\rA\b\221\b\221\020\030\rA\r\186\0306\rA\028\238\rA\rA\n1\b\173\rA\019\198\rA\ny\020\002\001z\rA\rA\rA\005\218\rA\021\182\rA\006\157\rA\rA\rA\000\n\rA$R\006\030\rA\rA\rA\rA\r\145\007\021\017\138\r\145\r\145\018\202\ny\n1\018\202\r\145\r\145\r\145\020\018\004^\r\145\r\145\tm\r\145\r\145\001&\r\145\r\145\022V\r\145\003\194\r\145\n1\003\194\r\145\004\210\r\145\r\145\r\145\r\145\r\145\007\146\b\221\007^\022b\r\145\001>\018\202\n1\004\214\r\145\r\145\004\222\r\145\007I\016V\r\145\r\145\r\145\r\145\r\145\r\145\r\145$~\r\145\003>\003\194\r\145\r\145\014\230\003\142\000\246'\030\r\145\n\161\030\162\r\145\r\145\r\145\r\145\r\145\004\142\021R\n\145\r\145\r\145\r\145\b\r\001\166\029\n\t\157\r\145\r\145\t\157\t\157\b\r\r\145\020\218\011\146\r\145\n\161\r\145\r\145\011\130\028\190\022\206\tm\r\145\ny(\203\006\226\r\145\r\145\r\145\011\198\r\145\021\182\r\145\030\182\r\145\r\145\r\145\000\n\r\145\n1\030\178\r\145\r\145\r\145\r\145\r=\b9\021\182\r=\r=\000\234\ny\005\222\007I\r=\r=\r=\021v\r=\r=\r=\011\189\r=\r=\001f\r=\r=(>\r=\000\246\r=\n1$R\r=\r=\r=\r=\r=\r=\r=\002\190\t\157\n\145\001>\r=\021\130\021\138\011\026\r=\r=\r=\003\182\r=\028\194\031\154\r=\r=\r=\r=\r=\r=\r=\014\206\r=\003>\002\194\r=\r=\r=\003\142\000\246\011J\r=\n\129\001&\r=\r=\r=\r=\r=\017\246\022\246\003\146\r=\r=\r=\017\226\020\198\002\166\020\210\r=\r=\025*\b9'\230\r=\028\214\014\138\r=\n\129\r=\r=\004z\017\214\r=\011\189\r=\001\158\002\206\007\198\r=\r=\r=%R\r=(F\r=\029F\r=\r=\r=&\230\r=\001v\000\238\r=\r=\r=\r=\001f\001\134\001\198\001\206\002\210\001f&\202\001\230\001\206\001\210\002.\0022\011\185\019\t\021.\014\142\001\238\000a\017\238\017\254\000a\000a\011\162\001\134\019\018\001\146\021F\016\030\002:\002R\002V\002Z\002r\0042\0046\nI\002\146(\183\017\198\002\"\005\018\001\238\004:\005n\004>\015\006\002n\002v\015&\016.\001\242\017\030\011J\002\002\002>\005\026\019\134(\167\002\146\003>\001>\003^\003.\003v\003\142\000\246\003\154\003\158\003\230\001\146\005\"\005&\005*\005.\0052\n1\t\177\004B\nA\0056\005:\001&\011B\014>\014r\003\162\003\166\021\134\017\018\014\134\023>\003\166\001\014\000a\031\018\030B\011\185\016*\tU\n5\007\214\005\226\021J\t\174\n\153\012\233\b}\005B\012\233\012\233\030\026\003\170\001\166\027\198\005F\t2\019\138\003\174\014\214\000\238\005N\t\198\005R\005V\001f\nA\001\198\001\206\"n\n\153\018\142\001\230\ny\001\210\002.\0022\t\153%.\005>\t\153\t\153\000U\0026\026v\000U\000U\000\n\001\134\0232\n1\r\142\011b\002:\002R\002V\002Z\002r\005\006\0046\001v\ny(\142\018\250\002\"#*\018\202\003\190\011r\004>\015\006\002n\002v\005\022\t=\001\242\003R\002\n\002\002\002>\005\026\019\134\012\233\002\146\003>\003\194\003^\003.\003v\003\142\000\246\003\154\003\158\011\026\b}\005\"\005&\005*\005.\0052\018N\018\142\004B\002\166\0056\005:\015\002(~\014>\014r\003\162\003\166\029>\t\153\014\134\001\166\012N(n\000U\020n(f\020\242\rv\020\254\021\014\021*\005\226(^\t\174%2\n1\n\129\005B'B(V(N\003\170\006r\011B\005F\t2\019\138\003\174\014\214\000\238\005N\nv\005R\005V\001f\"R\001\198\001\206\018\182\n1\017\174\001\230\n\129\001\210\002.\0022\012\229\001f\027\218\012\229\012\229\t!\0026(\"\t!\t!%\222\001\134\018\238\006\157\029F'\250\002:\002R\002V\002Z\002r\005\006\0046\001v\006V\012\201\007\021\002\"\012\201\012\201\003\190\019\026\004>\015\006\002n\002v\005\022\011\217\001\242\006\157\019&\002\002\002>\005\026\019\134\001&\002\146\003>\011J\003^\003.\003v\003\142\000\246\003\154\003\158#\146\006\157\005\"\005&\005*\005.\0052\001R\022\210\004B\022\222\0056\005:$\182\001\238\014>\014r\003\162\003\166\001J\012\229\014\134\001f\011\217\007\254\t!$\194\002\166$\206\004n$\218$\234$\250\005\226\t\149(\002\"6\t\149\t\149\005B\024\n\011\217\006\130\003\170'\174\012\201\005F\bf\019\138\003\174\014\214\001\"\005N\000\006\005R\005V\030*\007\021\001f\002\154\0036\001\206\011\217\018\202\019\150\003\198\001f\001\210\004\246#R\006\138\001f\011B(\242\027\242\001\173\011\217\019\170\006e\001\173\011\002\001\134\003\194\007J\029V\029Z\002\030'r'J\023\190\023\198\000\n\001f\023\206\001>\012\245\006\154\002\"\012\245\012\245\023\222\nY\023\246\023\254\024\006\024.\001>\024:\001\242\019\214\t\149\002\002\002>\011J\002~\012\018\002\146\003>\011J\003^\003.\003v\003\142\000\246\024>\003\158\030v\030~\001:$\138\001&$\150\002\166\024F!\"\024N!6\023\230\006e\011J\001&\024j\024~\003\162\003\166\024\166\017\018\024\210\nY\025*\nz)7'f\025.\n1\022\134\022\030\022\154\000\137\005\226\n1\030\142\000\137\000\137\000\137\000\137\000\137\002\166\0292\003\170\000\137\012\245\000\137\007. \014\003\174 \022\028\022\000\137!\166\n1\019\246\000\137\000\137\001&\000\137\000\137\n\178\000\137'6\tJ\000\137\002\166\tR\000\137\000\137\000\137\n~\000\137\019\t\026\186\000\137\000\137\006\190\001\209\000\137\n1\000\137\000\137\000\137\000\137\000\137\000\137\000\137\n\206\001>\000\137\000\137\001&\000\137\000\137\000\137\000\137\0206\000\137\000\137\000\137\000\137\000\137\000\137\000\137\n\238'&\025\194\020Z\002\166\tZ\001\142\000\137'\002\000\137\rV\006\214\020~\021\182\002\166\000\137\000\137\000\137\000\137\000\137\000\137\000\137\tf\020\146\nF\020\162&\226\020\230\020\250\021\n\021\"\000\218\000\006\000\137\028R\026N\025^\001f\002\154\0036\001\206\000\137\000\137\000\137\003\198\tr\001\210\000\137\000\137\000\137\000\137\0282(\242\001\146\002\029\003\254$&$.\002\029\011\002\001\134\005z\014\166\026V\026j\002\030\007\022\tz\023\190\023\198\000\n$6\023\206\007\"\t\158\007\237\002\"&*\007*\023\222\n\150\023\246\023\254\024\006\024.$:\024:\001\242&\014\007\237\002\002\002>\011B\002~\012\018\002\146\003>%\254\003^\003.\003v\003\142\000\246\024>\003\158$B\026~$N%\242%\190\001\246\007\237\024F\021\246\024N\012\241%\210\021\254\012\241\012\241\024j\024~\003\162\003\166\024\166\017\018\024\210%\198%\138\012\130)\023$\246\007\134%v\022\166\007\237%F%j\005\226\022\234\026\134$\134\022\254\007\237\007\237\012\n%:\0292\003\170\007\194%&%\014\000\238 \014\003\174 \022\004\238\001f\023f\001\198\001\206%\006\004\242\007\237\001\230\007\210\001\210\023z\012\193$\230$\214\012\193\012\193$\190\007\238\012!$\"\003z\n5$\202\001\134\007\246\014n$\162\024\014\002\030\024\018\024*\002^\002b\000\n\012\241\nI\b\018\007\245\001^\002\"\024\134\024\178\004:\bB\002f\002j\002n\002v\016\"\016.\001\242\007\245$2\002\002\002>\bN\002~\024\234\002\146\003>\025\n\003^\003.\003v\003\142\000\246\003\154\003\158$\026$\n\0256\025J\004\134\007\245#\234#\222\bz\004B\025j#\210 \194\025\146#\178\014>\014r\003\162\003\166\012\193\017\018\014\134\025\150\014\225\025\170\011\026\025\174\002\222\025\190\007\245#\162$n\025\218\005\226#\138\025\250\b\178\007\245\007\245#N\014\225\014\225$Z\003\170\"j\026\030#2\014\225\014\210\003\174\014\214\014\225\012\030\001f\014J\026:\001\206\007\245\014R\026^\026b#\030\001\210\002.\0022\026r\007Q\011\178\012\"\011\158\006\025\014\146\026\198\006\025\006\025\026\206\001\134\026\242\003\002\027\n\027\"\004\250\002R\002V\004\254\012F\005\006\0046\t\014\t\161\027:\"2\t\161\t\161\027\170\r*\001\n\005\n\012n\012B\001\238\005\022\bi\b-\011R\bi\bi\028\018\005\026\005\030\028\030\002\146\028N\028Z\012r\003.\012z\028\154\012\146\012\182\003\158\028\182\t\182\005\"\005&\005*\005.\0052\029:\t\202!B\018\202\0056\005:\t\226\016V$j\016\018\003\162\003\166\012\189\012\190\029\206\012\189\012\189\029\210\006\025\bi\029\226\029\230\003\194\007Q\014\150\029\246\005\226\030\014\030>\030N\030Z\007Q\005B\rB\030j\003f\003\170\t\161\030\166\005F\030\170\005J\012\194\011\026\030\194\005N\026\230\005R\005V\000\238\bi\031\006\014\225#^\001f\031\"\001\198\001\206\bi\031:\031N\001\230\b-\001\210\031V\031\134\018\214\001\014\031\150\014\225\016\170\006=\012\001\n\174\006=\006=\014\225\001\134\bi\003\138\014\225\031\186\002\030\031\202\031\250\002^\002b\000\n\012\189\nI\031\222\n\186\n\234\002\"\011\026\n\246\004:!z\002f\002j\002n\002v\016\"\016.\001\242!\202\023\142\002\002\002>\"\002\002~\">\002\146\003>\003\214\003^\003.\003v\003\142\000\246\003\154\003\158\"v\"\190\003\226#\250\001Z%^\r\174%\130\007M\004B%\162\029\190\015\198&\"&2\014>\014r\003\162\003\166\029\146\017\018\014\134\029\154\030^\001r\006=&\238'\026'F\rb\011B\023\162\r\130\005\226(\150\r\214\r\234\014\002\001\014\014\022\014\030\005f\014\"\003\170\014N\014V\014z!\242\014\210\003\174\014\214\012\030\001f\n\217\n\217\001\206\n\217\n\217\014\178\014\194\014\242\001\210\002.\0022\024\142\001\182\001\186\012\"\027\018\006\017\0026\016\006\006\017\006\017\005^\001\134\016J\016\138\023\158\017\006\004\250\002R\002V\004\254\012F\005\006\0046\016\158\016\190\016\198\016\210\016\218\016\246\007M\012J\005\174\005\n\012n\012B\001\238\005\022\007M\000\000\rB\000\000\000\000\000\000\005\026\005\030\000\000\002\146\000\000\000\000\012r\003.\012z\n\217\012\146\012\182\003\158\011B\000\000\005\"\005&\005*\005.\0052\n\217\000\000\000\000\000\000\0056\005:\000\000\000\000\000\000\000\000\003\162\003\166\000\000\012\190\n\217\n\217\b\145\b1\006\017\b\145\b\145\000\000\n\217\000\000\000\000\000\000\005\226\000\000\000\000\000\000\000\000\000\000\005B\014\026\000\000\000\000\003\170\000\000\000\000\005F\000\000\005J\012\194\000\000\000\006\005N\027.\005R\005V\001f\002\154\0036\001\206\000\000\000\000\000\000\003\198\000\000\001\210\000\000\000\000\b\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016Y\016Y\011\002\001\134\000\000\012\026\000\000\000\000\002\030\000\000\000\000\023\190\023\198\000\n\007\241\023\206\000\000\000\000\000\000\002\"\000\000\000\000\023\222\b\145\023\246\023\254\024\006\024.\007\241\024:\001\242\b\145\000\000\002\002\002>\b1\002~\012\018\002\146\003>\000\000\003^\003.\003v\003\142\000\246\024>\003\158\000\000\004r\007\241\b\145\001\166\001\170\000\000\024F\000\000\024N\000\000\000\000\000\000\000\000\000\000\024j\024~\003\162\003\166\024\166\017\018\024\210\000\000\017\202\000\000\016Y\007\241\000\000\001\134\000\000\000\000\000\000\000\238\005\226\007\241\007\241\000\000\001f\005r\001\198\001\206\024\242\0292\003\170\001\230\000\000\001\210\000\000 \014\003\174 \022\017\178\001\146\000\000\007\241\n5\000\000\012\129\012\129\011\002\001\134\000\000\000\000\002\146\000\000\002\030\000\000\003.\002^\002b\005n\000\000\011\006\000\000\000\000\000\000\002\"\000\000\000\000\011\"\000\000\002f\002j\002n\002v\000\000\011\250\001\242\000\000\000\000\002\002\002>\000\000\002~\012\018\002\146\003>\000\000\003^\003.\003v\003\142\000\246\003\154\003\158\000\000\005\226\000\000\000\000\000\000\000\000\000\000\024\246\000\000\004B\000\000\000\000\011B\000\000\000\000\014>\014r\003\162\003\166\024\254\025\030\014\134\000\000\000\000\000\000\012\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\226\000\000\b]\b]\000\000\b]\b]\000\000\000\000\025&\003\170\000\000\n5\ra\000\000\014\210\003\174\014\214\000\000\ra\ra\000\000\ra\ra\ra\000\000\ra\ra\000\000\ra\ra\018\202\000\000\000\000\ra\000\000\000\000\000\000\ra\ra\ra\ra\ra\ra\000\000\000\000\000\000\b]\000\000\000\000\003\194\000\000\ra\ra\ra\ra\000\000\000\000\000\000\000\000\000\000\003\254$&$.\ra\ra\000\000\000\000\ra\000\000\000\000\ra\ra\ra\ra\000\000\019N$6\b]\ra\ra\ra\ra\ra\000\000\000\000\b]\ra\ra\ra\b]$:\000\000\000\000\b]\000\000\000\000\000\000\000\000\ra\022\170\000\000\ra\000\000\000\000\ra\b]\000\000\ra\000\000\ra$B\000\000'\154\ra\ra\ra\000\000\ra\000\000\000\000\000\000\ra\ra\ra\000\000\000\000\r]\000\000\ra\ra\ra\ra\r]\r]\000\000\r]\r]\r]\000\000\r]\r]\000\000\r]\r]\000\000\000\000$\134\r]\000\000\000\000\000\000\r]\r]\r]\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r]\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\004^\014\177\014\177\r]\r]\000\000\000\000\r]\000\000\000\000\r]\r]\r]\r]\000\000\000\000\004\210\000\000\r]\r]\r]\r]\r]\000\000\000\000\000\000\r]\r]\r]\000\000\004\214\000\000\000\000\004\222\000\000\000\000\000\000\000\000\r]\022\146\000\000\r]\000\000\000\000\r]\000\000\003>\r]\000\000\r]\014\230\003\142\000\246\r]\r]\r]\000\000\r]\000\000\000\000\000\000\r]\r]\r]\000\000\000\000\rQ\000\000\r]\r]\r]\r]\rQ\rQ\000\000\rQ\rQ\rQ\000\000\rQ\rQ\000\000\rQ\rQ\000\000\000\000\022\206\rQ\000\000\000\000\000\000\rQ\rQ\rQ\rQ\rQ\rQ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rQ\rQ\rQ\rQ\000\000\000\000\000\000\000\000\000\000\003\254$&$.\rQ\rQ\000\000\000\000\rQ\000\000\000\000\rQ\rQ\rQ\rQ\000\000\000\000$6\000\000\rQ\rQ\rQ\rQ\rQ\000\000\000\000\000\000\rQ\rQ\rQ\000\000$:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rQ\022\182\000\000\rQ\000\000\000\000\rQ\000\000\000\000\rQ\000\000\rQ$B\000\000'\186\rQ\rQ\rQ\000\000\rQ\000\000\000\000\000\000\rQ\rQ\rQ\000\000\000\000\rY\000\000\rQ\rQ\rQ\rQ\rY\rY\000\000\rY\rY\rY\000\000\rY\rY\000\000\rY\rY\000\000\000\000$\134\rY\000\000\000\000\000\000\rY\rY\rY\rY\rY\rY\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rY\rY\rY\rY\000\000\000\000\000\000\000\000\000\000\003\254$&$.\rY\rY\000\000\000\000\rY\000\000\000\000\rY\rY\rY\rY\000\000\000\000$6\000\000\rY\rY\rY\rY\rY\000\000\000\000\000\000\rY\rY\rY\000\000$:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rY\022z\000\000\rY\000\000\000\000\rY\000\000\000\000\rY\000\000\rY$B\001v\014\157\rY\rY\rY\000\000\rY\000\000\000\000\000\000\rY\rY\rY\000\000\000\000\003\197\000\000\rY\rY\rY\rY\003\197\003\197\000\000\004^\014\222\014\238\000\000\003\197\003\197\000\000\003\197\003\197\000\000\000\000$\134\003\197\000\000\000\000\000\000\004\210\003\197\003\197\003\197\003\197\003\197\004.\001\238\000\000\000\000\001v\000\000\000\000\000\000\004\214\003\197\003\197\004\222\000\000#\214\000\000#\226\000\000#\238#\254$\014\003\197\003\197\000\000\000\000\003>\000\000\000\000\003\197\014\230\003\142\000\246\000\000\003\254$&$.\003\197\003\197\003\197\003\197\003\197\000\000\000\000\000\000\003\197\003\197\003\197\000\000\000\000$6\000\000\015\002\001\238\000\000\000\000\000\000\003\197\000\000\000\000\003\197\000\000#\194\003\197$:\020n\022\206\020\242\003\197\020\254\021\014\021*\003\197\003\197\003\197\000\000\003\197\000\000\000\000\000\000\003\197\003\197\003\197\000\000$B\004]%\170\003\197\003\197\003\197\003\197\004]\004]\000\000\004^\014\222\014\238\000\000\004]\004]\000\000\004]\004]\000\000\n\177\n\177\004]\n\177\n\177\000\000\004\210\004]\004]\004]\004]\004]\000\000\000\000\000\000\000\000$\134\000\000\000\000\000\000\004\214\004]\004]\004\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004]\004]\000\000\000\000\003>\000\000\000\000\004]\014\230\003\142\000\246\000\000\000\000\000\000\000\000\004]\004]\004]\004]\004]\000\000\000\000\000\000\004]\004]\004]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004]\000\000\000\000\004]\000\000\000\000\004]\n\177\000\000\022\206\000\000\004]\000\000\000\000\000\000\004]\004]\004]\000\000\004]\000\000\n\177\016\230\004]\004]\004]\000\000\000\000\003\205\n\177\004]\004]\004]\004]\003\205\003\205\000\000\004^\014\222\014\238\000\000\003\205\003\205\000\000\003\205\003\205\000\000\000\000\000\000\003\205\000\000\011B\000\000\004\210\003\205\003\205\003\205\003\205\003\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\214\003\205\003\205\004\222\000\000\000\000\000\000\b\153\by\000\000\b\153\b\153\003\205\003\205\000\000\000\000\003>\000\000\000\000\003\205\014\230\003\142\000\246\000\000\000\000\000\000\000\000\003\205\003\205\003\205\003\205\003\205\000\000\000\000\000\000\003\205\003\205\003\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\205\000\000\000\000\003\205\000\000\000\000\003\205\000\000\000\000\022\206\000\000\003\205\000\000\000\000\000\000\003\205\003\205\003\205\000\000\003\205\000\000\000\000\000\000\003\205\003\205\003\205\000\000\000\000\004a\000\000\003\205\003\205\003\205\003\205\004a\004a\b\153\004^\014\222\014\238\000\000\004a\004a\000\000\004a\004a\000\000\000\000\by\004a\000\000\000\000\000\000\004\210\004a\004a\004a\004a\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\214\004a\004a\004\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004a\004a\000\000\000\000\003>\000\000\000\000\004a\014\230\003\142\000\246\000\000\000\000\000\000\000\000\004a\004a\004a\004a\004a\000\000\000\000\000\000\004a\004a\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004a\000\000\000\000\004a\000\000\000\000\004a\000\000\000\000\022\206\000\000\004a\000\000\000\000\000\000\004a\004a\004a\000\000\004a\000\000\000\000\000\000\004a\004a\004a\000\000\000\000\003\209\000\000\004a\004a\004a\004a\003\209\003\209\000\000\004^\014\222\014\238\000\000\003\209\003\209\000\000\003\209\003\209\000\000\000\000\000\000\003\209\000\000\000\000\000\000\004\210\003\209\003\209\003\209\003\209\003\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\214\003\209\003\209\004\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\209\003\209\000\000\000\000\003>\000\000\000\000\003\209\014\230\003\142\000\246\000\000\000\000\000\000\000\000\003\209\003\209\003\209\003\209\003\209\000\000\000\000\000\000\003\209\003\209\003\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\209\000\000\000\000\003\209\000\000\000\000\003\209\000\000\000\000\022\206\000\000\003\209\000\000\000\000\000\000\003\209\003\209\003\209\000\000\003\209\000\000\000\000\000\000\003\209\003\209\003\209\000\000\000\000\003\169\000\000\003\209\003\209\003\209\003\209\003\169\003\169\000\000\004^\014\222\014\238\016\225\003\169\003\169\000\000\003\169\003\169\000\000\000\000\000\000\003\169\000\000\000\000\000\000\004\210\003\169\003\169\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\233\004\214\003\169\003\169\004\222\000\000\000\000\000\233\000\000\000\000\000\233\000\000\000\000\003\169\003\169\000\000\016\225\003>\000\000\011%\003\169\014\246\003\142\000\246\000\000\000\000\000\000\000\000\003\169\003\169\003\169\003\169\003\169\000\000\016\225\000\000\003\169\003\169\003\169\000\000\011%\011%\000\000\011%\011%\000\000\000\000\000\000\003\169\000\000\000\000\003\169\000\000\000\000\003\169\016\225\000\000\022\130\000\000\003\169\000\000\000\000\000\000\003\169\003\169\003\169\000\000\003\169\000\000\016\225\000\000\003\169\003\169\003\169\000\000\000\000\007:\000\000\003\169\003\169\003\169\003\169\000\014\000\018\000\022\000\026\000\030\000\000\000\"\000&\000*\000.\0002\000\000\0006\000:\000>\000\000\000\000\011%\000B\000\000\000\000\000\000\000\000\000\000\t\253\000F\000\000\000\000\000\000\000\000\000\000\011%\011%\000J\011%\000\000\000\000\000\000\000\000\000\000\000N\000R\000V\000Z\000^\000b\011%\000f\000j\r\022\011%\000\000\000\000\000n\011%\000r\011%\000\000\000\000\000\000\011%\004\170\004\202\020\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000v\000\000\000z\000~\000\000\020\166\000\000\000\000\000\000\000\130\000\134\000\138\000\000\000\000\000\000\000\142\000\146\000\150\000\154\020\170\000\158\000\162\000\166\000\000\000\000\000\000\000\000#\190\000\170\000\174\000\178\000\000\000\000\000\000\000\182\000\238\000\186\000\190\000\000\020\182\001f\000\000\001\198\001\206\000\194\000\000\000\198\001\230\000\000\001\210\000\000\000\000\000\202\000\206\000\000\000\210\000\000\t\001\003\186\000\000\t\001\t\001\000\000\001\134\000\000\000\000\000\000\000\000\002\030\nQ\000\000\002^\002b\000\000\000\000\020\194\000\000\000\000\000\000\002\"\000\000\000\000\003\190\000\000\002f\002j\002n\002v\000\000\000\000\001\242\000\000\nQ\002\002\002>\000\000\002~\000\000\002\146\003>\000\000\003^\003.\003v\003\142\000\246\003\154\003\158\000\000\000\000\000\000\012^\000\000\000\000\000\000\nQ\nQ\004B\000\000\000\000\000\000\000\000\000\000\014>\014r\003\162\003\166\nQ\000\000\014\134\000\000\nQ\000\000\t\001\nQ\000\000\000\000\000\000\000\000(\138\n9\005\226\000\000\030*\n9\n9\000\000\n9\n9\000\000\n9\003\170\n9\000\000\n9!\182\014\210\003\174\014\214\000\000\n9\000\000\001\173\n5\000\000\000\000\001\173\011\002\n9\n9\nQ\029V\029Z\n9\000\000\000\000\n9\n9\000\000\000\000\nI\000\000\000\000\000\000\n9\000\000\000\000\n9\000\000\n9\n9\n9\n9\018\"\018\154\n9\000\000\000\000\n9\n9\000\000\n9\012\018\n9\n9\n9\n9\n9\n9\n9\n9\n9\n9\030v\030~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n9\000\000\000\000\000\000\000\000\000\000\n9\n9\n9\n9\000\000\018\170\n9\000\000\000\000\000\000\004\170\004\202\020\158\000\000\000\000\000\000\005\206\nA\n9\000\000\030\142\nA\nA\000\000\nA\nA\020\166\000\000\n9\nA\000\000\nA\000\000\n9\n9\n9\006\169\nA\000\000\000\000\020\170\000\000#\242(B\000\000\nA\000\000\000\000\020\178\000\000\nA\000\000\000\000\nA\nA\000\000\000\000\000\000\000\000\000\000\020\182\nA\000\000\000\000\000\000\000\000\nA\nA\nA\nA\000\000\000\000\nA\000\000\000\000\nA\nA\000\000\nA\000\000\nA\nA\000\000\nA\nA\nA\nA\nA\nA\nA\000\000\000\000\000\000\000\000\000\000\000\000\020\194\000\000\000\000\nA\000\000\000\000\000\000\000\000\000\000\nA\nA\nA\nA\000\000\nA\nA\000\000\000\000\000\000\000\000\000\000\nA\000\000\003R\000\000\nA\nA\nA\nA\nA\000\000\000\000\000\000\nA\000\000\nA\000\000\nA\000\000\006\213\000\000\nA\nA\nA\nA\000\000\n5\n5\000\000\nA\000\000\000\000\006\181\006\181\nA\006\181\006\181\nA\nA\000\000\000\000\000\000\000\000\000\000\000\000\nA\000\000\000\000\000\000\000\000\nA\nA\nA\nA\000\000\000\000\nA\000\000\000\000\nA\nA\025\234\nA\000\000\nA\nA\000\000\nA\nA\nA\nA\nA\nA\nA\000\000\000\000\000\000\006\181\000\000\000\000\006\181\000\000\000\000\nA\000\000\000\000\000\000\000\000\000\000\nA\nA\nA\nA\000\000\nA\nA\000\000\n\193\000\000\000\000\000\000\n\193\n\193\003R\n\193\n\193\006\181\nA\006\181\n\193\000\000\n\193\000\000\000\000\000\000\000\000\006\181\nA\000\000\n5\n\193\000\000\nA\nA\nA\n\193\000\000\005\254\0179\000\000\n\193\0179\0179\n\193\n\193\000\000\006\181\000\000\000\000\000\000\000\000\n\193\000\000\000\000\000\000\000\000\n\193\n\193\n\193\n\193\000\000\000\000\n\193\000\000\000\000\n\193\n\193\000\000\n\193\000\000\n\193\n\193\000\000\n\193\n\193\n\193\n\193\n\193\n\193\n\193\000\000\000\000\000\000\0179\000\000\000\000\000\000\030*\000\000\n\193\000\000\000\000\000\000\000\000\000\000\n\193\n\193\n\193\n\193\000\000\000\000\n\193\n\193\000\000\000\000\000\000\001\173\000\000\000\000\000\000\001\173\011\002&\150\n\193\0179\029V\029Z\n\193\n\193\000\000\000\000\n\193\0179\n\193\0179\000\000\000\000\n9\n\193\n\193\n\193\n9\n9\000\000\n9\n9\000\000\n9\030r\n9\000\000\n9\0179\000\000\000\000\000\000\012\018\000\000\000\000\000\000\n1\000\000\000\000\n1\000\000\n9\000\000\030v\030~\000\000\n9\000\000\000\000\n9\n9\000\000\000\000\000\000\000\000\000\000\000\000\n9\000\000\000\000\003\190\000\000\n9\n9\n9\n9\000\000\000\000\n9\000\000\000\000\n9\n9\000\000\n9\000\000\n9\n9\030\142\n9\n9\n9\n9\n9\n9\n9\000\000\000\000\000\000\000\000\014:\000\000\000\000\000\000\006\169\n9\000\000\000\000\000\000\000\000\000\000\n9\n9\n9\n9\000\000\000\000\n9\000\000\000\000\000\000\001\201\011\t\000\000\011E\001\201\000\000\004\226\000\000\n9\000\000\000\000\000\000\003V\000\000\000\238\000\000\000\000\000\000\n9\001f\000\000\001\198\001\206\n9\n9\n9\001\230\000\000\001\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\t\t\217\000\000\t\t\t\t\000\000\001\134\000\000\000\000\000\000\000\000\002\030\001\158\000\000\002^\002b\000\000\000\000\000\000\000\000\000\000\000\000\002\"\014\130\000\000\000\000\000\000\002f\002j\002n\002v\000\000\000\000\001\242\000\000\001\134\002\002\002>\011\t\002~(\231\002\146\003>\000\000\003^\003.\003v\003\142\000\246\003\154\003\158\000\000\011\t\000\000\000\000\000\000\r:\000\000\001\162\001\146\004B\000\000\rB\000\000\000\000\000\000\014>\014r\003\162\003\166\002\146\000\000\014\134\000\000\003.\000\000\t\t\005n\000\000\000\000\000\000\000\238\000\000\000\000\005\226\000\000\001f\000\000\001\198\001\206\000\000\000\000\000\000\001\230\003\170\001\210\000\000\000\000!\182\014\210\003\174\014\214\000\000\t\005\t\205\000\000\t\005\t\005\000\000\001\134\000\000\000\000\000\000\005\226\002\030\000\000\000\000\002^\002b\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000\000\000\000\000\000\000\000\002f\002j\002n\002v\000\000\000\000\001\242\000\000\000\000\002\002\002>\000\000\002~\000\000\002\146\003>\000\000\003^\003.\003v\003\142\000\246\003\154\003\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004B\000\000\000\000\000\000\000\000\000\000\014>\014r\003\162\003\166\000\000\000\000\014\134\000\000\000\000\000\000\t\005\000\000\000\000\000\000\000\000\000\238\000\000\000\000\005\226\000\000\001f\000\000\001\198\001\206\000\000\000\000\000\000\001\230\003\170\001\210\000\000\000\000!\182\014\210\003\174\014\214\000\000\b\253\t\173\000\000\b\253\b\253\000\000\001\134\000\000\000\000\000\000\000\000\002\030\000\000\000\000\002^\002b\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000\000\000\000\000\000\000\000\002f\002j\002n\002v\000\000\000\000\001\242\000\000\000\000\002\002\002>\000\000\002~\000\000\002\146\003>\000\000\003^\003.\003v\003\142\000\246\003\154\003\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004B\000\000\000\000\000\000\000\000\000\000\014>\014r\003\162\003\166\000\000\000\000\014\134\000\000\000\000\000\000\b\253\000\000\000\000\000\000\000\000\000\238\000\000\000\000\005\226\000\000\001f\000\000\001\198\001\206\000\000\000\000\000\000\001\230\003\170\001\210\000\000\000\000!\182\014\210\003\174\014\214\000\000\0065\t\209\000\000\0065\0065\000\000\001\134\000\000\000\000\000\000\000\000\002\030\000\000\000\000\002^\002b\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000\000\000\000\000\000\000\000\002f\002j\002n\002v\000\000\000\000\001\242\000\000\000\000\002\002\002>\000\000\002~\000\000\002\146\003>\000\000\003^\003.\003v\003\142\000\246\003\154\003\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004B\000\000\000\000\000\000\000\000\000\000\014>\014r\003\162\003\166\000\000\000\000\014\134\000\000\000\000\000\000\0065\005\146\000\000\000\000\b6\000\000\000\000\000\238\005\226\000\000\021\134\000\000\001f\000\000\001\198\001\206\000\000\000\000\003\170\001\230\000\000\001\210\n5\014\210\003\174\014\214\000\000\000\000\027\154\006Q\t\213\000\000\006Q\006Q\000\000\001\134\000\000\000\000\000\000\000\000\002\030\000\000\001\002\002^\002b\000\000\000\000\b>\b\173\000\000\000\000\002\"\000\000\000\000\000\000\000\000\002f\002j\002n\002v\000\000\000\000\001\242\003.\bJ\002\002\002>\000\000\002~\000\000\002\146\003>\000\000\003^\003.\003v\003\142\000\246\003\154\003\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bV\000\000\004B\000\000\000\000\000\000\000\000\000\000\014>\014r\003\162\003\166\000\000\000\000\014\134\005\226\000\000\000\000\006Q\000\000\nA\000\000\b^\000\000\012\162\nA\005\226\nA\nA\bf\000\000\000\000\nA\000\000\nA\000\000\003\170\000\000\000\000\000\000\b\162\014\210\003\174\014\214\000\000%\154\000!\000\000\nA\000\000\000\000\000\000\000\000\nA\000\000\000\000\nA\nA\000\000\000\000\000\000\000\000\000\000\000\000\nA\000\000\000\000\000\000\000\000\nA\nA\nA\nA\000\000\000\000\nA\000\000\000\000\nA\nA\000\000\nA\000\000\nA\nA\000\000\nA\nA\nA\nA\nA\nA\nA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nA\000\000\000\000\000\000\000\000\000\000\nA\nA\nA\nA\000\000\000\000\nA\000\000\000\000\000\000\000\000\000\000\nA\000\000\003R\000\000\nA\nA\nA\nA\nA\000\000\003V\000\000\nA\000\000\nA\000\000\nA\000\000\n1\000\000\nA\nA\nA\nA\000\000\003z\000\000\000\000\nA\000\000\000\000\000\000\000\000\nA\000\000\000\000\nA\nA\000\000\000\000\000\000\000\000\000\000\000\000\nA\000\000\000\000\000\000\000\000\nA\nA\nA\nA\000\000\000\000\nA\000\000\000\000\nA\nA\000\000\nA\000\000\nA\nA\000\000\nA\nA\nA\nA\nA\nA\nA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nA\000\000\000\000\000\000\000\000\000\000\nA\nA\nA\nA\000\000\nA\nA\000\000\000\000\000\000\003\185\000\000\000\000\000\000\003R\000\000\003\185\003\185\nA\000\000\000\000\000\000\000\000\003\185\003\185\000\000\003\185\003\185\nA\000\000\000\000\003\185\000\000\nA\nA\nA\003\185\003\185\003\185\003\185\003\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\185\003\185\014F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\185\003\185\000\000\000\000\005\001\000\000\000\000\003\185\000\000\000\000\017\185\000\000\000\000\017\185\017\185\003\185\003\185\003\185\003\185\003\185\000\000\000\000\000\000\003\185\003\185\003\185\000\000\005\001\005\001\000\000\005\001\005\001\000\000\000\000\000\000\003\185\000\000\000\000\003\185\000\000\000\000\003\185\000\000\000\000\000\000\000\000\003\185\000\000\000\000\000\000\003\185\003\185\003\185\000\000\003\185\017\185\001*\000\000\003\185\003\185\023\134\000\000\000\000\000\000\000\000\003\185\003\185\003\185\003\185\n=\000\000\000\000\005\001\n=\n=\005\001\n=\n=\000\000\n=\000\000\n=\000\000\n=\n>\000\000\017\185\000\000\000\000\000\000\005\001\000\000\004\230\000\000\017\185\000\000\017\185\n=\000\000\000\000\005\001\005\001\n=\005\001\000\000\n=\n=\000\000\000\000\007\253\000\000\005\001\000\000\n=\017\185\005\001\005\001\005\001\n=\n=\n=\n=\000\000\005\001\n=\000\000\000\000\n=\n=\016\229\n=\005\001\n=\n=\000\000\n=\n=\n=\n=\n=\n=\n=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n=\000\000\000\000\000\000\000\233\000\000\n=\n=\n=\n=\000\000\000\233\n=\000\000\000\233\000\000\003\233\000\000\000\000\000\000\016\229\000\000\003\233\003\233\n=\000\000\000\000\000\000\000\000\003\233\003\233\000\000\003\233\003\233\n=\000\000\000\000\003\233\016\229\n=\n=\n=\003\233\003\233\003\233\003\233\003\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\233\003\233\000\000\016\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\233\003\233\000\000\000\000\000\000\000\000\016\229\003\233\000\000\000\000\000\000\000\000\000\000\007:\000\000\015:\003\233\003\233\003\233\003\233\000\000\000\000\000\000\003\233\003\233\003\233\000\000\000\193\000\000\000\000\000\193\000\193\000\000\000\000\005\186\003\233\000\000\000\000\003\233\000\000\000\000\003\233\000\000\000\000\000\000\000\000\003\233\000\000\000\000\000\000\003\233\003\233\003\233\000\000\003\233\000\000\003\241\000\000\003\233\003\233\003\233\000\000\003\241\003\241\000\000\003\233\003\233\003\233\003\233\003\241\003\241\000\000\003\241\003\241\000\000\000\193\000\000\003\241\000\000\000\000\000\000\000\000\003\241\003\241\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\241\003\241\000\000\000\000\000\193\000\193\000\000\000\193\000\000\000\000\000\000\003\241\003\241\b\245\000\000\000\000\000\000\000\000\003\241\000\193\000\193\000\000\000\000\000\000\000\000\000\000\015:\003\241\003\241\003\241\003\241\000\000\000\000\000\193\003\241\003\241\003\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\241\000\000\000\000\003\241\000\000\000\000\003\241\000\000\000\000\000\000\nq\003\241\000\000\nq\nq\003\241\003\241\003\241\000\000\003\241\000\000\004e\000\000\003\241\003\241\003\241\000\000\0152\015B\000\000\003\241\003\241\003\241\003\241\004e\004e\000\000\004e\004e\005\150\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\nq\000\000\000\000\007\178\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\000\000\004e\000\000\000\000\000\000\000\000\017\026\000\000\nq\015:\015b\015\154\015\162\015\178\000\000\000\000\nq\004e\015\186\015\194\000\000\000\000\000\000\000\000\nq\000\000\000\000\000\000\000\000\004e\nq\000\000\004e\000\000\000\000\004e\000\000\000\000\000\000\nq\004e\000\000\nq\nq\004e\004e\015\234\000\000\004e\000\000\004\t\000\000\004e\015\210\004e\000\000\0152\015B\000\000\004e\004e\015\218\015\226\004\t\004\t\000\000\004\t\004\t\005\150\000\000\000\000\004\t\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\004\t\000\000\000\000\000\000\nq\000\000\000\000\007\178\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\004\t\000\000\000\000\000\000\000\000\000\000\004\t\000\000\000\000\000\000\000\000\017*\000\000\nq\015:\015b\015\154\015\162\004\t\000\000\000\000\nq\004\t\004\t\004\t\000\000\000\000\000\000\000\000\nq\000\000\000\000\000\000\000\000\004\t\nq\000\000\004\t\000\000\000\000\004\t\000\000\000\000\000\000\000\000\004\t\000\000\000\000\000\000\004\t\004\t\004\t\000\000\004\t\000\000\003\253\000\000\004\t\004\t\004\t\000\000\0152\015B\000\000\004\t\004\t\004\t\004\t\003\253\003\253\000\000\003\253\003\253\000\000\000\000\000\000\003\253\000\000\000\000\000\000\000\000\003\253\003\253\003\253\015Z\003\253\000\000\002\174\001\022\000\000\000\000\000\000\000\000\000\000\000\000\003\253\003\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\253\003\253\000\000\000\000\000\000\001\134\002\178\003\253\000\000\000\000\000\000\000\000\000\000\000\000\002\186\015:\015b\003\253\003\253\003\253\000\000\000\000\000\000\003\253\003\253\003\253\000\000\002\202\005\202\025\210\000\000\000\000\000\000\000\000\000\000\003\253\000\000\000\000\003\253\000\000\002\146\003\253\000\000\000\000\003.\000\000\003\253\025r\000\000\000\000\003\253\003\253\003\253\000\000\003\253\000\000\000\000\000\000\003\253\003\253\003\253\000\000\000\000\000\000\nA\003\253\003\253\003\253\003\253\nA\000\000\nA\nA\026\210\000\000\000\000\nA\000\000\nA\000\000\000\000\000\000\000\000\005\226\000\000\000\000\000\000\000\000\000\000$\222\000\000\000\000\nA\000\000\000\000\000\000\000\000\nA\000\000\000\000\nA\nA\000\000\000\000\000\000\000\000\000\000\000\000\nA\000\000\000\000\000\000\000\000\nA\nA\nA\nA\000\000\000\000\nA\000\000\000\000\nA\nA\000\000\nA\000\000\nA\nA\000\000\nA\nA\nA\nA\nA\nA\nA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nA\000\000\000\000\000\000\000\000\000\000\nA\nA\nA\nA\000\000\000\000\nA\000\000\000\000\000\000\004Q\000\000\000\000\000\000\003R\000\000\0152\015B\nA\000\000\000\000\000\000\000\000\004Q\004Q\000\000\004Q\004Q\nA\000\000\000\000\015J\000\000\nA\nA\nA\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\000\000\004Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\004Q\015\186\015\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004Q\000\000\000\000\004Q\000\000\000\000\004Q\000\000\000\000\000\000\nq\004Q\000\000\nq\nq\004Q\004Q\015\234\000\000\004Q\000\000\004)\000\000\004Q\015\210\004Q\000\000\0152\015B\000\000\004Q\004Q\015\218\015\226\004)\004)\000\000\004)\004)\005\150\000\000\000\000\004)\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\004)\000\000\000\000\000\000\nq\000\000\000\000\007\178\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\004)\000\000\000\000\000\000\000\000\000\000\004)\000\000\000\000\000\000\000\000\017b\000\000\nq\015:\015b\015\154\015\162\004)\000\000\000\000\nq\004)\004)\004)\000\000\000\000\000\000\000\000\nq\000\000\000\000\000\000\000\000\004)\nq\000\000\004)\000\000\000\000\004)\000\000\000\000\000\000\nq\004)\000\000\nq\nq\004)\004)\004)\000\000\004)\000\000\004-\000\000\004)\004)\004)\000\000\0152\015B\000\000\004)\004)\004)\004)\004-\004-\000\000\004-\004-\005\150\000\000\000\000\004-\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\004-\000\000\000\000\000\000\nq\000\000\000\000\007\178\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004-\004-\000\000\000\000\000\000\000\000\000\000\004-\000\000\000\000\000\000\000\000\017J\000\000\nq\015:\015b\015\154\015\162\004-\000\000\000\000\nq\004-\004-\004-\000\000\000\000\000\000\0175\nq\000\000\0175\0175\000\000\004-\nq\000\000\004-\000\000\000\000\004-\027\250\000\000\000\000\000\000\004-\000\000\000\000\000\000\004-\004-\004-\000\000\004-\000\000\004I\000\000\004-\004-\004-\000\000\0152\015B\000\000\004-\004-\004-\004-\004I\004I\000\000\004I\004I\0175\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\003\n\000\000\0175\000\000\015\146\015\170\000\000\000\000\000\000\000\000\0175\004I\0175\000\000\000\000\000\000\b\222\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\004I\015\186\015\194\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004I\000\000\000\000\004I\000\000\000\000\004I\000\000\000\000\000\000\nq\004I\000\000\nq\nq\004I\004I\015\234\000\000\004I\000\000\007\177\000\000\004I\015\210\004I\000\000\0152\015B\000\000\004I\004I\015\218\015\226\007\177\007\177\000\000\007\177\007\177\005\150\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\nq\000\000\000\000\007\178\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\000\000\007\177\000\000\000\000\000\000\000\000\017V\000\000\nq\015:\015b\015\154\015\162\015\178\000\000\000\000\nq\007\177\015\186\015\194\000\000\000\000\000\000\0175\nq\000\000\0175\0175\000\000\007\177\nq\000\000\007\177\000\000\000\000\007\177\005\134\000\000\000\000\000\000\007\177\000\000\000\000\000\000\007\177\007\177\015\234\000\000\007\177\000\000\003-\000\000\007\177\015\210\007\177\000\000\0152\015B\000\000\007\177\007\177\015\218\015\226\003-\003-\000\000\003-\003-\0175\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\003\n\000\000\0175\000\000\015\146\015\170\000\000\000\000\000\000\000\000\0175\003-\0175\000\000\000\000\000\000\b\222\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\003-\015\186\015\194\0175\000\000\000\000\0175\000\000\000\000\0175\0175\000\000\003-\000\000\000\000\003-\000\000\000\000\003-&\210\000\000\000\000\000\000\003-\000\000\000\000\000\000\003-\003-\015\234\000\000\003-\000\000\004Y\000\000\003-\015\210\003-\000\000\0152\015B\000\000\003-\003-\015\218\015\226\004Y\004Y\000\000\004Y\004Y\0175\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\003\n\000\000\0175\000\000\015\146\015\170\000\000\000\000\000\000\000\000\0175\004Y\0175\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\004Y\015\186\015\194\0175\000\000\000\000\0175\000\000\000\000\0175\0175\000\000\004Y\000\000\000\000\004Y\000\000\000\000\004Y'\n\000\000\000\000\000\000\004Y\000\000\000\000\000\000\004Y\004Y\015\234\000\000\004Y\000\000\003\249\000\000\004Y\015\210\004Y\000\000\0152\015B\000\000\004Y\004Y\015\218\015\226\003\249\003\249\000\000\003\249\003\249\0175\000\000\000\000\003\249\000\000\000\000\000\000\000\000\003\249\003\249\003\249\015Z\003\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\249\003\249\000\000\000\000\000\000\000\000\000\000\003\n\000\000\0175\000\000\003\249\003\249\000\000\000\000\000\000\000\000\0175\003\249\0175\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\003\249\003\249\003\249\000\000\000\000\000\000\003\249\003\249\003\249\0175\000\000\000\000\0175\000\000\000\000\0175\0175\000\000\003\249\000\000\000\000\003\249\000\000\000\000\003\249\n\214\000\000\000\000\000\000\003\249\000\000\000\000\000\000\003\249\003\249\003\249\000\000\003\249\000\000\004\029\000\000\003\249\003\249\003\249\000\000\0152\015B\000\000\003\249\003\249\003\249\003\249\004\029\004\029\000\000\004\029\004\029\0175\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\003\n\000\000\0175\000\000\015\146\015\170\000\000\000\000\000\000\000\000\0175\004\029\0175\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\004\029\015\186\015\194\0175\000\000\000\000\0175\000\000\000\000\0175\0175\000\000\004\029\000\000\000\000\004\029\000\000\000\000\004\029\028:\000\000\000\000\000\000\004\029\000\000\000\000\000\000\004\029\004\029\015\234\000\000\004\029\000\000\004\001\000\000\004\029\015\210\004\029\000\000\0152\015B\000\000\004\029\004\029\015\218\015\226\004\001\004\001\000\000\004\001\004\001\0175\000\000\000\000\004\001\000\000\000\000\000\000\000\000\004\001\004\001\004\001\015Z\004\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\001\004\001\000\000\000\000\000\000\000\000\000\000\003\n\000\000\0175\000\000\004\001\004\001\000\000\000\000\000\000\000\000\0175\004\001\0175\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\004\001\004\001\004\001\000\000\000\000\000\000\004\001\004\001\004\001\0175\000\000\000\000\0175\000\000\000\000\0175\0175\000\000\004\001\000\000\000\000\004\001\000\000\000\000\004\001!\174\000\000\000\000\000\000\004\001\000\000\000\000\000\000\004\001\004\001\004\001\000\000\004\001\000\000\007\173\000\000\004\001\004\001\004\001\000\000\0152\015B\000\000\004\001\004\001\004\001\004\001\007\173\007\173\000\000\007\173\007\173\0175\000\000\0175\015J\000\000\0175\0175\000\000\015R\015j\015r\015Z\015z\000\000\000\000\"Z\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\003\n\000\000\0175\000\000\015\146\015\170\000\000\000\000\000\000\000\000\0175\007\173\0175\000\000\000\000\000\000\000\000\000\000\0175\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\007\173\015\186\015\194\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\173\000\000\000\000\007\173\000\000\000\000\007\173\000\000\003\n\000\000\0175\007\173\000\000\000\000\000\000\007\173\007\173\015\234\0175\007\173\0175\000\000\000\000\007\173\015\210\007\173\000\000\000\000\000\000\nA\007\173\007\173\015\218\015\226\nA\000\000\nA\nA\0175\000\000\000\000\nA\000\000\nA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\002\000\000\000\000\nA\000\000\000\000\000\000\000\000\nA\000\000\000\000\nA\nA\000\000\000\000\000\000\000\000\000\000\000\000\nA\000\000\000\000\000\000\000\000\nA\nA\nA\nA\000\000\000\000\nA\000\000\000\000\nA\nA\000\000\nA\000\000\nA\nA\000\000\nA\nA\nA\nA\nA\nA\nA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nA\000\000\000\000\000\000\000\000\000\000\nA\nA\nA\nA\000\000\000\000\nA\000\000\000\000\000\000\003\237\000\000\000\000\000\000\003R\000\000\003\237\003\237\nA\000\000\000\000\000\000\000\000\003\237\003\237\000\000\003\237\003\237\nA\000\000\000\000\003\237\000\000\nA\nA\nA\003\237\003\237\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\237\003\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\237\003\237\000\000\000\000\000\000\000\000\000\000\003\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\003\237\003\237\003\237\003\237\000\000\000\000\000\000\003\237\003\237\003\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\237\000\000\000\000\003\237\000\000\000\000\003\237\000\000\000\000\000\000\000\000\003\237\000\000\000\000\000\000\003\237\003\237\003\237\000\000\003\237\000\000\003\229\000\000\003\237\003\237\003\237\000\000\0152\015B\000\000\003\237\003\237\003\237\003\237\003\229\003\229\000\000\003\229\003\229\000\000\000\000\000\000\003\229\000\000\000\000\000\000\000\000\003\229\003\229\003\229\015Z\003\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\229\003\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\229\003\229\000\000\000\000\000\000\000\000\000\000\003\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\003\229\003\229\003\229\000\000\000\000\000\000\003\229\003\229\003\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\229\000\000\000\000\003\229\000\000\000\000\003\229\000\000\000\000\000\000\000\000\003\229\000\000\000\000\000\000\003\229\003\229\003\229\000\000\003\229\000\000\003\181\000\000\003\229\003\229\003\229\000\000\0152\015B\000\000\003\229\003\229\003\229\003\229\003\181\003\181\000\000\003\181\003\181\000\000\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\000\000\003\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\003\181\015\186\015\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\181\000\000\000\000\003\181\000\000\000\000\003\181\000\000\000\000\000\000\000\000\003\181\000\000\000\000\000\000\003\181\003\181\015\234\000\000\003\181\000\000\004\r\000\000\003\181\015\210\003\181\000\000\0152\015B\000\000\003\181\003\181\015\218\015\226\004\r\004\r\000\000\004\r\004\r\000\000\000\000\000\000\004\r\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\000\000\004\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\004\r\015\186\015\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\r\000\000\000\000\004\r\000\000\000\000\004\r\000\000\000\000\000\000\000\000\004\r\000\000\000\000\000\000\004\r\004\r\004\r\000\000\004\r\000\000\003\177\000\000\004\r\015\210\004\r\000\000\0152\015B\000\000\004\r\004\r\015\218\015\226\003\177\003\177\000\000\003\177\003\177\000\000\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\000\000\003\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\003\177\015\186\015\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\177\000\000\000\000\003\177\000\000\000\000\003\177\000\000\000\000\000\000\000\000\003\177\000\000\000\000\000\000\003\177\003\177\015\234\000\000\003\177\000\000\004\021\000\000\003\177\015\210\003\177\000\000\0152\015B\000\000\003\177\003\177\015\218\015\226\004\021\004\021\000\000\004\021\004\021\000\000\000\000\000\000\004\021\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\004\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\000\000\004\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\004\021\015\186\015\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\000\000\004\021\000\000\000\000\000\000\000\000\004\021\000\000\000\000\000\000\004\021\004\021\004\021\000\000\004\021\000\000\003\245\000\000\004\021\004\021\004\021\000\000\0152\015B\000\000\004\021\004\021\015\218\015\226\003\245\003\245\000\000\003\245\003\245\000\000\000\000\000\000\003\245\000\000\000\000\000\000\000\000\003\245\003\245\003\245\015Z\003\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\245\003\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\245\003\245\000\000\000\000\000\000\000\000\000\000\003\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\003\245\003\245\003\245\000\000\000\000\000\000\003\245\003\245\003\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\245\000\000\000\000\003\245\000\000\000\000\003\245\000\000\000\000\000\000\000\000\003\245\000\000\000\000\000\000\003\245\003\245\003\245\000\000\003\245\000\000\004\017\000\000\003\245\003\245\003\245\000\000\0152\015B\000\000\003\245\003\245\003\245\003\245\004\017\004\017\000\000\004\017\004\017\000\000\000\000\000\000\004\017\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\000\000\004\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\004\017\015\186\015\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\000\000\004\017\000\000\000\000\000\000\000\000\004\017\000\000\000\000\000\000\004\017\004\017\004\017\000\000\004\017\000\000\004!\000\000\004\017\015\210\004\017\000\000\0152\015B\000\000\004\017\004\017\015\218\015\226\004!\004!\000\000\004!\004!\000\000\000\000\000\000\004!\000\000\000\000\000\000\000\000\004!\004!\004!\015Z\004!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!\004!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!\004!\000\000\000\000\000\000\000\000\000\000\004!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\004!\004!\004!\000\000\000\000\000\000\004!\004!\004!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004!\000\000\000\000\004!\000\000\000\000\004!\000\000\000\000\000\000\000\000\004!\000\000\000\000\000\000\004!\004!\004!\000\000\004!\000\000\004\025\000\000\004!\004!\004!\000\000\0152\015B\000\000\004!\004!\004!\004!\004\025\004\025\000\000\004\025\004\025\000\000\000\000\000\000\004\025\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\004\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\000\000\004\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\004\025\015\186\015\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\025\000\000\000\000\004\025\000\000\000\000\004\025\000\000\000\000\000\000\000\000\004\025\000\000\000\000\000\000\004\025\004\025\004\025\000\000\004\025\000\000\003\201\000\000\004\025\004\025\004\025\000\000\0152\015B\000\000\004\025\004\025\015\218\015\226\003\201\003\201\000\000\003\201\003\201\000\000\000\000\000\000\003\201\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\000\000\003\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\003\201\015\186\015\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\201\000\000\000\000\003\201\000\000\000\000\003\201\000\000\000\000\000\000\000\000\003\201\000\000\000\000\000\000\003\201\003\201\003\201\000\000\003\201\000\000\004\005\000\000\003\201\015\210\003\201\000\000\004\005\004\005\000\000\003\201\003\201\015\218\015\226\004\005\004\005\000\000\004\005\004\005\000\000\000\000\000\000\004\005\000\000\000\000\000\000\000\000\004\005\004\005\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\005\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\005\004\005\000\000\000\000\000\000\000\000\000\000\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\004\005\004\005\004\005\004\005\000\000\000\000\000\000\004\005\004\005\004\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\005\000\000\000\000\004\005\000\000\000\000\004\005\000\000\000\000\000\000\000\000\004\005\000\000\000\000\000\000\004\005\004\005\004\005\000\000\004\005\000\000\004M\000\000\004\005\004\005\004\005\000\000\0152\015B\000\000\004\005\004\005\004\005\004\005\004M\004M\000\000\004M\004M\000\000\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\000\000\004M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\004M\015\186\015\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004M\000\000\000\000\004M\000\000\000\000\004M\000\000\000\000\000\000\000\000\004M\000\000\000\000\000\000\004M\004M\015\234\000\000\004M\000\000\003\221\000\000\004M\015\210\004M\000\000\0152\015B\000\000\004M\004M\015\218\015\226\003\221\003\221\000\000\003\221\003\221\000\000\000\000\000\000\003\221\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\003\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\003\221\000\000\000\000\000\000\000\000\000\000\003\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\003\221\000\000\000\000\000\000\003\221\003\221\003\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\221\000\000\000\000\003\221\000\000\000\000\003\221\000\000\000\000\000\000\000\000\003\221\000\000\000\000\000\000\003\221\003\221\003\221\000\000\003\221\000\000\004U\000\000\003\221\003\221\003\221\000\000\0152\015B\000\000\003\221\003\221\003\221\003\221\004U\004U\000\000\004U\004U\000\000\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\000\000\004U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\004U\015\186\015\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004U\000\000\000\000\004U\000\000\000\000\004U\000\000\000\000\000\000\000\000\004U\000\000\000\000\000\000\004U\004U\015\234\000\000\004U\000\000\0041\000\000\004U\015\210\004U\000\000\0152\015B\000\000\004U\004U\015\218\015\226\0041\0041\000\000\0041\0041\000\000\000\000\000\000\0041\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\0041\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\146\0041\000\000\000\000\000\000\000\000\000\000\0041\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\0041\000\000\000\000\000\000\0041\0041\0041\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0041\000\000\000\000\0041\000\000\000\000\0041\000\000\000\000\000\000\000\000\0041\000\000\000\000\000\000\0041\0041\0041\000\000\0041\000\000\004%\000\000\0041\0041\0041\000\000\004%\004%\000\000\0041\0041\0041\0041\004%\004%\000\000\004%\004%\000\000\000\000\000\000\004%\000\000\000\000\000\000\000\000\004%\004%\004%\004%\004%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004%\004%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004%\004%\000\000\000\000\000\000\000\000\000\000\004%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\004%\004%\004%\004%\000\000\000\000\000\000\004%\004%\004%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004%\000\000\000\000\004%\000\000\000\000\004%\000\000\000\000\000\000\000\000\004%\000\000\000\000\000\000\004%\004%\004%\000\000\004%\000\000\003\225\000\000\004%\004%\004%\000\000\0152\015B\000\000\004%\004%\004%\004%\003\225\003\225\000\000\003\225\003\225\000\000\000\000\000\000\003\225\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\003\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\225\003\225\000\000\000\000\000\000\000\000\000\000\003\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\003\225\000\000\000\000\000\000\003\225\003\225\003\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\225\000\000\000\000\003\225\000\000\000\000\003\225\000\000\000\000\000\000\000\000\003\225\000\000\000\000\000\000\003\225\003\225\003\225\000\000\003\225\000\000\003\217\000\000\003\225\003\225\003\225\000\000\0152\015B\000\000\003\225\003\225\003\225\003\225\003\217\003\217\000\000\003\217\003\217\000\000\000\000\000\000\003\217\000\000\001\194\000\000\001f\015R\015j\015r\015Z\003\217\000\000\000\000\000\000\021.\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000'\242\000\000\000\000$\254\000\000\001\134\000\000\000\000\015\146\003\217\000\000\000\000\000\000\000\000\000\000\003\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\003\217\001\190\011J\000\000\003\217\003\217\003\217\000\000\000\000\000\000\000\000\000\000\000\000\002\146\000\000\000\000\003\217\003.\000\000\003\217\003\194\000\000\003\217\000\000\000\000\000\000\000\000\003\217\000\000\000\000\000\000\003\217\003\217\003\217\000\000\003\217\000\000\000\000\017\146\003\217\003\217\003\217\000\000\000\000\017\150\000\000\003\217\003\217\003\217\003\217\0181\0181\021J\004^\014\222\014\238\005\226\0181\000\000\000\000\0181\0181\000\000\000\000\000\000\0181\000\000\000\000\000\000\004\210\0181\0181\0181\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\214\0181\0181\004\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0181\0181\000\000\000\000\003>\000\000\000\000\000\000\014\230\003\142\000\246\000\000\000\000\000\000\000\000\0181\0181\0181\0181\0181\000\000\000\000\000\000\000\000\0181\0181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bI\bI\000\000\bI\bI\0181\000\000\024^\000\000\000\000\000\000\022\206\000\000\000\000\000\000\000\000\000\000\ra\ra\0181\ra\ra\ra\000\000\ra\000\000\0181\ra\ra\bI\000\000\000\000\ra\000\000\0181\0181\ra\ra\ra\ra\ra\ra\000\000\000\000\000\000\bI\000\000\000\000\bI\000\000\ra\ra\ra\ra\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ra\ra\000\000\000\000\ra\000\000\000\000\000\000\ra\ra\ra\000\000\011\210\000\000\bI\ra\ra\ra\ra\ra\011\026\000\000\bI\000\000\ra\ra\bI\000\000\000\000\000\000\bI\000\000\000\000\000\000\000\000\000\000!F\000\000\ra\000\000\000\000\000\000\bI\000\000\ra\000\000\000\000\000\000\000\000\000\000\rY\rY\ra\rY\rY\rY\000\000\rY\000\000\ra\rY\rY\000\000\000\000\000\000\rY\000\000\ra\ra\rY\rY\rY\rY\rY\rY\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rY\rY\rY\rY\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rY\rY\000\000\000\000\rY\000\000\000\000\000\000\rY\rY\rY\000\000\000\000\000\000\000\000\rY\rY\rY\rY\rY\000\000\000\000\000\000\000\000\rY\rY\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\022\000\000\rY\000\000\000\000\000\000\000\000\000\000\rY\000\000\000\000\000\000\000\000\000\000\rQ\rQ\rY\rQ\rQ\rQ\000\000\rQ\000\000\rY\rQ\rQ\000\000\000\000\000\000\rQ\000\000\rY\rY\rQ\rQ\rQ\rQ\rQ\rQ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rQ\rQ\rQ\rQ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rQ\rQ\000\000\000\000\rQ\000\000\000\000\000\000\rQ\rQ\rQ\000\000\000\000\000\000\000\000\rQ\rQ\rQ\rQ\rQ\000\000\000\000\000\000\000\000\rQ\rQ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!R\000\000\rQ\000\000\000\000\000\000\000\000\000\000\rQ\000\000\000\000\000\000\000\000\000\000\r]\r]\rQ\r]\r]\r]\000\000\r]\000\000\rQ\r]\r]\000\000\000\000\000\000\r]\000\000\rQ\rQ\r]\r]\r]\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r]\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r]\r]\000\000\000\000\r]\000\000\000\000\000\000\r]\r]\r]\000\000\000\000\000\000\000\000\r]\r]\r]\r]\r]\000\000\000\000\000\000\000\000\r]\r]\000\000\000\000\000\000\000\000\n\209\000\000\000\000\n\209\023\014\000\000!.\000\000\r]\000\000\0152\015B\000\000\000\000\r]\000\000\000\000\003%\003%\000\000\003%\003%\r]\000\000\000\000\015J\n\209\000\000\000\000\r]\015R\015j\015r\015Z\015z\000\000\000\n\r]\r]\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\n\209\n\209\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\n\209\003%\000\000\000\000\n\209\000\000\000\000\n\209\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\004\189\015\186\015\194\000\000\000\000\000\000\000\000\000\000\n\209\000\000\000\000\000\000$b\000\000\n\209\003%\000\000\000\000\023\018\000\000\000\000\000\000\000\000\003%\000\000\000\000\n\209\004\189\000\000\015\234\000\000 >\000\000\000\000\000\000\000\000\015\210\003%\000\000\001\166\001\170\011\n\000\000\003%\015\218\015\226\018\021\018\021\000\000\004^\014\222\014\238\000\000\018\021\000\000\000\000\018\021\018\021\n5\000\000\000\000\018\021\000\000\001\134\018\001\004\210\018\021\018\021\018\021\018\021\018\021\000\000\025>\000\000\000\000\000\000\000\000\000\000\000\000\004\214\018\021\018\021\004\222\000\000\000\000\025B\017\178\001\146\000\000\000\000\000\000\018\021\018\021\000\000\000\000\003>\000\000\000\000\002\146!\n\003\142\000\246\003.\000\000\000\000\005n\018\021\018\021\018\021\018\021\018\021\000\000\000\000\000\000\000\000\018\021\018\021\000\000\t6\000\000\000\000\b\226\000\000\000\000\000\000\000\000\000\000\005\170\000\000\018\021\000\000\000\000\000\000\002]\002]!\030\002]\002]\002]\006\173\002]\005\226\000\000\018\021\002]&\154\000\000\000\000\002]\000\000\018\021\000\000\002]\002]\002]\002]\002]\002]\018\021\018\021\000\000\000\000\000\000\000\000\t>\006\166\002]\002]\002]\002]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002]\002]\003.\tB\002]\nF\000\000\000\000\002]\002]\002]\000\000\000\000\000\000\000\000\002]\002]\002]\002]\002]\000\000\000\000\000\000\000\000\002]\002]\t\030\000\000\000\000\000\000\000\000\004^\014\222\014\238\000\000\001\161\000\000\006\178&\174\001\161\000\000\005\226\000\000\000\000\002]\000\000\000\000\004\210\t*\000\000\0212\000\000\002]\000\000\0216&B\000\000\000\000\000\000\002]\000\000\004\214\000\000\000\000\004\222\000\000\000\000\002]\002]\0189\0189\000\000\004^\014\222\014\238\000\000\0189\003>\000\000\0189\0189\014\230\003\142\000\246\0189\000\000\000\000\000\000\004\210\0189\0189\0189\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\214\0189\0189\004\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0189\0189\000\000\022\206\003>\000\000\000\000\000\000\014\230\003\142\000\246\000\000\000\000\000\000\000\000\0189\0189\0189\0189\0189\000\000\000\000\000\000\000\000\0189\0189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\be\be\000\000\be\be\0189\000\000\000\000\000\000\000\000\000\000\022\206\000\000\000\000\000\000\000\000\000\000\018\205\018\205\0189\004^\014\222\014\238\000\000\018\205\000\000\0189\018\205\018\205\018\202\000\000\000\000\018\205\000\000\0189\0189\004\210\018\205\018\205\018\205\018\205\018\205\000\000\000\000\000\000\be\000\000\000\000\003\194\000\000\004\214\018\205\018\205\004\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\018\205\000\000\000\000\003>\000\000\000\000\000\000\014\230\003\142\000\246\000\000\000\000\000\000\be\018\205\018\205\018\205\018\205\018\205\000\000\000\000\be\000\000\018\205\018\205\be\000\000\000\000\000\000\be\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\000\000\be\000\000\022\206\000\000\000\000\000\000\000\000\000\000\018=\018=\018\205\004^\014\222\014\238\000\000\018=\000\000\018\205\018=\018=\000\000\000\000\000\000\018=\000\000\018\205\018\205\004\210\018=\018=\018=\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\214\018=\018=\004\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018=\018=\000\000\000\000\003>\000\000\000\000\000\000\014\230\003\142\000\246\000\000\000\000\000\000\000\000\018=\018=\018=\018=\018=\000\000\000\000\000\000\000\000\018=\018=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018=\000\000\000\000\000\000\000\000\000\000\022\206\000\000\000\000\000\000\000\000\000\000\018\201\018\201\018=\004^\014\222\014\238\000\000\018\201\000\000\018=\018\201\018\201\000\000\000\000\000\000\018\201\000\000\018=\018=\004\210\018\201\018\201\018\201\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\214\018\201\018\201\004\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\018\201\000\000\000\000\003>\000\000\000\000\000\000\014\230\003\142\000\246\000\000\000\000\000\000\000\000\018\201\018\201\018\201\018\201\018\201\000\000\000\000\000\000\000\000\018\201\018\201\001\018\001\022\005r\000\000\000\000\000\000\001V\000\000\000\000\000\000\005\170\000\000\018\201\000\000\000\000\000\000\001b\000\000\022\206\n5\000\000\012\129\n5\011\002\001\134\001\138\018\201\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\011\006\000\000\000\000\000\000\000\000\018\201\018\201\011\"\000\000\000\000\000\000\001\130\003\022\000\000\011\250\000\000\000\000\000\000\003\026\000\000\000\000\003\030\012\018\002\146\003\"\003&\003*\003.\005\154\000\000\005\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\246\000\000\000\000\000\000\000\000\n1\000\000\000\000\000\000\000\000\000\000\000\000\024\254\025\030\005\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\018\229\005\226\018\229\018\229\018\229&\002\018\229\000\000\000\000\018\229\025&\000\000\000\000\000\000\018\229\007.\000\000\0072\018\229\018\229\018\229\018\229\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\018\229\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\018\229\000\000\000\000\018\229\000\000\000\000\000\000\018\229\018\229\018\229\000\000\000\000\000\000\000\000\018\229\018\229\018\229\018\229\018\229\000\000\000\000\000\000\000\000\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\249\000\000\000\000\001\194\002\174\001f\000\000\000\000\000\000\018\229\001f\000\000\000\000(\250\021.\000\000\000\000\018\229\000\000(\254\002.\0022\000\000\n5\018\229\000\000$\018\003m\001\134\002\178\000\000\000\000\018\229\018\229\000\000\000\000\000\000\002\186\004\250\002R\002V\004\254\005\002\005\006\0046\000\000\000\000\000\000\000\000\000\000\002\202\001\190\011J\000\000\005\n\005\014\005\018\001\238\005\022\000\000\000\000\000\000\000\000\002\146\000\000\005\026\005\030\003.\000\000\000\000\003\194\006\221\006\221\000\000\006\221\006\221\000\000)\002\000\000\000\000\005\"\005&\005*\005.\0052\n5\000\000\000\000\017\146\0056\005:\000\000\000\000\000\000\017\150\000\000)\006\000\000\000\000\000\000\001\130\000\000\021J\003m\000\000\000\000\005\226\003\026\000\000\000\000\003\030\000\000\000\000\000\000\000\000\000\000\006\221\005B\000\000\012\030\001f\014J\000\000\001\206\005F\014R\005J\000\000\000\000\001\210\005N\000\000\005R\005V\000\000\012\"\000\000\006-\029B\000\000\006-\006-\000\000\001\134\018\001\000\000\000\000\006\221\000\000\000\000\000\000\000\000\031j\000\000\000\000\006\221\000\000\000\000\000\000\000\000\000\000\000\000\r*\006\221\000\000\031n\012B\001\238\000\000\000\000\000\000\000\000\000\000\006\221\000\000\006\221\000\000\000\000\002\146\000\000\000\000\012r\003.\012z\000\000\012\146\012\182\003\158\000\000\000\000\000\000\000\000\000\000\004^\014\222\014\238\000\000\001\157\000\000\000\000\000\000\001\157\000\000\000\000\000\000\003\162\003\166\000\000\012\190\004\210\000\000\015\017\000\000\006-\012\030\001f\000\000\000\000\001\206\031r\000\000\005\226\000\000\004\214\001\210\000\000\004\222\000\000\000\000\000\000\012\"\003\170\015\017\015\017\000\000\015\017\015\017\012\194\001\134\003>\000\000!j\000\000\014\230\003\142\000\246\000\000\012*\000\000\000\000\001\018\001\022\016\174\000\000\000\000\000\000\001V\000\000\000\000\000\000\0126\012\186\001\238\000\000\000\000\000\000\001b\000\000\006!\006!\000\000\006!\006!\002\146\001\134\005\178\012r\000\000\012z\022\206\012\146\000\000\003\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\017\000\000\005j\000\000\000\000\000\000\001\130\003\022\000\000\003\162\003\166\000\000\000\000\003\026\015\017\015\017\003\030\015\017\002\146\003\"\003&\003*\003.\005\154\000\000\005\158\000\000\000\000\000\000\015\017\000\000\000\000\015\017\015\017\000\000\003\170\000\000\015\017\000\000\015\017\000\000\012\202\000\000\015\017\012\030\001f\014J\000\000\001\206\005\198\014R\000\000\000\000\006!\001\210\000\000\000\000\000\000\000\000\000\000\012\"\005\226\t\029\031\158\000\000\t\029\t\029\000\000\001\134\000\000\000\000\000\000\000\000\000\000\000\000\006!\000\000\012*\000\000\000\000\000\000\018B\000\000\000\000\000\000\000\000\000\000\r*\000\000\000\000\0126\012B\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\146\000\000\000\000\012r\003.\012z\000\000\012\146\012\182\003\158\000\000\000\000\000\000\000\000\000\000\012\030\001f\014J\000\000\001\206\000\000\014R\000\000\000\000\000\000\001\210\000\000\003\162\003\166\000\000\012\190\012\"\000\000\t)\029\150\t\029\t)\t)\000\000\001\134\000\000\031\166\000\000\005\226\000\000\000\000\000\000\000\000\012*\000\000\000\000\000\000\000\000\003\170\000\000\000\000\000\000\bf\r*\012\194\000\000\0126\012B\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\146\000\000\000\000\012r\003.\012z\000\000\012\146\012\182\003\158\000\000\000\000\000\000\000\000\000\000\012\030\001f\014J\000\000\001\206\000\000\014R\000\000\000\000\000\000\001\210\000\000\003\162\003\166\000\000\012\190\012\"\000\000\t%\016Z\t)\t%\t%\000\000\001\134\000\000\029\182\000\000\005\226\000\000\000\000\000\000\000\000\012*\000\000\000\000\000\000\000\000\003\170\000\000\000\000\000\000\bf\r*\012\194\000\000\0126\012B\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\146\000\000\000\000\012r\003.\012z\000\000\012\146\012\182\003\158\000\000\000\000\000\000\000\000\000\000\012\030\001f\014J\000\000\001\206\000\000\014R\000\000\000\000\000\000\001\210\000\000\003\162\003\166\000\000\012\190\012\"\000\000\006\t\023.\t%\006\t\006\t\000\000\001\134\000\000\016r\000\000\005\226\000\000\000\000\000\000\000\000\012*\000\000\000\000\000\000\000\000\003\170\000\000\000\000\000\000\bf\r*\012\194\000\000\0126\012B\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\146\000\000\000\000\012r\003.\012z\005-\012\146\012\182\003\158\000\000\000\000\012\197\007\025\000\000\012\197\012\197\000\000\000\000\000\000\002\006\000\000\000\000\000\000\000\000\000\000\000\000\003\162\003\166\000\000\012\190\000\000\000\000\000\000\000\000\006\t\000\000\000\000\000\000\000\000\000\000\023N\002\014\005\226\000\000\000\000\000\000\0152\015B\000\000\000\000\000\000\000\000\003\170\018\189\b5\000\000\018\189\018\189\012\194\000\000\000\000\015J\031\238\000\000\000\000\002\018\015R\015j\015r\015Z\015z\000\000\000\000\005-\005-\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\012\197\000\000\000\000\000\000\015\146\015\170\001\"\000\000\000\000\000\000\000\000\000\000\007\025\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\000\000\015\186\015\194\000\000\000\000\n\137\n\137\000\000\n\137\n\137\000\000\000\000\023\150\000\000\000\000\018\189\001\018\001\022\027\234\000\000\000\000\000\000\001V\000\000\000\000\000\000\000\000\b5'\206\015\234\000\000'\218\001b\000\000\r\r\000\000\015\210\r\r\r\r\011\002\001\134\001\138\000\000\000\000\015\218\015\226\000\000\000\000\000\000\000\000\n\137\000\000\028f\n\137\000\000\000\000\000\000\000\000\000\000\028v\000\000\000\000\000\000\001\130\003\022\000\000\028\142\000\000\000\000\000\000\003\026\000\000\000\000\003\030\012\018\002\146\003\"\003&\003*\n\137\005\154\n\137\005\158\000\000\000\000\001f\000\000\000\000\001\206\n\137\000\000\n\137\028\162\n\137\001\210\000\000\000\000\b\030\004\170\004\202\020\158\000\000\000\000\n\137\028\170\028\202\005\198\014Z\001\134\n\137\r\r\000\000\000\000\002B\020\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002F\000\000\000\000\028\210\020\170\000\000\000\000\002N\001\238\000\000\000\000\001\242\006m\006m\002\002\002>\000\000\002~\000\000\002\146\003>\000\000\003N\000\000#\166\003\142\000\246\000\000\003\158\0152\015B\000\000\000\000\000\000\000\000\000\000\018!\005\169\000\000\018!\018!\000\000\000\000\000\000\015J\000\000\003\162\003\166\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\020\194\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\170\000\000\015\146\015\170\000\000\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\000\000\015\186\015\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\169\000\000\015\234\000\000\015\242\0152\015B\000\000\000\000\015\210\000\000\000\000\006\133\000\000\000\000\022\142\006\133\015\218\015\226\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\001\018\003\014\000\000\000\000\b\226\000\000\001V\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001b\000\000\015\146\015\170\000\000\000\000\000\000\000\000\001\134\001\138\000\000\000\000&:\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\000\000\015\186\015\194\000\000\000\000\000\000\b\238\003\022\000\000\000\000\000\000\000\000\000\000\003\026\000\000(\219\003\030\000\000\002\146\003\"\003&\003*\003.\t\018\000\000\007\178\000\000\006\133\000\000\015\234\000\000\022J\0152\015B\000\000\000\000\015\210\000\000\000\000\018\185\024\"\000\000\018\185\018\185\015\218\015\226\t\030\015J\000\000\005\198\000\000\000\000\015R\015j\015r\015Z\015z\000\000&\130\000\000\000\000\005\226\000\000\000\000\000\000\000\000\015\130\015\138\t*\000\000\000\000\000\000\000\000\000\000\000\000&B\000\000\015\146\015\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\0152\015B\000\000\000\000\015\186\015\194\000\000\018\193\023\030\000\000\018\193\018\193\000\000\000\000\000\000\015J\000\000\000\000\018\185\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\024\026\000\000\015\234\000\000\015\130\015\138\000\000\000\000\000\000\015\210\000\000\000\000\000\000\000\000\000\000\015\146\015\170\015\218\015\226\000\000\000\000\000\000\000\000\000\000\000\000\ny\ny\000\000\000\000\ny\015:\015b\015\154\015\162\015\178\ny\000\000\000\000\000\000\015\186\015\194\ny\000\000\000\000\000\000\ny\000\000\000\000\000\000\ny\000\000\000\000\000\000\018\193\000\000\000\000\000\000\000\000\ny\000\n\000\000\nM\000\000\000\000\000\000'R\000\000\015\234\011\254\000\000\000\000\ny\ny\ny\015\210\000\000\005\001\000\000\000\000\000\000\000\000\000\000\015\218\015\226\ny\000\000\000\000\ny\ny\ny\000\000\ny\ny\ny\000\000\000\000\000\000\000\000\000\000\005\001\005\001\000\000\005\001\005\001\000\000\000\000\000\000\000\000\000\000\ny\000\000\ny\ny\000\000\ny\ny\005-\000\000\004^\014\222\014\238\000\000\001I\001I\000\000\001I\001I\ny\001\026\000\000\002\006\000\000\000\000\000\000\004\210\000\000\000\000\ny\000\000\000\000\000\000\000\000\000\000\ny\005\001\000\000\000\000\005\001\004\214\000\000\000\000\004\222\002\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\001\000\000\003>\000\000\000\000\001I\014\230\003\142\000\246\000\000\005\001\005\001\000\000\005\001\002\018\000\000\000\000\000\000\000\000\007\249\000\000\005\001\005-\005-\000\000\005\001\005\001\005\001\000\000\b\005\000\000\000\000\000\000\005\001\002\022\000\000\001I\000\000\000\000\000\000\000\000\005\001\022\206\000\000\001I\000\000\0152\015B\000\000\000\000\000\000\000\000\001I\018\209'Z\000\000\018\209\018\209\000\000\000\000\000\000\015J\001I\000\000\001I\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0152\015B\015\130\015\138\000\000\000\000\000\000\018\137\024\158\000\000\018\137\018\137\000\000\015\146\015\170\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\015\130\015\138\000\000\015\186\015\194\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\015\234\000\000\000\000\000\000\015\186\015\194\000\000\015\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\218\015\226\000\000\018\137\000\000\018%\018%\000\000\000\000\000\000\000\000\000\000\018%\000\000\000\000\018%\018%\015\234\000\000\000\000\018%\000\000\000\000\000\000\015\210\018%\018%\018%\018%\018%\000\000\000\000\015\218\015\226\000\000\000\000\000\000\0152\015B\018%\018%\000\000\000\000\000\000\022:\000\000\000\000!\018\n1\000\000\018%\018%\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\018%\018%\018%\018%\018%\000\000\015\130\015\138\000\000\018%\018%\000\000\000\000\000\000\000\000\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\018%\000\000\006\189\000\000\000\000\006\189\006\189\000\000\000\000\015:\015b\015\154\015\162\015\178\018%\006\189\000\000\000\000\015\186\015\194\000\000\018%\023\134\000\000\000\000\000\000\000\000\000\000\000\000\018%\018%\005~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\250\000\000\000\000\022>\000\000\015\234\006\189\0152\015B\000\000\000\000\000\000\015\210\000\000\006\137\000\000\000\000\022v\006\137\000\000\015\218\015\226\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\006\189\000\000\006\189\000\000\000\000\000\000\015\130\015\138\000\000\000\000\006\189\000\000\006\189\000\000\000\000\000\000\006\189\015\146\015\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\189\000\000\015:\015b\015\154\015\162\015\178\0152\015B\000\000\000\000\015\186\015\194\000\000\018\181\000\000\000\000\018\181\018\181\000\000\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\006\137\000\000\015\234\000\000\015\130\015\138\000\000\000\000\000\000\015\210\000\000\000\000\000\000\000\000\000\000\015\146\015\170\015\218\015\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\000\000\015\186\015\194\000\000\012\030\001f\014J\000\000\001\206\000\000\014R\000\000\000\000\000\000\001\210\018\181\000\000\000\000\000\000\000\000\012\"\000\000\000\000\014\154\000\000\000\000\000\000\000\000\001\134\015\234\000\000\000\000\000\000\000\000\000\000\000\000\015\210\012*\000\000\000\000\000\000\000\000\000\000\000\000\015\218\015\226\000\000\r*\000\000\000\000\0126\012B\001\238\000\000\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\000\000\002\146\000\000\000\000\012r\003.\012z\000\000\012\146\012\182\003\158\000\000\0152\015B\000\000\000\000\000\000\019\029\019\029\018E\019\029\019\029\018E\018E\000\000\000\000\000\000\018E\003\162\003\166\000\000\012\190\015R\015j\015r\015Z\018E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\226\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\003\170\000\000\000\000\015\146\018E\000\000\012\194\000\000\019\029\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\018E\000\000\000\000\000\000\019\029\018E\018E\000\000\012\030\001f\014J\000\000\001\206\000\000\014R\019\029\000\000\019\029\001\210\018E\000\000\000\000\000\000\001\"\012\"\019\029\000\000\n5\000\000\019\029\019\029\000\000\001\134\018E\000\000\000\000\000\000\019\029\000\000\000\000\018E\012*\000\000\000\000\000\000\019\029\000\000\000\000\018E\018E\000\000\r*\000\000\000\000\0126\012B\001\238\000\000\000\000\000\000\019!\000\000\000\000\000\000\000\000\000\000\000\000\002\146\000\000\000\000\012r\003.\012z\000\000\012\146\012\182\003\158\000\000\0152\015B\000\000\000\000\000\000\019!\019!\018i\019!\019!\018i\018i\000\000\000\000\000\000\018i\003\162\003\166\000\000\012\190\018i\018i\018i\015Z\018i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\226\000\000\018i\018i\000\000\000\000\000\000\000\000\000\000\000\000\003\170\000\000\000\000\018i\018i\000\000\012\194\000\000\019!\000\000\000\000\019!\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\018i\018i\018i\000\000\000\000\000\000\019!\018i\018i\000\000\012\030\001f\014J\000\000\001\206\000\000\014R\019!\000\000\019!\001\210\018i\000\000\000\000\000\000\001\"\012\"\019!\000\000\023R\000\000\019!\019!\000\000\001\134\018i\000\000\000\000\000\000\019!\000\000\000\000\018i\012*\000\000\000\000\000\000\019!\000\000\000\000\018i\018i\000\000\r*\000\000\000\000\0126\012B\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\146\000\000\000\000\012r\003.\012z\000\000\012\146\012\182\003\158\000\000\0152\015B\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\018\133\018\133\000\000\000\000\000\000\018\133\003\162\003\166\000\000\012\190\015R\015j\015r\015Z\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\226\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\003\170\000\000\000\000\015\146\015\170\000\000\012\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\0152\015B\000\000\000\000\015\186\015\194\000\000\018\129\000\000\000\000\018\129\018\129\000\000\000\000\000\000\018\129\000\000\000\000\018\133\000\000\015R\015j\015r\015Z\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\015\130\015\138\000\000\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\015\146\015\170\015\218\015\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\0152\015B\000\000\000\000\015\186\015\194\000\000\0185\000\000\000\000\0185\0185\000\000\000\000\000\000\0185\000\000\000\000\018\129\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\015\130\015\138\000\000\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\015\146\015\170\015\218\015\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\0152\015B\000\000\000\000\015\186\015\194\000\000\018\197\000\000\000\000\018\197\018\197\000\000\000\000\000\000\015J\000\000\000\000\0185\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0185\000\000\015\130\015\138\000\000\000\000\000\000\015\210\000\000\000\000\000\000\000\000\000\000\015\146\015\170\015\218\015\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\000\000\015\186\015\194\000\000\012\030\001f\014J\000\000\001\206\000\000\014R\000\000\000\000\000\000\001\210\018\197\000\000\000\000\000\000\000\000\012\"\000\000\000\000\016v\000\000\000\000\000\000\000\000\001\134\015\234\000\000\000\000\000\000\000\000\000\000\000\000\015\210\012*\000\000\000\000\000\000\000\000\000\000\000\000\015\218\015\226\000\000\r*\000\000\000\000\0126\012B\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\146\000\000\000\000\012r\003.\012z\000\000\012\146\012\182\003\158\000\000\0152\015B\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\018\157\018\157\000\000\000\000\000\000\018\157\003\162\003\166\000\000\012\190\015R\015j\015r\015Z\018\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\226\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\003\170\000\000\000\000\015\146\018\157\000\000\012\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\018\157\0152\015B\000\000\000\000\018\157\018\157\000\000\018\029\000\000\000\000\018\029\018\029\000\000\000\000\000\000\015J\000\000\000\000\018\157\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\015\130\015\138\000\000\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\015\146\015\170\018\157\018\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\0152\015B\000\000\000\000\015\186\015\194\000\000\018}\000\000\000\000\018}\018}\000\000\000\000\000\000\018}\000\000\000\000\018\029\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\234\000\000\015\130\015\138\000\000\000\000\000\000\015\210\000\000\000\000\000\000\000\000\000\000\015\146\015\170\015\218\015\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\0152\015B\000\000\000\000\015\186\015\194\000\000\018\153\000\000\000\000\018\153\018\153\000\000\000\000\000\000\018\153\000\000\000\000\018}\000\000\015R\015j\015r\015Z\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\015\130\015\138\000\000\000\000\000\000\015\210\000\000\000\000\000\000\000\000\000\000\018\153\018\153\015\218\015\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\018\153\0152\015B\000\000\000\000\018\153\018\153\000\000\018\141\000\000\000\000\018\141\018\141\000\000\000\000\000\000\018\141\000\000\000\000\018\153\000\000\018\141\018\141\018\141\015Z\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\141\018\141\000\000\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\141\018\141\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\018\141\018\141\018\141\018U\018U\000\000\000\000\018\141\018\141\000\000\018U\000\000\000\000\018U\018U\000\000\000\000\000\000\018U\000\000\000\000\018\141\000\000\018U\018U\018U\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018U\018U\000\000\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\018U\018U\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\018U\018U\018U\018U\0152\015B\000\000\000\000\018U\018U\000\000\018I\000\000\000\000\018I\018I\000\000\000\000\000\000\018I\000\000\000\000\018U\000\000\015R\015j\015r\015Z\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018U\000\000\015\130\015\138\000\000\000\000\000\000\018U\000\000\000\000\000\000\000\000\000\000\015\146\018I\018U\018U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\018I\018Y\018Y\000\000\000\000\018I\018I\000\000\018Y\000\000\000\000\018Y\018Y\000\000\000\000\000\000\018Y\000\000\000\000\018I\000\000\018Y\018Y\018Y\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018I\000\000\018Y\018Y\000\000\000\000\000\000\018I\000\000\000\000\000\000\000\000\000\000\018Y\018Y\018I\018I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\018Y\018Y\018Y\018Y\0152\015B\000\000\000\000\018Y\018Y\000\000\018m\000\000\000\000\018m\018m\000\000\000\000\000\000\018m\000\000\000\000\018Y\000\000\018m\018m\018m\015Z\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Y\000\000\018m\018m\000\000\000\000\000\000\018Y\000\000\000\000\000\000\000\000\000\000\018m\018m\018Y\018Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\018m\018m\018m\0152\015B\000\000\000\000\018m\018m\000\000\018y\000\000\000\000\018y\018y\000\000\000\000\000\000\018y\000\000\000\000\018m\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018m\000\000\015\130\015\138\000\000\000\000\000\000\018m\000\000\000\000\000\000\000\000\000\000\015\146\015\170\018m\018m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\0152\015B\000\000\000\000\015\186\015\194\000\000\018u\000\000\000\000\018u\018u\000\000\000\000\000\000\018u\000\000\000\000\018y\000\000\015R\015j\015r\015Z\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\015\130\015\138\000\000\000\000\000\000\015\210\000\000\000\000\000\000\000\000\000\000\015\146\018u\015\218\015\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\018u\0152\015B\000\000\000\000\018u\018u\000\000\018\149\000\000\000\000\018\149\018\149\000\000\000\000\000\000\018\149\000\000\000\000\018u\000\000\015R\015j\015r\015Z\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\015\130\015\138\000\000\000\000\000\000\018u\000\000\000\000\000\000\000\000\000\000\015\146\018\149\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\018\149\0152\015B\000\000\000\000\018\149\018\149\000\000\018M\000\000\000\000\018M\018M\000\000\000\000\000\000\018M\000\000\000\000\018\149\000\000\015R\015j\015r\015Z\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\015\130\015\138\000\000\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018M\018M\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\018M\018\145\018\145\000\000\000\000\018M\018M\000\000\018\145\000\000\000\000\018\145\018\145\000\000\000\000\000\000\018\145\000\000\000\000\018M\000\000\018\145\018\145\018\145\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018M\000\000\018\145\018\145\000\000\000\000\000\000\018M\000\000\000\000\000\000\000\000\000\000\018\145\018\145\018M\018M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\018\145\018\145\018\145\018\145\000\000\000\000\000\000\000\000\018\145\018\145\000\000\012\030\001f\014J\000\000\001\206\000\000\014R\000\000\000\000\000\000\001\210\018\145\000\000\000\000\000\000\000\000\012\"\000\000\000\000\031\170\000\000\000\000\000\000\000\000\001\134\018\145\000\000\000\000\000\000\000\000\000\000\000\000\018\145\012*\000\000\000\000\000\000\000\000\000\000\000\000\018\145\018\145\000\000\r*\000\000\000\000\0126\012B\001\238\000\000\000\000\000\000\b\129\000\000\000\000\000\000\000\000\000\000\000\000\002\146\000\000\000\000\012r\003.\012z\000\000\012\146\012\182\003\158\000\000\0152\015B\000\000\000\000\000\000\b\129\b\129\018e\b\129\b\129\018e\018e\000\000\000\000\000\000\018e\003\162\003\166\000\000\012\190\018e\018e\018e\015Z\018e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\226\000\000\018e\018e\000\000\000\000\000\000\000\000\000\000\000\000\003\170\000\000\000\000\018e\018e\000\000\012\194\000\000\b\129\000\000\000\000\b\129\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\018e\018e\018e\000\000\000\000\000\000\b\129\018e\018e\000\000\012\030\001f\014J\000\000\001\206\000\000\014R\b\129\000\000\b\129\001\210\018e\000\000\000\000\000\000\000\000\012\"\b\129\000\000\031v\000\000\b\129\b\129\000\000\001\134\018e\000\000\000\000\000\000\b\129\000\000\000\000\018e\012*\000\000\000\000\000\000\011\226\000\000\000\000\018e\018e\000\000\r*\000\000\000\000\0126\012B\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\146\000\000\000\000\012r\003.\012z\000\000\012\146\012\182\003\158\000\000\0152\015B\000\000\000\000\000\000\000\000\000\000\018a\000\000\000\000\018a\018a\000\000\000\000\000\000\018a\003\162\003\166\000\000\012\190\018a\018a\018a\015Z\018a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\226\000\000\018a\018a\000\000\000\000\000\000\000\000\000\000\000\000\003\170\000\000\000\000\018a\018a\000\000\012\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\018a\018a\018a\0152\015B\000\000\000\000\018a\018a\000\000\018Q\000\000\000\000\018Q\018Q\000\000\000\000\000\000\018Q\000\000\000\000\018a\000\000\018Q\018Q\018Q\015Z\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018a\000\000\018Q\018Q\000\000\000\000\000\000\018a\000\000\000\000\000\000\000\000\000\000\018Q\018Q\018a\018a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\018Q\018Q\018Q\018q\018q\000\000\000\000\018Q\018Q\000\000\018q\000\000\000\000\018q\018q\000\000\000\000\000\000\018q\000\000\000\000\018Q\000\000\018q\018q\018q\018q\018q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018Q\000\000\018q\018q\000\000\000\000\000\000\018Q\000\000\000\000\000\000\000\000\000\000\018q\018q\018Q\018Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\018q\018q\018q\018q\018]\018]\000\000\000\000\018q\018q\000\000\018]\000\000\000\000\018]\018]\000\000\000\000\000\000\018]\000\000\000\000\018q\000\000\018]\018]\018]\018]\018]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018q\000\000\018]\018]\000\000\000\000\000\000\018q\000\000\000\000\000\000\000\000\000\000\018]\018]\018q\018q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\018]\018]\018]\018]\000\000\000\000\000\000\000\000\018]\018]\000\000\012\030\001f\014J\000\000\001\206\000\000\014R\000\000\000\000\000\000\001\210\018]\000\000\000\000\000\000\000\000\012\"\000\000\000\000\029\186\000\000\000\000\000\000\000\000\001\134\018]\000\000\000\000\000\000\000\000\000\000\000\000\018]\012*\000\000\000\000\000\000\000\000\000\000\000\000\018]\018]\000\000\r*\000\000\000\000\0126\012B\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\146\0152\015B\012r\003.\012z\000\000\012\146\012\182\003\158\000\000\011M\007=\000\000\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\003\162\003\166\000\000\012\190\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\005\226\000\000\000\000\015\146\015\170\000\000\000\000\000\000\000\000\000\000\003\170\000\000\000\000\000\000\0152\015B\012\194\000\000\015:\015b\015\154\015\162\015\178\000\000\020\206\006\245\000\000\015\186\015\194\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\007=\000\000\015\234\000\000\000\000\000\000\015\146\015\170\000\000\015\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\218\015\226\000\000\000\000\015:\015b\015\154\015\162\015\178\0152\015B\000\000\000\000\015\186\015\194\000\000\000\000\000\000\000\000\020\190\006\249\000\000\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\006\245\000\000\015\234\000\000\015\130\015\138\000\000\000\000\000\000\015\210\000\000\000\000\000\000\000\000\000\000\015\146\015\170\015\218\015\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0152\015B\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\011I\n\149\000\000\015\186\015\194\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\006\249\000\000\015\234\000\000\000\000\000\000\015\146\015\170\000\000\015\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\218\015\226\000\000\000\000\015:\015b\015\154\015\162\015\178\0152\015B\000\000\000\000\015\186\015\194\000\000\000\000\000\000\000\000$J\n1\000\000\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\n\149\000\000\015\234\000\000\015\130\015\138\000\000\000\000\000\000\015\210\000\000\000\000\000\000\000\000\000\000\015\146\015\170\015\218\015\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0152\015B\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000$\146\007E\000\000\015\186\015\194\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\021>\000\000\015\234\000\000\000\000\000\000\015\146\015\170\000\000\015\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\218\015\226\000\000\000\000\015:\015b\015\154\015\162\015\178\0152\015B\000\000\000\000\015\186\015\194\000\000\019\001\000\000\000\000!*\019\001\000\000\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\007E\000\000\015\234\000\000\015\130\015\138\000\000\000\000\000\000\015\210\000\000\000\000\000\000\000\000\000\000\015\146\015\170\015\218\015\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\0152\015B\000\000\000\000\015\186\015\194\000\000\018\253\000\000\000\000\022\218\018\253\000\000\000\000\000\000\015J\000\000\000\000\000\000\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\234\000\000\015\130\015\138\000\000\000\000\000\000\015\210\000\000\000\000\000\000\000\000\000\000\015\146\015\170\015\218\015\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\000\000\001f\015\186\015\194\001\206\000\000\000\000\000\000\000\000\000\000\001\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\134\000\000\000\000\000\000\000\000\002B\015\234\000\000\000\000\000\000\000\000\000\000\000\000\015\210\000\000\000\000\002F\000\000\000\000\000\000\000\000\015\218\015\226\002N\001\238\000\000\000\000\001\242\006m\006m\002\002\002>\000\000\002~\000\000\002\146\003>\000\000\003N\000\000\003\230\003\142\000\246\000\000\003\158\0152\015B\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\022\202\018\241\000\000\000\000\000\000\015J\000\000\003\162\003\166\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\004\162\000\000\000\000\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\170\000\000\015\146\015\170\000\000\014\205\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\001\018\001\022\015\186\015\194\014\205\014\205\001V\014\205\014\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001b\000\000\000\000\n5\000\000\t\022\000\000\000\000\001\134\001\138\000\000\000\000\000\000\006\189\015\234\000\000\006\189\006\189\000\000\000\000\000\000\015\210\000\000\000\000\000\000\000\000\000\000\001\154\000\000\015\218\015\226\001\130\003\022\014\205\000\000\000\000\014\205\000\000\003\026\000\000\000\000\003\030\002\170\002\146\003\"\003&\003*\003.\005\154\000\000\005\158\014\205\002\250\000\000\000\000\000\000\000\000\n\201\006\189\000\000\n\201\004\233\014\205\000\000\014\205\n5\n\201\000\000\000\000\000\000\000\000\000\000\014\205\000\000\005\198\000\000\014\205\014\205\000\000\000\000\n\201\000\000\000\000\000\000\014\205\n\201\005\226\006\189\000\000\006\189\000\n\000\000\014\205\000\000\000\000\007\249\n\201\006\189\000\000\006\189\007.\000\000\0072\n\201\n\201\000\000\000\000\n\201\000\000\000\000\n\201\n\201\000\000\n\201\000\000\n\201\n\201\006\189\n\201\000\000\n\201\n\201\n\201\001f\n\201\000\000\001\206\000\000\000\000\000\000\000\000\000\000\001\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\165\n\201\n\201\000\000\000\000\001\134\000\000\002\026\000\000\000\000\002\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000\000\000\000\000\000\000\000\000\000\n\201\002*\001\238\000\000\n\201\001\242\n\201\000\000\002\002\002>\000\000\002~\000\000\002\146\003>\000\000\003^\000\000\003v\003\142\000\246\000\000\003\158\0152\015B\nq\000\000\000\000\nq\nq\018\249\000\000\000\000\000\000\018\249\000\000\000\000\000\000\015J\000\000\003\162\003\166\000\000\015R\015j\015r\015Z\015z\000\000\000\000\000\000\000\000\000\000\000\000\005\150\000\000\000\000\015\130\015\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\170\000\000\015\146\015\170\nq\000\000\003\174\007\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015:\015b\015\154\015\162\015\178\000\000\000\000\001\018\003\014\015\186\015\194\b\226\000\000\001V\000\000\000\000\017:\000\000\nq\000\000\000\000\000\000\000\000\001b\000\000\000\000\nq\000\000\nq\000\000\000\000\001\134\001\138\000\000\nq\b\234\000\000\015\234\000\000\000\000\nq\000\000\017\022\000\000\015\210\017&\nq\000\000\000\000\000\000\000\000\016E\015\218\015\226\b\238\003\022\000\000\000\000\000\000\000\000\000\000\003\026\000\000\n5\003\030\000\000\002\146\003\"\003&\003*\003.\t\018\000\000\007\178\nA\nA\000\000\000\000\nA\000\000\000\000\000\000\000\000\000\000\nA\000\000\000\000\000\000\0172\006\166\nA\000\000\000\000\000\000\t\030\r\194\000\000\005\198\nA\000\000\000\000\000\000\000\000\000\000\003.\017B\n&\nA\000\000\005\226\000\000\000\000\000\000\000\000\000\000\000\000\t*\000\000\000\000\000\000\nA\nA\nA\t2\000\000\000\000\000\000\000\000\017R\000\000\000\000\000\000\000\000\nA\000\000\000\000\nA\nA\nA\006\178\nA\nA\nA\005\226\000\000\000\000\000\000\000\000\000\000\000\000\017^\000\000\000\000\000\000\012\030\001f\000\000!\182\001\206\000\000\nA\nA\000\000\nA\001\210\000\000\000\000\000\000\000\000\000\000\012\"\000\000\003R\0026\000\000\000\000\nA\000\000\001\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nA\012*\000\000\000\000\000\000\000\000\nA\000\000\000\000\000\000\000\000\r*\000\000\000\000\0126\012B\001\238\000\000\000\000\000\000\000\000\000\000\000\254\000\000\000\000\n\209\000\000\002\146\000\000\000\000\012r\003.\012z\000\000\012\146\012\182\003\158\003\137\003\137\000\000\000\000\003\137\000\000\003\137\000\000\000\000\000\000\000\000\n\209\000\000\000\000\000\000\000\000\003\137\003\162\003\166\000\000\012\190\n\209\000\000\000\000\003\137\003\137\000\000\000\000\005\138\n\209\000\000\000\000\000\000\005\226\n\209\n\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\170\000\000\000\000\n\209\003\137\003\137\012\194\n\209\000\000\000\000\n\209\003\137\000\000\000\000\003\137\000\000\003\137\003\137\003\137\003\137\003\137\003\137\000\000\003\137\001\018\001\022\000\000\000\000\n\209\000\000\001V\000\000\000\000\000\000\n\209\000\000\000\000\000\000\000\000\000\000\001b\000\000\000\000\t^\003\137\tj\n\209\003\137\001\134\001\138\000\000\000\000\000\000\000\000\000\000\n\209\000\000\000\000\000\000\003\137\000\000\011\n\000\000\000\000\000\000\000\000\003\137\001\154\000\000\000\000\000\000\001\130\003\022\003\137\000\000\000\000\000\000\000\000\003\026\000\000\000\000\003\030\000\000\002\146\003\"\003&\003*\003.\005\154\000\000\005\158\001\018\001\022\000\000\000\000\000\000\000\000\001V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001b\000\000\000\000\b\242\000\000\006\205\000\000\005\198\001\134\001\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\154\000\000\000\000\000\000\001\130\003\022\007.\000\000\0072\000\000\000\000\003\026\000\000\000\000\003\030\000\000\002\146\003\"\003&\003*\003.\005\154\000\000\005\158\001\018\003\014\000\000\000\000\b\226\000\000\001V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001b\000\000\000\000\000\000\000\000\000\000\000\000\005\198\001\134\001\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\238\003\022\007.\000\000\0072\000\000\000\000\003\026\000\000\000\000\003\030\000\000\002\146\003\"\003&\003*\003.\t\018\000\000\007\178\012\030\001f\000\000\000\000\001\206\000\000\000\000\000\000\000\000\000\000\001\210\000\000\000\000\000\000\000\000\000\000\012\"\000\000\000\000\r\n\t\030\000\000\000\000\005\198\001\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000&>\012*\000\000\005\226\000\000\000\000\000\000\000\000\000\000\000\000\t*\000\000\000\000\000\000\0126\012B\001\238&B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\146\000\000\000\000\012r\003.\012z\000\000\012\146\012\182\003\158\000\000\000\000\000\000\000\000\000\000\012\030\001f\000\000\000\000\001\206\000\000\000\000\000\000\000\000\000\000\001\210\000\000\003\162\003\166\000\000\012\190\012\"\000\000\000\000\n\r\000\000\000\000\000\000\000\000\001\134\000\000\000\000\000\000\005\226\000\000\000\000\000\000\000\000\012*\000\000\000\000\000\000\000\000\003\170\000\000\000\000\000\000\000\000\000\000\012\194\000\000\0126\012B\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\146\000\000\000\000\012r\003.\012z\000\000\012\146\012\182\003\158\001\018\003\014\000\000\000\000\b\226\000\000\001V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001b\003\162\003\166\000\000\012\190\000\000\000\000\000\000\001\134\001\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\170\011B\000\000\000\000\b\238\003\022\012\194\000\000\000\000\000\000\000\000\003\026\000\000\000\000\003\030\000\000\002\146\003\"\003&\003*\003.\t\018\000\000\007\178\019)\019)\000\000\019)\019)\011e\011e\000\000\000\000\011e\000\000\000\000\000\000\000\000\000\000\011e\000\000\000\000\000\000\000\000\t\030\011e\000\000\005\198\000\000\0166\000\000\000\000\000\000\011e\000\000\000\000\t&\000\000\000\000\005\226\015\r\000\000\011e\000\000\001f\000\000\t*\001\206\000\000\019)\000\000\000\000\019)\t2\000\000\011e\011e\011e\000\000\000\000\000\000\015\r\015\r\000\000\015\r\015\r\000\000\019)\011e\000\000\000\000\011e\011e\011e\000\000\011e\011e\011e\019)\000\000\019)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019)\000\000\r&\011J\019)\019)\000\000\011e\011e\000\000\011e\000\000\019)\015\001\000\000\000\000\000\000\rf\000\000\rz\019)\r\134\000\000\011e\000\000\000\000\000\000\001f\000\000\000\000\001\206\000\000\015\r\011e\015\001\015\001\001\210\015\001\015\001\011e\000\000\000\000\003\166\000\000\000\000\000\000\015\r\015\r\000\000\015\r\001\134\000\000\000\000\000\000\000\000\001\214\000\000\000\000\000\000\000\000\000\000\015\r\000\000\000\000\015\r\015\r\001\218\000\000\000\000\015\r\000\000\015\r\000\000\001\226\001\238\015\r\000\000\001\242\000\000\000\000\002\002\002>\000\000\002~\000\000\002\146\003>\000\000\003\206\000\000\003\230\003\142\000\246\015\001\003\158\001\018\t\146\000\000\000\000\tR\000\000\001V\000\000\000\000\000\000\000\000\000\000\015\001\015\001\000\000\015\001\001b\003\162\003\166\000\000\012\234\012\246\000\000\000\000\001\134\001\138\000\000\015\001\000\000\000\205\015\001\015\001\000\000\000\000\000\000\015\001\000\000\015\001\000\000\000\000\000\000\015\001\000\000\003\170\000\000\000\000\007\253\t\150\003\022\003\234\000\000\000\000\000\205\000\205\003\026\000\205\000\205\003\030\000\000\002\146\003\"\003&\003*\007\253\t\154\000\000\007\178\000\000\000\000\007\253\007\253\000\000\007\253\007\253\000\000\000\000\000\000\007\253\000\000\000\000\000\000\001\130\000\000\000\000\000\000\000\000\000\000\tr\003\026\000\000\005\198\003\030\000\000\000\000\000\000\000\000\000\000\000\205\001*\007\253\000\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tz\000\000\000\000\000\000\000\000\007\253\000\205\t\158\007\253\000\000\000\000\000\000\000\000\t\222\007\253\000\000\000\205\000\205\000\000\000\205\000\000\000\000\007\253\007\253\000\000\000\000\000\000\000\205\000\000\000\205\000\000\000\205\000\205\000\000\007\253\007\249\007\253\000\000\000\000\000\205\000\000\000\205\007\253\000\000\007\253\000\205\000\000\000\205\007\253\007\253\000\000\000\000\007\249\000\000\000\000\000\000\007\253\000\000\007\249\007\249\000\000\007\249\007\249\000\000\007\253\000\000\007\249\000\000\000\000\000\000\000\000\000\000\000\000\b\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\026\007\249\000\000\b\001\000\000\000\000\000\000\000\000\000\000\b\001\b\001\000\000\b\001\b\001\000\000\000\000\007\249\b\001\000\000\007\249\000\000\000\000\000\000\000\000\000\000\007\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\249\007\249\000\000\000\000\000\000\0012\b\001\000\000\000\000\000\000\000\000\000\000\007\249\000\000\007\249\000\000\000\000\000\197\000\000\000\000\007\249\b\001\007\249\000\000\b\001\000\000\007\249\007\249\000\000\000\000\b\001\000\000\000\000\000\000\007\249\000\000\000\000\000\000\b\001\b\001\000\197\000\197\007\249\000\197\000\197\000\000\000\000\000\000\000\000\000\000\b\001\000\000\b\001\000\000\000\000\000\000\000\000\000\000\b\001\000\000\b\001\000\000\000\000\000\000\b\001\b\001\000\000\000\000\000\000\001\130\000\000\000\000\b\001\000\000\000\000\000\000\003\026\000\000\000\000\003\030\b\001\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\001\018\001\022\000\000\000\000\000\000\000\000\005\214\000\197\000\197\000\000\000\197\000\000\000\000\000\000\000\000\000\000\001b\000\000\000\197\000\000\000\197\000\000\000\197\000\197\001\134\001\138\000\000\000\000\000\000\000\000\000\197\000\000\000\197\000\000\000\000\000\000\000\197\000\000\000\197\000\000\000\000\000\000\000\000\001\154\000\000\000\000\000\000\001\130\003\022\001\018\001\022\030\186\000\000\000\000\003\026\001V\000\000\003\030\000\000\002\146\003\"\003&\003*\003.\005\154\001b\005\158\000\000\000\000\000\000\000\000\000\000\000\000\001\134\005\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\198\000\000\000\000\000\000\000\000\000\000\001\130\003\022\001\018\001\022\000\000\000\000\005\226\003\026\001V\001\194\003\030\001f\002\146\003\"\003&\003*\003.\005\154\001b\005\158\000\000\000\000\000\000\000\000\000\000\000\000\001\134\001\138\000\000\n1\000\000\000\000\005\162\000\000\001\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\198\000\000\005j\000\000\000\000\000\000\001\130\003\022\000\000\001\002\000\000\000\000\005\226\003\026\001\190\b\173\003\030\000\000\002\146\003\"\003&\003*\003.\005\154\000\000\005\158\002\146\000\000\000\000\000\000\003.\000\000\000\000\003\194\000\000\t6\000\000\000\000\b\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\205\005\198\000\000\017\146\000U\000\000\000\000\000U\000U\017\150\000\000\019N\000\000\005\226\nB\000\000\000\000\000\000\005\166\007\026\000\000\005\226\000\000\b\205\b\205\003V\b\205\b\205\001\002\019V\000\000\000\000\000\000\t>\b\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003.\tB\000\000\nF\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\205\000\000\000\000\b\205\000\000\t\030\000\000\000\000\001\018\001\022\000\000\000\000\000U\000\000\001V\000\000\000\000\nZ\b\205\000\000\005\226\000\000\000\000\002\213\001b\000\000\000\000\t*\006:\b\205\000\000\b\205\001\134\001\138\t2\000\000\000\000\000\000\000\000\b\205\nv\b\205\000\000\b\205\b\205\000\000\002\213\002\213\000\000\002\213\002\213\b\205\000\000\b\205\000\000\001\130\003\022\b\205\000\000\b\205\001\166\001\170\003\026\000\000\000\000\003\030\000\000\002\146\003\"\003&\003*\003.\005\154\000\000\007\178\000\000\000\000\000\000\012\213\001\174\000\000\012\213\012\213\000\000\001\134\000\000\000\000\000\000\000\000\000\000\000\000\002\213\000\000\000\000\002\213\000\000\000\000\000\000\005\198\000\000\000\000\000\000\000\000\001\178\000\000\000\000\000\000\017\178\001\146\002\213\005\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\146\002\213\000\000\002\213\003.\000\000\000\000\005n\000\000\000\000\000\000\002\213\000\000\002\213\000\000\002\213\002\213\000\000\001\166\001\170\000\000\000\000\000\000\002\213\000\000\002\213\000\000\000\000\000\000\006R\tE\002\213\000\000\011.\000\000\012\213\012\217\017\182\000\000\012\217\012\217\000\000\001\134\005\226\000\000\000\000\000\000\019\017\000\000\011\234\000\000\027\130\000\000\tE\tE\000\000\tE\tE\000\000\000\000\000\000\001\178\000\000\000\000\011B\017\178\001\146\000\000\000\000\000\000\019\017\019\017\000\000\019\017\019\017\000\000\000\000\002\146\000\000\000\000\000\000\003.\000\000\000\000\005n\000\000\000\000\b\141\b\141\000\000\b\141\b\141\000\000\000\000\000\000\000\000\000\000\000\000\tE\000\000\000\000\tE\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011.\000\000\012\217\000\000\000\000\019\017\tE\000\000\019\017\000\000\005\226\000\000\000\000\000\000\000\000\000\000\028\130\tE\000\000\tE\000\000\000\000\b\141\019\017\000\000\b\141\000\000\tE\000\000\t\174\000\000\tE\tE\000\000\019\017\000\000\019\017\000\000\000\000\tE\b\141\000\000\000\000\000\000\019\017\011B\t\174\tE\019\017\019\017\000\000\b\141\000\000\b\141\000\000\000\000\019\017\000\000\000\000\000\000\000\000\b\141\000\000\000\000\019\017\b\141\b\141\000\000\019%\019%\000\000\019%\019%\b\141\000\000\000\000\000\000\000\000\000\000\nq\000\000\b\141\nq\nq\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\018\000\000\000\000\000\000\000\000\019%\000\000\000\000\019%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nq\000\000\000\000\007\178\000\000\000\000\000\000\019%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019%\000\000\019%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019%\000\000\000\000\nq\019%\019%\000\000\000\000\000\000\007\249\000\000\nq\019%\nq\000\000\000\000\000\000\000\000\000\000\nq\019%\000\000\000\000\000\000\000\000\nq\000\000\000\000\000\000\000\000\000\000\nq"
  
  let[@inline] action_data =
    fun i ->
      MenhirLib.PackedIntArray.get16 action_data i
  
  let[@inline] action =
    fun i j ->
      let k = MenhirLib.RowDisplacementDecode.decode (action_displacement i) in
      action_data (k + j)
  
  let lhs =
    "\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001:\001:\001:\001:\0019\0019\0018\0018\0017\0017\0016\0016\0015\0015\0014\0014\0014\0013\0013\0013\0012\0012\0012\0011\0010\0010\0010\001/\001/\001.\001.\001-\001-\001,\001,\001+\001+\001*\001*\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001)\001(\001(\001'\001'\001'\001'\001'\001'\001&\001&\001%\001$\001$\001$\001$\001$\001$\001$\001$\001$\001$\001#\001\"\001\"\001!\001!\001!\001!\001!\001!\001!\001!\001!\001 \001 \001 \001 \001\031\001\031\001\031\001\031\001\031\001\031\001\031\001\031\001\031\001\031\001\031\001\031\001\031\001\030\001\030\001\030\001\030\001\029\001\029\001\028\001\027\001\026\001\026\001\026\001\025\001\025\001\024\001\024\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\023\001\022\001\022\001\022\001\022\001\021\001\020\001\020\001\019\001\018\001\018\001\017\001\017\001\016\001\016\001\016\001\016\001\015\001\015\001\015\001\015\001\015\001\014\001\r\001\012\001\012\001\012\001\012\001\011\001\n\001\n\001\n\001\n\001\n\001\n\001\n\001\n\001\n\001\n\001\n\001\n\001\t\001\t\001\b\001\b\001\b\001\007\001\007\001\006\001\006\001\005\001\005\001\004\001\004\001\003\001\003\001\002\001\002\001\001\001\001\001\000\001\000\000\255\000\255\000\254\000\254\000\253\000\253\000\252\000\252\000\251\000\251\000\251\000\250\000\250\000\250\000\250\000\250\000\249\000\249\000\249\000\249\000\249\000\249\000\248\000\248\000\248\000\248\000\248\000\248\000\248\000\247\000\247\000\246\000\246\000\246\000\246\000\246\000\246\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\245\000\244\000\243\000\242\000\242\000\241\000\241\000\240\000\240\000\239\000\239\000\239\000\239\000\239\000\239\000\238\000\238\000\238\000\238\000\238\000\238\000\237\000\237\000\236\000\236\000\236\000\236\000\235\000\235\000\235\000\235\000\234\000\234\000\234\000\234\000\233\000\232\000\232\000\231\000\231\000\230\000\229\000\228\000\228\000\227\000\226\000\226\000\226\000\226\000\225\000\225\000\225\000\225\000\225\000\225\000\224\000\224\000\224\000\224\000\223\000\223\000\222\000\222\000\222\000\222\000\221\000\221\000\220\000\220\000\220\000\220\000\219\000\219\000\219\000\219\000\219\000\219\000\218\000\218\000\217\000\217\000\217\000\217\000\217\000\216\000\216\000\215\000\214\000\214\000\214\000\213\000\213\000\212\000\212\000\212\000\212\000\212\000\212\000\211\000\210\000\210\000\210\000\209\000\209\000\208\000\208\000\207\000\207\000\206\000\206\000\205\000\205\000\205\000\204\000\204\000\203\000\203\000\202\000\202\000\202\000\202\000\202\000\201\000\201\000\201\000\201\000\201\000\200\000\200\000\199\000\199\000\198\000\198\000\197\000\197\000\196\000\196\000\196\000\195\000\194\000\194\000\193\000\193\000\192\000\192\000\191\000\191\000\190\000\190\000\189\000\189\000\188\000\188\000\187\000\187\000\186\000\186\000\185\000\185\000\184\000\184\000\183\000\183\000\182\000\182\000\181\000\181\000\180\000\180\000\179\000\179\000\178\000\178\000\177\000\177\000\176\000\176\000\175\000\175\000\174\000\174\000\173\000\173\000\173\000\173\000\172\000\172\000\171\000\171\000\170\000\170\000\169\000\169\000\168\000\168\000\167\000\167\000\166\000\166\000\165\000\165\000\164\000\164\000\163\000\163\000\162\000\162\000\161\000\161\000\160\000\160\000\160\000\159\000\159\000\159\000\158\000\158\000\158\000\158\000\157\000\157\000\157\000\156\000\156\000\156\000\155\000\155\000\155\000\154\000\154\000\154\000\153\000\153\000\152\000\152\000\151\000\151\000\150\000\150\000\149\000\149\000\148\000\148\000\148\000\148\000\148\000\148\000\147\000\146\000\146\000\146\000\146\000\146\000\146\000\146\000\146\000\145\000\145\000\144\000\143\000\143\000\143\000\142\000\142\000\142\000\142\000\141\000\141\000\140\000\140\000\139\000\138\000\138\000\137\000\137\000\136\000\136\000\136\000\135\000\135\000\134\000\134\000\133\000\132\000\132\000\131\000\131\000\130\000\130\000\129\000\129\000\128\000\128\000\127\000\127\000\127\000\127\000\127\000\127\000\127\000\127\000~\000~\000~\000~\000~\000~\000~\000~\000}\000}\000|\000|\000{\000{\000z\000z\000z\000y\000y\000x\000x\000x\000x\000x\000w\000v\000v\000v\000v\000v\000u\000u\000t\000t\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000r\000r\000q\000q\000p\000p\000p\000o\000o\000n\000n\000m\000m\000l\000l\000k\000k\000j\000j\000i\000i\000h\000h\000g\000g\000f\000f\000e\000e\000d\000d\000c\000c\000b\000b\000a\000a\000`\000`\000_\000_\000^\000^\000]\000]\000\\\000\\\000[\000[\000Z\000Y\000Y\000Y\000X\000W\000V\000U\000U\000T\000S\000S\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000P\000P\000P\000P\000O\000O\000N\000M\000M\000L\000L\000K\000J\000J\000J\000J\000J\000J\000J\000J\000J\000J\000J\000J\000J\000J\000J\000I\000I\000I\000H\000H\000H\000H\000G\000G\000F\000F\000E\000E\000D\000D\000D\000D\000C\000C\000C\000C\000B\000B\000B\000B\000B\000B\000B\000B\000B\000B\000B\000A\000A\000A\000A\000A\000A\000A\000A\000A\000A\000A\000@\000@\000?\000?\000?\000?\000?\000?\000?\000?\000>\000>\000>\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000=\000<\000<\000;\000;\000;\000;\000;\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\000:\0009\0009\0009\0009\0009\0009\0009\0009\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0008\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0006\0006\0006\0006\0005\0005\0005\0005\0005\0004\0004\0003\0003\0003\0003\0002\0001\0001\0001\0001\0001\0001\0001\0001\0001\0001\0001\0000\0000\0000\0000\0000\0000\0000\0000\0000\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000.\000.\000-\000-\000-\000-\000-\000-\000-\000-\000,\000+\000+\000*\000)\000)\000(\000'\000'\000'\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000&\000%\000%\000%\000%\000$\000#\000\"\000\"\000\"\000!\000!\000 \000 \000 \000 \000 \000 \000\031\000\031\000\031\000\031\000\030\000\030\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\029\000\028\000\027\000\027\000\027\000\027\000\027\000\027\000\026\000\025\000\025\000\025\000\024\000\024\000\023\000\023\000\023\000\023\000\023\000\023\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\022\000\021\000\020\000\019\000\019\000\018\000\017\000\017\000\017\000\016\000\016\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\014\000\r\000\012\000\012\000\011\000\011\000\n\000\n\000\n\000\n\000\n\000\n\000\t\000\b\000\b\000\007\000\007\000\007\000\007\000\007\000\007\000\007"
  
  let[@inline] lhs =
    fun i ->
      MenhirLib.PackedIntArray.get16 lhs i
  
  let goto_displacement =
    "\005\136\000\232\014z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\214\000\000\000\000\007\154\r\246\r\202\r\220\000\023\014\176\021,\000\000\000\000\022\002N(\000\000\000\000\n\164\000\000\000\000\000\000\n\188\000\000\005\136\000\000\000\000\0154\000\000\000\000\000\000\000\000\000\000\000\000\000\000(\252\r\n\000\000\000\000\000\000\000\000\000\000\000\000\005\194%~\000\000\021X\000\000\000\000\000\000\r@\000\000#\\\000\000\000\000\000\000\000\000\000\000\022\192\011\206MN\017J`X\000\000\000\000\024\148\017\236\000\000\n\202\000\138\012h\000\000\000\000\000\145\000\000\000\000\007\166\000\000\n\154\n\230\000\000`\162^\228`\188\017\216\000\000\028\142\000\000\000\000\000\000`\188\003<b\238\000^\000\000\027\214\000\000\000\0005\1525\152A\210G\168E\210\028\142A\210\000\0002\152\017j\019\012\000\000\019&\000\000\tn\004\134\016\002\000\000\012\250\016T\n\164\000\000\019\146\000\000\000\000\000\000\019\196\000\000\000\000\000\000\020\012\000\000\000\000\000\000\000\000\0214\014\214\000\000\000\000\000\000\000\007\000\000\000\000\014\240\025t\n*\026\216\000\000\014\232%\b\014H\000\006\015\208\012\198\002\\\r\212f\136\004\178\0204\000\000^\028\b\018\000\000\000\000,|\011\226\000\000\000\000\021\194\021\230+\"\011\152\000\000\021\218\000\000\000\000\000\000\012*\000\000N\206_\152\000\000\000\000\000\000\000\000\018\248\004(&\250\000\000\0148\007\030\005\022e\208\0024\000\000\000\000\021\248\000\000\000\000\000\000\021T\000\000\000\000\000\000\000\000d\028\018\026\004(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023J\006*\014z\000\000\000\000G\168\016B\017\162_\182\000\000\000\000\000\000\000n_f\000\000\t\154\000\000\000\000\000w\000\000\000\000\000\000\000\000\002T\000\000\000\000\001\140\000\000\000\000'p\000\000N.d\136\000\000\000\000\000\000\n\252\000\000\000\000\000\000d\206\000n\000\000`\222\000\000\004:\000\000\000\000\"\244\000\000\002\000\005\248\000\000\000\000\000\000\000\000\000\000\000\000\b\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\180+h&\158\006\020\018$\014X\018\154\n\164\000\021\021\180\000\000\017J\003@\030\1781\014\000\000\000\000\000C\000\000%\150\001\203\001B\001]\001B\000\000\001b\004P\000\000!\238\000\000\000\000)\234\000\000\000\000\000\000\006\222\000\000\000\000\007\214\000\000\000\000\000\000'\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\\ \000\000\000\000\000\000\\\014\000\000\005\020\000\000\000\000\000\000\000\000\017\136\000\000\000\000\000\000\000\000\000\000\018\160\018\170\031@\000\000\000\000\000\000\000\000\\\182\000\000\000\000\000\000C\214\000\000\000\000\000\000$\144\000\000\007\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\152\000\000\000\000 H\000\000\0190\n\194\000\000\000\000\000\000\019R\000K\000\000\000\000\000\000\000\000\000\000\000)\000\000\000\000\000\000\000\000/,\018\180\0184\000\000\000!\000\000\000\000\000\250\000\000\000\000\000\000\000\000\021\030\018R\004l\000\000\000\000\000\000\000\000\024\250\000\000\000\000\000\000\bP\000\000H\000\000\000\000\000\006\214\000\000\000\000\003\170\000\000\b\012\000\000\019\232\000\000\000\000\"$\000\000\000\000\000\000&\144\000\000\020L\nF\000\000\000\000\000\000\000\000\000\000\020p6 \000\000\000\000\000\000\000\000\000\000\000\000\020\15464\000\000\000\000\000\000\000\000\000\000\025,\000\000\000\000\026,\000\000\000\000\021\146\000\000\020\n\000\000\026Z\000\000\012n\019\226\012\182\000\000\000\000\011\134\020\216\012d\000\000\012\n\000\000\np\000\000\000\000\0110\t\132\020,\002\128\000\000\006t\0206\nB\000\000\bR\000\000\000\000\005v\000\000\000\000\000\000\026p\005:\000\000\025\180%~\007D\000\000\000\000\021j**\000\000\000\000\000\0001\014\t~\000\000\007\212\000\000\000\000\026\000\000\000\n>\n*\000\000\000\000\000\000\000\000\024L\000\000\018\130\000\000\000\000\n\162\000\000\000\000\015j\000\000\r\226\000\000\015\028\000\000\000\000\000\000\000\000R\018\024L%~1\014\007\214\000\000\000\000\002\".\168\000\000<R\000\000\021\138\000\000\000\000\015\170\r\166\000\231\011\162\000\000\000\000\014(\016j\000\000\000\000\000\000\000\000\000\000\000\000\b\180\000\000\000\000\006\244\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\150\000\000\000\000\007b\t\134\b\012\000\000\000\000\020\198\000\000\000\000\000\000\000\000\020\190\000\000\000\000\t\254\021\014\016T\012\164\0004\000\000\000\000\n\144\000\000\022\162\000\000\000\000\000\000\000\000\000\000\000\000\017R\000\000\020\250\016\006\000\000\020\n\r*\012\n\0004\019\000\000e\000\000\000\000\000\000\000\000\t\006\000\000\018\244\004T\000\000\000\000\020(\000\000\016\140\019\144\000\000\000\000\000\000\000\000\018\240\004\196=\218\000\000\000\000\000\000\000\000\006F\015\214\000\000\000\000\000\000\000\000\017\144\000\000\018\1443\012\019v\000\000T\232\000\000\021\234\000\000\016F\000\000\000\231\000\000\007\190\000\000\000\000\018J\000\000\000\000\000\000\000\000]\164\000\000\000\000:Z\000\000'B\000\000\000\000\000\247\000\000\000\000\000\000\019\234\000\000V\182\000\000\000\000\000\000\000\224\000\000\019\206\000\000'\152\000\000\002\182\005 h\016\000\000\r\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023 \000\000\022&\000\000\000\000\000\000\018\232\000\000\029\134\000\000\000\000\000\000\001\014f\030\012l\000\000\000\000\018\210\018\206,\200\016\178\b\148\000\000\016\186\018\142\000\000\000\000\000\000e\250\003\020\023 A@\017l\002v\017F\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\000\000\000\000\b\210\000\000\000\000\000\000e\172\000\000\000\000\000\000=\172\000\000\000\000\006\2427Z\n\134\000\000\000\000\000\000<\136\000\000e\138\000\000\029&\000\000\007\1503\154\000\000\000\000\000\000\000\213\005V\000\000\000\000\000\000\000\222\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\005(\000\000\000\000\000\000\006F\000\000\000\000\005\028\000\000\000\000\000\000\015\220\000\000\000\000\000\000\000\000\022J\000\000\000\000\000\000\000\000\023\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000g\020\000\000hd\000\000\000\000\000\000@\248\0170\016\186?B\000\000\000\000\000\000\017\012a\198\000\000\000\000\000\000M\198\000\000\017>\000\000f\208\000\000V \b\210\000\000\017\000\000\000V\204\000\000\000\000\022v]h\000\000\000\000\000\000\000\000\022~\000\000\000\000\000\000\000\0001\2547$I\210\000nb\\\000nB:\000n\000\000\000\000U<\000\000\023J\b\152E\210\000\000\000\000\000\000\n\252\000\000W\\\000\000]\240X\146\000\000D\220\000\000>\226\000\000Lb\000\000:\184\000\000J \000\000DJ\000\000X\244\000\000G`\000\000P\166\000\000=\n\000\0004p\000\000J\138\000\000F\004\000\000I\158\000\000;d\000\000T\248\000\000KX\000\000B\208\000\000B~O\186\000\000\000\0004\194\000\000Ft\000\0004\216\000\000CN\000\000@\192\000\000\000\000D\204\000\000E\128\000\000\000\000F\"\000\000\000\000\023\246]\154\000\000\020\230\015\224\022\246\000\000_\226\000\000<\172\000\000K\238\000\000\017\240\020\016\022\208\t\164A\198\000\000\000\000\000\000\018\136\022\210\007\b\000\000\022\190\000\000\022\216\017^\000\000\019\162\000\000\022\224\006\196\000\000+h\022\168\022\170\000\000\000\0009:\000\0006\214\000\000\000\000;\196\000\0007\200\000\000\022\246Mh\000\000\000\000\000\000L:\000\000\000\000\000\000=b\000\000\000\000\001\211\003@\001\172\000\000\000\000\025,\005\012\000\000\000\000\026,\005\202\000\000\000\000\021\146\006\234\000\000\020\n\b\182\000\000\026Z\011\236\000\000\000\000\000\000\000\000\000\000\014\148\000\000\000\000\000\000\000\163\012:\000\000\000\000\000\000\017\246\017\214\000\000\003L\031\166#\\\000\000\000\000\000\000\000\000\007\b\000\000\000\000\000\000\030\180\000\000\007T:\030\000\000\000\000\000\000\000\000\000\000\000\000\r\196\000\000\n\158\000\000\000\000\000\000\022\128\000\000\002*\\\002\000\000\012R\000\000\022\222\018\\\000\000\000\015^\140\001\188\000\000cT\004r\000\000\000\000\000\000\025L\000\000\019\n\022n\000\000\019\n\017\164\000\000+\162\000\000\000\000`z\000\000\000\000\017\148\017\000a\006\000\000\003\236\000\000\000\000\017\142\023\146\017\246\016\028\000\000\002\002\000\000\017\246X\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018n\002\246\000\000\000\000\021\178\022\190\003\146P\216\000\000\000\000\000\000\000\000\022:\017\246\016\160\017\246\000\000\017r\017\246\023\196\000\000\017\224\017\162\017\246A\186\017\196\000\000\000\000\000\000\000\000\018\250\017\246\019,\000\000\000\000\000\000\017j7$\000\000\000\000\016N\000\000\000\000\000\000\000\000\002\012\022\n\017\246\n\242\000\000\0218\017\246\014\198\000\000\003\224\000\000\021l\000\000\018\244S\246\000\000\015L\000\000\000\000\002\030\016n\017\246\022\244\000\000\020\178\017\246\019^\000\000\018\250)\204\000\000\019\158\000\000\000\000\000\000\016\212\000\000\024|\000\000\019\n\022<\000\000\000\000\000\000\000\000\000\000\019\158\r\"\000\000\004\228\021z\000\000\000\000\000\000\018\028\000\000]\134\000\000\000\000e`\000\000\000\000\000\000\000\000c\018\000\000\000\000Z~\000\000\000\000\002pY\012\000\000\000\000)&\0198/2\000\000\000\000\000\000\000\000\000\000\029,\000\000\000\000\003\178\000\000\000\000\000\000\016\214\019V\018^\000\000\000\000\000\000\000\000\000R\000\000\000\000H\148\019j\000\000\000\000\000\000*B\000\000\002\170\017@\000\0005\186\000\000\019\128\022.\016\156\000\0008\212\000\000\000\000\0046\019\176?\198\000\000\000\000\000\000\000\000\002\202\021x0\140\021t\019\170\000\000\022 \003\214\000\000<2\000\000\000\000\019\172\000\000\000\000\019\174\0208\000\000\000\000\004\004\000\000\000\000\000\000\000\000\000\000\000\000\019\184\004\018\019\01682\021p\019\190\000\000\000\000\019\192\000\000\000\000I\128\019\206\000\000\019\212\016\030\021nK\194\019(\019\216\000\000\000\000\022\020\000\000\000\000\000\000\000\000\000\000\000\000Y\134\000\000\015\248HB\000\000\000\000>\170\000\000-n\019\254\000\000\000\0002\164\000\000\000\000W\174\000\000\000\000\000\000\000\000\000\000\b\150G\250\000\000\000\000(\224\020\012\000\000\000\000\000\000\000\000\"v\000\000D\006\000\000 T\018\234\000\000\000\0004\n\000\000a \000n\000\000\000\000\0204\005\228\000\000\015\144:\234\000\000\000\000\000\000!V\020B\004f\000\000\0200\000\000\022\"\b\156\000\000\0204\000\000\020T\011\194\000\000f\018\000\000V\134\000\000@\218\000\0001`\000\000\000\000\019\162\021\156\000\000\000\000\000\000X\228\000\0009\192\000\000\020\130\016\020\019*\017\246\000\000\020r\000\000\021\n\015\180\000\0005\202\000\000R \000\000\028\142\000\000\000\000PT\000\000O\222\000\000\000\000\000\000\000\000\000\000:l\000\000\015\224b\026\000n\019\176\017\246\tR\015\132a\132\000nQ\182\000\000\000\000\012V\015h\019\218\021\156\000\000\r\152\000\000g\174\000\000S\194\019`1\152\000\000b\160\000n\015\170\021X\000\000BF\000\000\000\000\012\210\020n\000\000\000\000\000\000\0002\000\000V4\000\000$\012\000\000X,\000\000\011lY*\000\000\015\150\021\134\000\000X\186\000\000\000\000\014\154\000\000\019\194\000\000\015\250\000\000\015\216\000\000\0208\011\132\000\000\000\000\021\162\020\002\000\000\000\000\000\000\020\246\016(\000\000\000\000\000\000\011z\004L\016:\020\212\000\000\022\164\000\000\000\000\000\000\000\000Rh\000\000\000\000\021\228\000\000\000\000!6\000\000\021\238\000\000\000\000\031\252\000\000\000\000\t\232\000\000\000\000\000\000\000\000\000\000\020\138#\248\021*\000\000\000\000\000\000\000\000\000\000\000\000\000\181\000\000\001<.:\000\000?<\000\000\000\000L\130\000\000\000\000\000\000\021b\020\234\000\000\001\184\020X\016\012\000\000\022\020\000\000\000\000!\146\000\000\022\026\000\000\000\000\"\142\000\000\007\204\000\000-\182\000\000\000\000\021b\000\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bh\000\000\000\000\000\000\000\000\000\000\011\148\000\000\000\000\000\000\t\184\014\146\000\000\000\000\014\250\000\000\000\000\007D\000\000\000\000\020\202\000\000\031\184\000\000\000\000\000\000\011\006\000\000\004\230\014\244\000\000\000\000\015,\000\000\000\000\004\170\000\000\000\000\000\000\000\000\003\206\000\000\000\000\000\000\000\000\000\173\0214\000\000\000\000\014\\J>\000\000\000\000\000\000\014\150\000\012\0214\014\002\000\000\000\000\021$\000\247\000\000\000\000\0066\000\000\006n\000\000\014\136\000\000\000\000\021\024\000\000\000\000\000\000'\204\014H\tl\014\204\0004\020|\015\194\000\000\000\000\000\000\000\000\000\000\015\202\000\000\020J\t(\000\000\021@\nB\0154\0004\020\130\r\156\000\000\000\000\000\000\000\000\014\200\000\000\020\132\004\238\000\000\021\202\014\204\020\252\000\000\000\000\020\168\014\214T\138\000\000\000\000\014\186\022\014\000\000#\136\000\000Vh\000\000\0158\022v\000\000L\250\000\000\000\000\014\n\000\000\020\158\000\000\015\226\007d\t\012\000\000\003R\000\000\tf\020\224\000\000\000\000\015\012\006\\\000\000\006n\000\000\012r\000\000\000\000\000\000\000\000\000\000\000\000'\204\000\000\rL\000\000\r\242\029\182\r\198\bN\000\000\020\180\028\002\000\000\000\000\000\203\026N\015\224^\146\000n\021\210\002\224\014\022\t\140\000\000\000\000\000\000\000\000\021\152\000\000\005\186\t\018\000\000\000\000\000\000\025J\000\000Z\192\000\000\b\230\000\000\021\184\000\000\000\000\024h\000\000\020\208\000\000\000\000\024\220\000\000\020\228\000\000\000\000\000\000.\204\000\000\000\000\000\000\020\202\020l\000\000\028\160\000\000\000\000\002*\r^\000\000\021\136\000\000\000\000\021V0\244\022\246\000\000N|\000\000\000\000\021R0|\000\000\000\000UH\000\000\017\148c\218\000n\020\194\023\240\020\162\000\000(\198\000\000\000\000\016`\000\000\000\000\000\000&6\000\000\006\190'\018\020j\000\000Pl\014\220\000\000\000\000\014x\000\000\000\000\000\000\020\146\003@\002*\000\000\015\146\000\000\000\000\000\000\019&f\178\000\000\000\000\t\192\000\000\000\000\000\000\027(\000\000\000\000\005\134\000\000\000\000\000\000\000\000\000\000\026\254\000\000\000\000\000\000\000\000\015:\000\000\000\000\000\000\000\000\000\000\024\168\007\180\000\000\020f\000\000\015\214\000\000\020^\000\000\016\164[ \015d\000\000[\022\002V\000\000\020V\000\000\016\030\000\000\020R\000\000\015\020\000\000\000\000\020N\000\000\016D\000\000\000\000\000\220\tH\000\000\000\000\006\024\000\000\000\000\002&\000\000I.\000\000aZ\000n\000\000\000\000H\230\000\000SV\000\0004\182\000\000R\196\000\000E.\000\000/\130\000\0009\232\000\000G\014\000\000S\012\000\0003x\000\000P\202\000\000U\206\000\000W4\000\000T\012\000\000;\250\000\000T\144\000\000P\238\000\00036\000\000.\174\000\0008\172F\250\000\000\000\0008^\000\000@@\000\000NX\000\000Jl\000\000\000\000\000\000\t\238\000\000\000\000\000\000\000n7\218\000\000\000\000>\016\000\000\bl?\238\000\000\000\000>4\000\000-4\019\228\000\000\000\000:4\000\000\000\000J\178\000\000\tx\000\000\005\174\001\254\021\138\011\198\000\000\000\000\019r\b\160\000\000\000\000\000\244\000\000\006n\000\000\000\132\016\148\r~\017\018\0004\020\214\n\132\006\002\011\006\012.\000\000\000\000\006\204\001X\b\166\000\000\r\192\000\000\r$\000\000\000\000\006\026\003&\011\030\006 \000\000\tP\001S\t\234\000\000\011\130\000\000\000\000\012\204\000\000\000\000\000\000\000\000\000\000\004\162\000\000\020\222\b\178\000\000\019v\r\128\017\196\0004\020\224\003\220\000\000\000\000\000\000\017\152\000\000\018d\006\200\000\000\019\150\005\012\020\130\017\246\000\000\022J\018v\016\218\000\000\017\148\n&\017\246\001\250\020\020\000\000B.\000\000\000\000\007\000\000\000\000\166\t\186\000\000\000\000\012\026\000\000\005\144\000\183\000\000\t\250\000\000\000\000\012 \000\000\000\000\000\000\000\000\000\000\000\000[>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023J\000\000\000\000\000\000\019N\004z\000\000\000\000\000\000\000\000\011\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022F\019. \182\000\000\000\000\000\000Z~\000\000\000\000\000\000c>\000\000\000\000Oh\000\000\000\000\000\000\000\000\002\148\000\000\000\000\029\142\000\000\000\000\002\218\000\000\000\000\000\000\016\252\022j\000\000\000\000\005\206\000\000\000\000\000\000\000\000\000\000c\234\000n\000\000\000\000\000\000c\168\000\000[x\000\000\000\000\018\156h \000\000Q\208\000\000\020\180\000\000\019\228\000\000\000\000\021\186\022\128\000\000\000\000\000a[\138\000\000\000\000,b\018\246\000\000\000\000\000\000\000\000\000\000\023J\b\022\000\000\000\000\002\130\000\000\000\000\030 \000\000\000\000\r\016\000\000\000\000\000\000\017\030\018\232\000\000\000\000\002t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\246\000\000#\138\000\000\000\000\018\222\000\000\000\000\000n\000\000\000\000\018\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\144\000\000\000\000\000\000\000\000\000\000\000\000\007P\000\000\000\000\000\000\000\000\021\172\021\242\022\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018,\021\244\017\170\018x\000\000\000\000\000\000\000\000\018X\000\000\000\000#\018\018\136\000\000\000\000\018\132 0\018\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\130\000\000\000\136\000\000\000\000\000\000'\204\000\000\012\132\002|\000\000\000\000\000\000\r~\000\000\000\000\000\000\000\000\000\000\000\000V\160\000\000\000\000\0174\001T\000\000\018.\000\000\000\000\000\000\000\000\018\022\000\000\000\000\000\000\000\000\017\246\0004\021\162\bB\000\000\000\000\000\000\018\\\000\000\014\020\012\244\000\000\012\190\000\022\018d\0004\n\162\007\150\000\000\000\000\000\000\000\242\000\000\001#\000\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000O\210\000\000>`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000n\000n\000\000\000\016\000\000\000\000\000\000\000\000\000\000\022~\0078\022\128\000\000\000\000\000\000\000\000\000\000\007\240\0226\022\128\000\000\000\000\007\220\007F\000\000\022\188\006p\000\000\003d\000c\000\000\000\000\000\000\000\000\017\246\000\000\000\000\000\000\000\000\000\000Dr\022\246\000\0001\030\000\000\000\000\000\000\000\000'\244\005\230\002\170\000\000\0046\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002*\000\000\023J\000\000^`\000n\000\000\000\000\000\000\000\000^\184\000n\000\000\000\000\000\000\001\030\000\000\000\000\000\000+\190\000\000\000\000\000\000,\174\000\000\000\000\000\000^>\000\000\000\000\000\000\000\236\002\146\001\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\000\000\000\000\000\000\002\020\000\000\000\000\003\132\000\000\000\000\000\000\000\000"
  
  let[@inline] goto_displacement =
    fun i ->
      MenhirLib.PackedIntArray.get16 goto_displacement i
  
  let goto_data =
    "\001\020\000\254\001n\003\030\002\205\004[\004\\\001\175\001\177\002v\004d\001{\002u\002\156\002w\000\192\006\227\000\185\006\237\002\157\001\200\001\177\002\162\002\228\004]\001\020\000\254\nO\nP\b\t\001{\002\246\005{\001|\000L\004^\003<\0035\b^\002\231\001\213\t\252\000L\001\021\002\185\b<\001\022\003\187\002u\007\002\nQ\000\\\nT\001\209\004`\002\157\n\021\001p\002\162\b@\bA\006\223\n\023\n\025\006v\005\176\003[\000L\001\021\004[\004\\\001\022\bB\ts\001\227\003\178\002'\001\020\000\254\002\030\003]\b\184\000H\001\194\005{\000L\001\178\001\179\b\131\002\206\002\207\007N\001\195\003\027\007\130\000H\001\180\004b\000L\001\178\001\179\004k\t\203\004\130\002\212\002\231\000\127\006\224\000L\001\180\007\136\n\027\005\176\b\189\005}\005\127\002\235\001\210\n\029\001\030\001\021\001\130\004\147\001\022\bB\003&\bW\bY\be\001\020\000\254\bf\001\234\b\t\001\187\006\234\001\133\001\220\001\221\007c\t\201\n\030\001\192\bg\001\026\001!\004\220\001\187\004\219\b<\006y\007\185\001{\nG\nH\001\192\nJ\001\135\001\197\007d\000L\000{\000\186\b@\bA\t\198\003\191\006\212\000L\001\026\001!\001\202\001\021\t*\006\213\001\022\bB\007h\b\185\b\187\be\007\193\002\235\006z\007j\002\236\006\129\001\145\007\208\002(\tt\002\239\002~\002\212\001\212\003`\006\132\t\146\004\152\000\\\004\141\007l\004\144\006\214\006\216\n-\006\218\006\219\000:\006\238\005\129\001\145\006\131\001%\003\001\003\195\004\153\007\188\003\191\bc\003\030\001\026\001!\006\147\b{\b\192\br\004\144\005\177\003\196\bW\bY\be\t\226\004\158\bf\nC\000\254\001%\007\254\003\195\b\193\b\195\001\140\003\030\t\168\000\189\bg\007\189\003=\002\184\b^\001\145\002\240\003\196\006\220\006\229\006\241\001\210\006\249\003\198\003\199\005\129\006\141\nW\001\145\006\142\b\220\000\254\001\145\003\191\0066\006\250\001\026\001!\005\177\007\199\001\020\000\254\nS\t\224\b\t\001\145\003\"\001\005\003\198\003\199\006\147\b\196\001q\001%\004\161\003\195\b\190\b\197\001\145\005\202\b<\002\128\t\169\001\222\001\235\nQ\001\005\nT\001\223\003\196\003[\001\145\001\005\002|\b@\bA\001\020\b\b\006\239\001\145\b\t\b\001\006\165\001\021\003\133\006\167\001\022\bB\006\141\bd\0035\006\142\b\192\003c\004\144\000\147\b<\002a\004[\004\\\003\198\003\199\002\200\b=\b\198\001%\005\202\003\195\b\193\b\195\b@\bA\006\147\001\005\004\147\b\199\004\236\b|\b\174\001\021\005{\003\196\001\022\bB\001\005\004\255\0036\0037\0038\003g\0039\004\180\nL\001\145\007G\n/\006\168\003:\b\182\t\147\nD\bW\bY\be\006\165\to\bf\b^\004\173\006\167\tA\tC\003\198\003\199\000\215\b\196\000\245\0006\bg\001\145\002\129\t\204\001\145\007T\004g\002\131\004\181\007\254\004\186\0035\004\187\b\209\004\189\004[\004\\\001\145\001\005\bW\bY\be\007H\003\191\bf\001\145\001\026\001!\b\002\001\145\001\006\000\254\004\151\t\151\bu\b\238\bg\bc\007I\004\190\t\171\002\136\006\170\006\171\006\177\006\173\006\174\0036\0037\0038\001\145\003|\002\165\006\167\002,\005V\b\222\000H\003:\003\191\000L\000\247\001\026\001!\bb\001\145\001\020\000\254\nV\002\212\b\t\002\212\003@\001\007\002\137\001*\001\t\001\145\nE\000\215\005\029\001#\b\192\000L\004\144\002\200\b<\001\162\b\003\005\029\004I\nQ\000L\nT\004\240\001%\002\006\003\195\b\193\b\195\b@\bA\004\193\005\003\006\170\006\171\006\172\006\173\006\174\001\021\007\166\003\196\001\022\bB\002\212\004\200\006\212\b\223\b\192\005Z\004\144\nW\004\194\006\213\002\007\000\\\0023\001\145\004g\001\145\004\181\001%\004\192\003\195\b\193\b\195\004\189\b~\005<\002\011\005\129\007\167\003\198\003\199\000\224\b\196\t\251\003\196\t2\005!\007\187\003@\006\214\006\216\006\217\006\218\006\219\b\247\005!\006\206\003H\005|\001\145\005g\004\204\n>\001\005\bW\bY\be\bc\001\n\bf\001\145\001\026\001!\004\127\002\132\003\198\003\199\001\145\b\196\001\145\005i\bg\002\134\005f\000\215\005g\001\020\000\254\003w\003=\b\002\001\003\001\020\b\b\007\236\001{\b\t\002\206\002\207\001\005\001\228\006\220\006\229\006\241\003\191\006\249\001\145\001\026\001!\b\217\007c\b\254\b<\002\231\b\143\t\220\000L\004\211\006\250\b=\b\198\004\193\001\145\b{\001\145\br\b@\bA\t\153\001\021\007d\b\199\001\022\003\187\007:\001\021\003H\001\219\001\022\bB\001%\004\194\001-\004[\004\\\002\212\007\188\004\245\007h\000\224\005h\002\012\003\006\001;\b\226\007j\001.\006\141\004\219\007|\006\142\t\205\b\136\b\192\001u\004\144\001\004\003w\003=\001\020\b\b\001\236\007l\b\t\003j\002\212\001%\007\189\003\195\b\193\b\195\006\147\002'\004\204\005w\002\030\002\r\001/\0012\b<\002\235\004\211\003\196\bW\bY\be\b=\b\198\bf\002\239\004\147\001\210\nW\b@\bA\007\191\b\228\001\145\b\199\005w\bg\001\005\001\021\006\165\005p\001\022\bB\007G\001\156\005B\001\145\001\020\000\254\003\198\003\199\b\t\b\196\003\191\006\206\001\145\001\026\001!\004\219\003\191\004[\004\\\001\026\001!\b\202\006\210\003r\b<\004[\004\\\005\132\000\243\002\006\001\005\b=\n)\b\163\002\253\002\254\b|\001\145\b@\bA\005\029\006\206\002'\000L\004\172\002\030\007H\001\021\003\030\n\003\001\022\bB\001\232\bW\bY\be\001\145\002\007\bf\004\150\001Y\000\254\007I\006\167\001\146\005\029\001{\002|\000L\001|\bg\005{\002\011\007N\001\145\b\192\b\218\004\144\002(\003\\\b\153\001\145\001%\003g\003\195\001\020\000\254\006\212\001%\006\211\003\195\b\193\b\195\003\191\006\213\002\247\001\026\001!\003\196\b\219\005\215\t\006\t\b\005\n\003\196\bW\bY\be\td\005!\bf\003\"\001\005\002,\006\170\006\171\006\179\006\173\006\174\006\209\004\229\001\146\bg\006\214\006\216\b\204\006\218\006\219\001\021\003\198\003\199\001\022\003\187\005\031\005!\003\198\003\199\001\145\b\196\002\192\004\232\001\145\004\233\005\211\000\\\003\191\b\188\000H\001\026\001!\000L\n\019\b\192\001\005\004\144\002(\001\145\001\130\002\200\001\005\003\200\bZ\002\205\005\202\001W\001%\001\145\003\195\b\193\b\195\000\\\000N\001\133\001\220\005\206\006\220\006\229\006\241\003g\006\249\002\212\003\196\004\234\bo\001\145\0025\004\244\002:\004\130\001W\004\211\001}\006\250\001\135\006\210\b\128\000L\003\030\b\128\t\249\002\133\b\209\004L\004\248\b\192\004\211\004\144\001\020\000\254\006\234\006\245\b\t\003\198\003\199\001\145\b\196\007\025\001%\001\145\003\195\b\193\b\195\002\r\n+\006\210\003e\003\191\b<\006\234\001\026\001!\004\219\007c\003\196\b=\tI\001\005\001\145\002\205\006M\002.\b@\bA\001\145\b\211\007\181\004\219\002\206\002\207\005\129\001\021\003\027\007d\001\022\bB\005\007\002\152\003f\007c\b\180\003[\004\133\001z\002\231\003\198\003\199\000L\b\196\b\138\002\205\007h\b\135\002\248\001{\003n\001|\001|\007j\007d\001\140\b{\007m\br\006\240\bt\005\r\001\145\004\144\001\005\001\228\002\006\007G\004[\004\\\007\204\001\145\007h\004P\001%\002\129\003\195\005\016\007A\007j\002\131\002\153\t\246\007k\bW\bY\be\by\0064\bf\003\196\005\021\b\244\005\024\002\007\005\025\007l\t\148\003g\002\206\002\207\bg\003g\004o\004t\002\205\000\215\001\020\000\254\002\011\004{\004\134\001\222\007H\004u\002\231\002\235\005\194\000L\002\236\006\188\003\198\003\199\n'\003\191\002\239\0021\001\026\001!\007I\002\206\002\207\001\145\b\000\003\027\002\154\001\233\004x\002\006\001\130\001\130\001\145\004\229\003X\001\145\001\005\002\231\001\145\007T\000L\001\021\t\149\004\161\001\022\003\187\001\133\001\134\001\129\001\145\b{\007\183\br\004\232\001\238\004\233\006\239\002\007\004[\004\\\004[\004\\\000\224\001\020\000\254\t\245\001\135\001\135\001\145\000L\000L\004*\002\011\t\233\b\192\006\239\004\144\b|\002\240\bw\001\145\002\206\002\207\002\235\002R\002\230\002\236\001%\006\193\003\195\b\193\b\195\002\239\0035\000\215\004\234\t]\002\231\004\229\004\244\000L\004\130\001W\003\196\006v\004 \001\021\000L\004T\001\022\003\187\001\239\003h\004\028\002\235\002>\004\248\002\236\004\232\001\244\004\233\b\160\001\145\002\239\001\145\001\232\002\189\t\240\001\138\001\145\0006\003\178\th\006\141\003\198\003\199\b{\b\196\br\003\191\003?\002\132\001\026\001!\001\145\001\228\002,\004\028\007N\002\134\002\r\001\248\001\140\001\140\002\240\002k\t\229\006\147\001\005\t_\004\234\004[\004\\\002\136\004\244\001\145\004\130\001W\005\007\006v\005\176\t\151\000L\0077\002\235\001\148\t\159\002\236\t\160\002\136\b|\004\248\002\212\002\239\001\145\002\240\bv\002I\br\006\165\006y\007\003\b{\006\192\br\002w\002\137\002\147\005\r\001\145\004\144\007a\002\212\002\212\003\191\ba\0006\001\026\001!\001\174\001\142\001%\002\137\003\195\005\016\001\145\001\231\001\147\0022\003g\006\026\002i\002\r\006z\t\197\001\145\006\129\003\196\005\021\t/\005\024\007\223\005\025\005\007\001\020\000\254\006\161\006\021\b\t\006\188\001\020\000\254\002\006\000\\\b\t\002\240\002\148\004[\004\\\004\211\002'\bT\006\131\002\030\b<\006y\006\167\001\145\003\198\003\199\b<\b=\b?\005\r\003'\004\144\b|\b\191\b@\bA\002\007\003,\005\188\b\130\b@\bA\001%\001\021\003\195\005\016\001\022\bB\001\005\001\021\001\145\002\011\001\022\bB\006z\004\161\004\219\006\129\003\196\005\021\005\022\005\024\002|\005\025\007\018\002*\002\149\006\198\007>\004[\004\\\007\130\005\220\006\170\006\176\007S\t\183\001\145\007\004\bX\001\232\000L\0078\006\131\001\145\001\145\006\200\007\198\b|\003\198\003\199\006\188\007\254\003\179\002\006\007\187\001\145\007c\000\183\007i\000\185\bW\bY\be\004W\001\250\bf\bW\bY\be\001\020\000\254\bf\001\005\006\224\005\211\b\128\007d\bg\003=\004\161\002\164\002\007\004\211\bg\007b\002\165\001\145\007\185\002(\001\020\000\254\b\146\001\145\001\145\007h\001\189\002\011\005\202\002\130\006v\003\191\007j\000L\001\026\001!\007q\003\191\004[\004\\\001\026\001!\0008\001\021\002\006\004\219\001\022\003\187\002R\007l\002,\004g\001\239\b\172\004\219\004^\002G\b\133\006\191\004\189\001\244\b\183\001 \001\021\001\005\0024\001\022\003\187\001\145\004\131\002&\0010\002\007\002\030\004`\007\019\004\239\006\192\000L\b\132\007\n\b{\001\145\br\007\188\002k\001z\002\011\007\253\002\165\b\192\002\r\004\144\002\136\006\212\004\027\b\192\001{\004\144\006R\001|\006\213\001\145\001%\001W\003\195\b\193\b\195\003L\001%\006V\003\195\b\193\b\195\001\190\007\189\006y\004b\000\166\003\196\004\133\004k\0020\004\130\000H\003\196\002\137\000L\001\145\001\145\006\214\006\216\007J\006\218\006\219\000\186\000H\004\028\004\136\000L\b\207\003\191\002O\007\199\001\026\001!\0011\004\193\000T\006z\003\198\003\199\006\129\b\196\001\145\001\145\003\198\003\199\001\145\b\196\000R\003\191\006\130\006\192\001\026\001!\b\002\004\194\002\181\002,\005\007\001\020\000\254\006v\001\005\b\t\000L\002\r\006\131\001\145\001\005\001\145\006\220\006\229\006\241\002a\006\249\001\145\001\130\001\145\t\228\b<\004[\004\\\004\134\002\169\001\020\000\254\b\194\007K\b\208\000\215\002Y\001\133\001\134\b@\bA\000\253\000\254\004\204\b\128\b|\002 \001%\001\021\003\195\t\196\001\022\bB\000\189\004\141\001\145\004\144\001\145\001\135\001\145\002w\000L\t\227\003\196\005\021\004^\t\235\001%\005\n\003\195\004\153\002\r\000\215\001\021\000\217\0026\001\022\003\187\006v\002\161\001\145\000L\006W\003\196\004`\t\230\004\140\t+\004\158\b\139\001\145\004[\004\\\006y\003\198\003\199\001\145\004g\b]\004\181\000\224\t\254\002\168\004[\004\\\004\189\bW\bY\be\002$\bp\bf\002\030\006\028\003\198\003\199\003 \b\134\001\005\001\138\003g\001\145\b\127\bg\0006\003\200\006z\004b\bq\006\129\br\004k\007G\004\130\001\020\000\254\002\170\000\219\001\005\006\198\b\186\003\030\004\211\001\005\001\140\004\161\003\191\006\202\004\136\001\026\001!\004g\007N\004h\002\"\006\131\002#\002\030\006\200\004\189\002\185\0063\002\027\007\140\006y\006\183\001\148\007L\t\152\004^\000\226\003\191\002|\t\154\001\026\001!\001\145\001\021\007H\tV\001\022\003\187\t,\004\219\004\211\001\026\001!\006\184\004`\007E\005\027\002\205\000L\004\193\007I\002\029\t\192\006z\002\030\005\225\006\129\001\142\007\003\007\018\003\"\b\192\001\145\004\144\001\147\b\128\006\182\002u\002\127\004\194\0064\001\020\000\254\001\145\001%\001\145\003\195\b\193\b\195\000\215\003\n\004\219\006\131\b{\n\002\br\004\141\004b\004\144\001\145\003\196\004k\005J\004\130\002}\004Z\001\020\000\254\005\211\001%\007\141\003\195\004\153\004\193\005\202\002|\004^\bz\004\136\br\001%\004\204\tE\t\184\001\021\003\196\000L\001\022\003\187\000\\\004\158\003\198\003\199\004\194\b\196\004`\tF\004\129\002%\002z\006!\003\191\002\206\002\207\001\026\001!\003\027\002\186\b\137\001\021\000L\001\145\001\022\003\187\000\224\001\005\003\198\003\199\002\231\t\152\002\006\000L\001\145\001{\t\154\000=\001|\tG\tH\001\145\000\207\n!\007T\001\213\t\155\004\204\002'\002\170\004b\002\030\001\005\006M\004k\0072\004\130\001\020\000\254\004\161\002\007\b\140\b\154\001\005\000L\000L\007T\bx\001\145\br\n\011\004\136\004\141\001\145\004\144\002\011\004[\004\\\tv\001\227\0006\t\156\001\020\000\254\001\145\001%\001\135\003\195\004\153\000L\t\158\007\022\004^\006\254\003\191\b|\t9\001\026\001!\000\188\001\021\003\196\006\194\001\022\003\187\006M\004\158\002\235\0064\001\145\002\236\004`\006\227\004a\006\233\t\133\002\239\004^\000\205\003\191\001\145\002\157\001\026\001!\t\178\001\021\001\130\006G\001\022\003\187\006\194\006\252\003\198\003\199\000`\000\\\004`\001\234\004\243\t\190\001\145\001\133\001\220\001\221\004g\007\014\tK\005\202\005\007\001\020\000\254\007\141\004\189\004\141\004b\004\144\001\005\006\227\004k\006\228\004\130\002(\001\135\004\161\001\145\000L\001%\007%\003\195\004\153\002\171\t\157\005\202\000L\007\251\004\136\007\028\005\202\002\240\004b\0064\002|\003\196\004k\004^\004\130\006\227\004\158\006\230\002\006\002^\001%\001\021\003\195\006\244\001\022\003\187\000L\003\191\t\140\004\136\001\026\001!\004`\002t\004\252\t\156\003\196\005\021\001\145\n%\007T\005\n\003\198\003\199\t\158\006M\002\007\002\253\007#\007\007\006\194\007\017\003\191\001\145\002\r\001\026\001!\002\006\t\189\007,\001{\002\011\006\194\001|\007\011\007\218\001\005\003\198\003\199\004\193\001\213\001\145\006\149\004\161\006\227\004b\007@\001\140\006\026\004k\007T\004\130\001\020\000\254\006\022\002\007\004\141\007\250\004\144\004\194\002|\001\005\002|\007\168\006R\006c\004\136\007`\003\200\001%\002\011\003\195\004\153\tq\001\227\006Y\006A\001\020\000\254\000Q\000\\\004\141\000L\004\144\007\182\003\196\006+\004^\000\194\003\191\004\158\002\200\001\026\001!\001%\001\021\003\195\004\153\001\022\003\187\002\200\004\204\002u\002{\001\222\001\235\004`\007T\004\178\001\223\003\196\006\029\004^\004\r\002|\004\158\003\198\003\199\003&\006\187\001\021\001\130\002'\001\022\003\187\002\030\004\028\000\189\002\253\005\253\007\190\004`\001\234\004\231\007\179\0009\001\133\001\220\001\221\005\246\001\005\003\198\003\199\007T\001\020\000\254\002`\004\161\004\141\004b\004\144\000\169\001\018\004k\002\200\004\130\002'\001\135\002\212\002\030\000L\001%\007T\003\195\004\153\001\005\007\168\0035\007c\006d\004\136\006\190\004\161\002|\004b\002\212\004\028\003\196\004k\004^\004\130\002\r\004\158\bk\006\205\002\\\006\031\001\021\007d\002|\001\022\003\187\006d\003\191\002\212\004\136\001\026\001!\004`\002\197\005\015\002\200\007\244\0036\0037\0038\007h\003D\003\198\003\199\007T\002\200\006\208\007j\003:\002\174\002\226\007\216\003\191\000L\002\r\001\026\001!\005\210\bi\003&\004g\002\215\005\000\003&\007l\004\169\001\005\007\184\004\189\002(\003E\003\168\002\200\004\161\003N\004b\007\233\001\140\005\173\004k\002\216\004\130\001\020\000\254\b\157\004g\004\141\004\205\004\144\t\191\t\173\002\212\002|\004\189\006\026\003\153\004\136\005\146\002\200\001%\005\211\003\195\004\153\002(\001W\003\145\b\150\001\020\000\254\002\253\b\169\004\141\003\158\004\144\005\235\003\196\006\185\004^\000s\003\191\004\158\005\202\001\026\001!\001%\001\021\003\195\004\153\001\022\003\187\007\001\t\180\001\145\007\227\001\222\001\235\004`\0079\004\160\001\223\003\196\003@\004^\004=\t\174\004\158\003\198\003\199\005E\006\203\001\021\004\175\002'\001\022\003\187\002\030\004\193\003u\002\200\001\019\005]\004`\b\147\004j\002\177\004\168\001\145\t\001\003\175\007\240\001\005\003\198\003\199\002\212\001\020\000\254\004\194\004\161\004\141\004b\004\144\004\193\t\187\004k\t<\004\130\t\194\002|\007\249\005\238\004g\001%\004\208\003\195\004\153\001\005\000\163\0035\004\189\000L\004\136\004\194\004\161\t\175\004b\005J\003\174\003\196\004k\004^\004\130\003\154\004\158\001a\004g\t\170\004\213\001\021\004\204\002|\001\022\003\187\004\189\003\191\005J\004\136\001\026\001!\004`\003H\004\143\004\216\004\217\0036\0037\0038\007\245\003D\003\198\003\199\005\202\005J\005W\004\204\003:\004\216\004\218\005\202\003\191\000\\\002|\001\026\001!\005\202\002|\0034\004\184\002\006\001^\000\\\003I\003=\001\005\004\185\003\128\002(\003E\003\168\003+\004\161\003N\004b\t\127\t\151\0032\004k\002|\004\130\001\020\000\254\t\176\002\136\004\141\004\206\004\144\002\007\004\193\004\207\001\151\004%\002\200\003S\004\136\t\136\t\138\001%\t\131\003\195\004\153\003*\002\011\002|\tz\001\020\000\254\ty\004\194\004\141\001\160\004\144\004\193\003\196\001\158\004^\002\137\003\191\004\158\001\145\001\026\001!\001%\001\021\003\195\004\153\001\022\003\187\0027\t|\001\145\003$\004\194\004\028\004`\003\131\004\223\tW\003\196\003@\004^\tQ\003\025\004\158\003\198\003\199\t=\004@\001\021\004\253\004\204\001\022\003\187\t(\002|\005\012\t\030\004\162\002|\004`\005\011\005\006\003\002\001\002\002\178\005&\004!\006\026\001\005\003\198\003\199\002\250\001\020\000\254\004\204\004\161\004\141\004b\004\144\b\215\b\230\004k\001\191\004\130\000\138\002|\0059\002\234\004g\001%\004\221\003\195\004\153\001\005\000x\0035\004\189\b\175\004\136\001\196\004\161\005H\004b\005G\003\174\003\196\004k\004^\004\130\b\168\004\158\005Q\004g\b\162\005\247\001\021\b\159\002V\001\022\003\187\004\189\003\191\005`\004\136\001\026\001!\004`\003H\t\029\b\148\002\220\0036\0037\0038\005e\003D\003\198\003\199\002\218\004'\001\206\001\208\003:\005s\005v\005z\003\191\005y\005\131\001\026\001!\005\138\002\r\005\137\005\140\002\006\001\218\b`\003I\003=\001\005\005\155\005\145\005\149\003E\003\168\005\151\004\161\003N\004b\002\203\002\198\bP\004k\000\237\004\130\001\020\000\254\000\162\004g\004\141\006\019\004\144\002\007\004\193\005\169\002\196\004\189\002\191\003S\004\136\000\164\005\186\001%\002\183\003\195\004\153\005\198\002\011\005\207\001\240\001\020\000\254\002\179\004\194\004\141\005\214\004\144\004\193\003\196\005\217\004^\005\222\003\191\004\158\005\224\001\026\001!\001%\001\021\003\195\004\153\001\022\003\187\001\251\007\247\005\236\007\242\004\194\007\238\004`\005\245\t\026\007\229\003\196\003@\004^\007\225\005\251\004\158\003\198\003\199\002\002\002\163\001\021\002\155\004\204\001\022\003\187\002\150\007\196\000\174\002\n\007\192\006\030\004`\006&\004\224\007\176\006,\007\163\0062\004&\007\161\001\005\003\198\003\199\007\133\001\020\000\254\004\204\004\161\004\141\004b\004\144\004\193\000\178\004k\007\154\004\130\007\147\007\134\006B\006I\004g\001%\b\164\003\195\004\153\001\005\007x\0035\004\189\007\127\004\136\004\194\004\161\006\\\004b\002\028\003\174\003\196\004k\004^\004\130\006U\004\158\006T\004g\006Z\005\004\001\021\000\182\002\023\001\022\003\187\004\189\003\191\006`\004\136\001\026\001!\004`\003H\004\247\006j\000\210\0036\0037\0038\006o\003D\003\198\003\199\006\128\006}\002+\004\204\003:\007=\000\190\002/\003\191\006\144\006\145\001\026\001!\006\164\002\r\006\151\007&\002\006\006\156\007\029\003I\003=\001\005\006\169\007\012\007\t\003E\003\168\000B\004\161\003N\004b\n\b\002C\006\248\004k\006\196\004\130\001\020\000\254\006\236\004g\004\141\004\241\004\144\002\007\004\193\006\222\006\232\004\189\007\000\003S\004\136\007\016\007\024\001%\007 \003\195\004\153\0074\002\011\007\027\002q\001\020\000\254\007^\004\194\004\141\007-\004\144\004\193\003\196\007s\004^\007\150\003\191\004\158\tZ\001\026\001!\001%\001\021\003\195\004\153\001\022\003\187\007\217\006b\002!\000\225\004\194\b\\\004`\000\221\005\020\bm\003\196\003@\004^\b\145\b\152\004\158\003\198\003\199\000\248\005\252\001\021\005\237\004\204\001\022\003\187\002\167\005\219\002\176\tl\001\217\t{\004`\005\154\004\157\005\152\005\135\005o\005l\007w\005t\001\005\003\198\003\199\005\\\001\020\000\254\004\204\004\161\004\141\004b\004\144\004\193\002\244\004k\b\167\004\130\000\252\b\232\000f\003z\004g\001%\004\237\003\195\004\153\001\005\003\127\0035\004\189\005\030\004\136\004\194\004\161\t\031\004b\t\002\003\174\003\196\004k\004^\004\130\003\172\004\158\003\021\004g\003\176\004\203\001\021\005\156\002\021\001\022\003\187\004\189\003\191\t`\004\136\001\026\001!\004`\003H\005\002\tm\004\201\0036\0037\0038\004\195\003D\003\198\003\199\004\015\t\182\t\248\004\204\003:\004\024\004\031\004\"\003\191\004$\001d\001\026\001!\004)\002\r\004/\004.\004\163\004\135\004<\003I\003=\001\005\t\232\t!\t\241\003E\003M\000\000\004\161\003N\004b\000\000\000\000\000\000\004k\000\000\004\130\001\020\000\254\000\000\004g\004\141\n\000\004\144\000\000\004\193\000\000\000\000\004\189\000\000\003S\004\136\000\000\000\000\001%\000\000\003\195\004\153\000\000\001W\000\000\000\000\001\020\000\254\000\000\004\194\004\141\000\000\004\144\004\193\003\196\000\000\004^\000\000\003\191\004\158\000\000\001\026\001!\001%\001\021\003\195\004\153\001\022\003\187\000\000\000\000\000\000\000\000\004\194\000\000\004`\000\000\004\210\000\000\003\196\003@\004^\000\000\000\000\004\158\003\198\003\199\000\000\000\000\001\021\000\000\004\204\001\022\003\187\000\000\000\000\000\000\000\000\000\000\003y\004`\000\000\004\225\000\000\000\000\000\000\000\000\000\000\000\000\001\005\003\198\003\199\000\000\001\020\000\254\004\204\004\161\004\141\004b\004\144\004\193\000\000\004k\000\000\004\130\000\253\000\254\000\000\000\000\004g\001%\004\176\003\195\004\153\001\005\000\000\0035\004\189\000\000\004\136\004\194\004\161\000\000\004b\000\000\000\000\003\196\004k\004^\004\130\000\000\004\158\000\000\002\006\000\000\000\000\001\021\000\000\000\000\001\022\003\187\000\000\003\191\000\000\004\136\001\026\001!\005\017\003H\t\237\000\000\t+\0036\0037\0038\000\000\003D\003\198\003\199\000\000\000\000\002\007\004\204\003:\000\\\000\000\000\000\003\191\000\000\000\000\001\026\001!\001{\000\000\000\000\001|\002\011\000\000\000\000\003I\003=\001\005\000\000\000\000\000\000\003E\003\168\000\000\004\161\003N\004b\000\000\000\000\000\000\004k\000\000\004\130\001\020\000\254\000\000\000\000\004\141\000\000\004\144\000\000\004\193\000\000\000\000\000\000\000\000\003S\004\136\000\000\000\000\001%\000\000\003\195\004\153\000\000\000\000\000\000\000\000\001z\000\000\000\\\004\194\004\141\000\000\004\144\000\000\003\196\000\000\004^\001{\003\191\004\158\001|\001\026\001!\001%\001\021\003\195\004\153\001\022\003\187\002\006\t,\000\000\000\000\001\026\001!\004\154\007c\000\000\001z\003\196\003@\000\000\000\000\000\000\004\158\003\198\003\199\001\130\002b\001{\000\000\004\204\001|\000\000\000\000\000\000\007d\002\007\001\146\000\000\000\000\000\000\001\133\001\220\001\224\t\162\000\\\007\224\000\000\001\005\003\198\003\199\002\011\000\000\007h\002T\004\161\004\141\004b\004\144\000\000\007j\004k\001\135\004\130\007\162\000L\000\000\000\000\000\000\001%\000\000\003\195\000\000\001\005\000\000\007c\002c\007l\004\136\000\000\004\161\001%\000\000\tE\003\174\003\196\000\000\001\130\000\000\002\r\005\018\000\000\000\000\000\000\000\000\007d\000\000\tF\t\163\000\000\000\\\003\191\001\133\001\134\001\026\001!\000\000\003H\000\000\000\000\000\000\001z\000\000\007h\002\006\000\000\003\198\003\199\000\000\001\130\007j\002\139\001{\001\135\007v\001|\000L\000\000\tG\tH\002d\000\000\000\000\007c\001\133\001\134\002\006\007l\003I\003=\001\005\000\000\002\007\000\000\000\000\000\000\000\000\004\161\001\140\000\000\000\000\000\000\001\005\007d\000\000\001\135\000\000\002\011\000L\002\006\004\141\000\000\004\144\001z\002\007\000\000\002\015\000\000\000\000\003S\002\140\007h\000\000\001%\001{\003\195\000\000\001|\007j\002\011\000\000\000\000\007{\007\130\001\138\000\000\007\131\002\007\007c\003\196\000\000\000\000\000\000\000\000\004\155\007l\000\000\000\000\000\000\007\136\007\137\002\r\002\011\000\000\000\000\001\222\000\000\007\138\007d\001\140\001\223\000\000\000\000\001\130\000\000\000\000\001\138\000\000\000\000\000\000\003\198\003\199\001\253\000\000\002\141\000\000\007h\t\151\001\133\001\134\000\\\001\148\t\165\007j\t\177\002\136\000\000\007m\000\000\000\000\007\185\001\140\000\000\000\000\001\005\000\000\000\000\000\000\000\000\001\135\007l\004\161\000L\000\000\000\000\000\000\000\000\000\000\000\000\002k\000\000\000\000\000\000\001\148\002\135\001\130\001\142\002\136\002\137\000\000\007\193\001\145\002L\001\147\000\000\000\000\001\131\000\000\000\000\000\000\001\133\001\134\000\000\000\000\000\000\001\020\000\254\000\000\000\000\007\200\000\000\004\144\007\130\000\000\002\018\007\131\000\000\000\000\001\142\000\000\002\137\t\142\000\000\001\145\000L\001\147\007\188\002\r\007\136\007\137\001\138\000\000\000\000\000\000\000\000\000\000\007\138\002\025\007c\000\000\006v\000\000\000\000\000L\000\000\000T\000\000\000\000\001\021\002\r\001\255\001\022\003\187\000\000\000\000\001\140\000\000\007\189\007d\000\\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\185\000\000\000\000\002\r\002k\000\000\000\000\007h\001\148\002\143\000\000\000\000\002\136\001\138\007j\000\000\007\199\007\206\007\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\020\000\254\007\193\007\204\000\000\000\000\000\000\000\000\000\000\000\000\001\140\000\000\001W\000\000\000\000\001\142\000\000\002\137\000\000\000\000\001\145\007\200\001\147\004\144\007\130\000\000\000\000\007\131\000\000\006y\000\000\000\000\001\148\002\003\000\000\000\000\000\000\002\004\007\188\000\000\007\136\007\137\000\000\001\021\000\000\000\000\001\022\003\187\007\138\003\191\007c\000\000\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006z\000\000\000\000\006\129\000\000\001\142\000\000\007\189\007d\000\\\001\145\000\000\001\147\006\198\000\000\0035\005\007\001\020\000\254\007\185\000\000\007\211\000\000\000\000\000\000\000\000\007h\000\000\000\000\006\131\000\000\000\000\006\200\007j\000\000\007\199\007\202\007\203\000\000\000\000\000\000\007\130\001W\000\000\007\131\000\000\000\000\000\000\000\000\007\193\007\204\0036\0037\0038\000\000\003D\000\000\007\136\007\137\001%\001\021\003\195\003:\001\022\003\187\007\138\001\020\000\254\007\200\000\000\004\144\000\000\000\000\000\000\000\000\003\196\005\021\000\000\t\217\003\191\005\n\000\000\001\026\001!\003T\007\188\000\000\0035\000\\\000\000\000\000\000\000\006R\000\000\000\000\000\000\000\000\007c\007\185\000\000\000\000\000\000\000\000\006V\002\205\000\000\003\198\003\199\005\007\001\021\000\000\000\000\001\022\003\187\000\000\000\000\007\189\007d\000\000\000\000\000\000\000\000\000\000\0036\0037\0038\000\000\003D\007\193\000\000\001\005\000\000\000\000\000\000\003:\007h\000\000\003\200\000\000\001\020\000\254\003\026\007j\000\000\007\199\007\213\007\203\007\200\000\000\004\144\000\000\001%\000\000\003\195\000\000\003@\003E\003\168\003\191\007\204\003N\001\026\001!\000\000\007\188\000\000\000\000\003\196\005\021\000\000\006\n\000\000\005\n\000\000\000\000\000\000\007c\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\022\003\187\005\007\000\000\002\206\002\207\000\000\000\000\003\027\000\000\007\189\007d\000\000\003\198\003\199\000\000\000\000\000\000\000\000\001z\002\231\000\000\003\191\000L\000\000\001\026\001!\000\000\000\000\007h\001{\000\000\001z\001|\000\000\000\000\007j\001\005\007\199\007\205\007\203\000\000\003@\001{\003\200\001%\001|\003\195\000\000\000\000\000\000\005\007\000\000\007\204\000\000\000\000\007\228\000\000\003H\000\000\000\000\003\196\005\021\000\000\005>\000\000\005\n\000\000\000\000\007\246\002\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\183\000\000\000\000\000\000\000\000\000\000\000\000\003I\003=\001\253\003\198\003\199\001%\003\191\003\195\002\235\001\026\001!\002\236\000\000\000\000\001z\000\000\000\000\002\239\003\174\000\000\000\000\003\196\005\021\000\000\b\250\001{\005\n\001\005\001|\000\000\000\000\003S\001\130\000\000\003\200\005\007\000\000\000\000\000\000\000\000\000\000\003H\001\166\001\131\000\000\001\130\000\000\001\133\001\134\000\000\000\000\000\000\003\198\003\199\000\000\000\000\001\131\000\000\000\000\000\000\001\133\001\134\000\000\000\000\000\000\000\000\002\206\002\207\001\135\000\000\004w\000L\003I\003=\000\000\001\153\001\005\000\000\001%\002\240\003\195\001\135\002\231\003\200\000L\000L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\196\005\021\000\000\t5\000\000\005\n\000\000\000\000\002\205\003S\000\000\000\000\000\000\000\000\001z\000\000\001\255\000\000\000\000\000\000\000\000\000\000\001\130\000\000\000\000\001{\000\000\000\000\001|\000\000\000\000\003\198\003\199\001\131\000\000\001\138\000\000\001\133\001\134\000\000\001z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\001{\001z\000\000\001|\001\005\000\000\000\000\001\135\000\000\001\140\000L\003\200\001{\000\000\002\235\001|\000\000\002\236\001{\000\000\000\000\001|\001\140\002\239\000\000\000\000\006r\000\000\000\000\000\000\000\000\001\148\001\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\206\002\207\001\148\002\003\004o\004}\000\000\002\004\002?\001\020\000\254\000\000\000\000\000\000\000\000\004u\002\231\000\000\000\000\000L\000\000\000\000\001\186\001\130\001\142\006v\001\154\000\000\000L\001\145\000\000\001\147\000\000\001\166\001\131\000\000\000\000\001\142\001\133\001\134\000\000\000\000\001\145\002\240\001\147\000\000\000\000\000\000\000\000\001\130\000\000\001\140\001\021\000\000\000\000\001\022\003\187\000\000\000\000\001\135\001\131\001\130\000L\000\000\001\133\001\134\000\000\001\130\000\000\000\000\000\000\001\166\001\131\001\148\001\152\000\000\001\133\001\134\001z\000\000\000\000\000\000\001\133\001\220\001\224\001\135\000\000\000\000\000L\001{\0035\000\000\001|\002\235\000\000\000\000\002\236\001\135\000\000\000\000\000L\t\135\002\239\001\135\000\000\000\000\000L\000\000\001\142\000\000\000\000\006y\000\000\001\145\000\000\001\147\000\000\001\159\000\000\000\000\001\138\000\000\000\000\000\000\001z\000\000\0036\0037\0038\000\000\003D\000\000\000\000\000\000\000\000\001{\000\000\003:\001|\000\000\000\000\006m\000\000\000\000\006z\001\140\001\138\006\129\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\006\198\001\138\003E\003\168\000\000\000\000\003N\002\240\006\199\000\000\001\148\001\169\000\000\001z\001\140\000\000\006\131\000\000\000\000\006\200\000\000\000\000\000\000\001\130\001{\000\000\001\140\001|\000\000\000\000\006\154\000\000\001\140\001\166\001\131\000\000\001\148\001\152\001\133\001\134\001z\000\000\000\000\000\000\000\000\001\142\000\000\000\000\001\148\001\169\001\145\001{\001\147\000\000\001|\000\000\000\000\000\000\000\000\001\135\b\231\000\000\000L\000\000\000\000\001%\000\000\003\195\000\000\001\130\000\000\001\142\000\000\003@\001\153\000\000\001\145\000\000\001\147\001\166\001\131\003\196\b\225\001\142\001\133\001\134\005\n\000\000\001\145\001\222\001\147\000\000\001{\001z\005\194\001|\000\000\000\000\000\000\000\000\005\216\000\000\000\000\001\243\001{\001\135\000\000\001|\000L\000\000\000\000\000\000\003\198\003\199\000\000\001\130\000\000\000\000\000\000\000\000\001\138\000\000\000\000\000\000\000\000\000\000\001\131\000\000\000\000\000\000\001\133\001\134\000\000\000\000\000\000\000\000\001\005\000\000\003\174\001\020\000\254\000\000\001\130\003\200\000\000\001\140\000\000\000\000\000\000\000\000\000\000\001\135\001\166\001\131\000L\000\000\006\159\001\133\001\134\001z\000\000\003H\000\000\000\000\000\000\000\000\001\138\001\148\001\169\000\000\001{\000\000\000\000\001|\000\000\000\000\000\000\000\000\001\135\000\000\000\000\000L\001\021\001\130\000\000\001\022\003\187\000\000\000\000\000\000\000\000\001\140\003I\003=\000\000\001\130\000\000\000\000\001\133\001\220\005\191\000\000\001\142\000\000\000\000\001\166\001\131\001\145\000\000\001\147\001\133\001\134\001\154\001\148\001\169\000\000\000\000\000\000\001z\001\135\002?\000\000\000L\003S\000\000\000\000\000\000\000\000\000\000\001{\000\000\001\135\001|\002\205\000L\000\000\000\000\001\140\000\000\001\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\142\000\000\000\000\000\000\000\000\001\145\000\000\001\147\002\205\000\000\000\000\001\148\001\152\001\130\000\000\000\000\001\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\131\000\000\001z\000\000\001\133\001\134\000\000\000\000\003\191\007(\000\000\001\026\001!\001{\001\148\001\169\001|\000\000\000\000\000\000\001\138\tN\001\142\001{\000\000\001\135\001|\001\145\000L\001\147\000\000\001\155\000\000\001\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\130\000\000\000\000\000\000\001\140\002\206\002\207\001\130\001\142\004o\004p\000\000\000\000\001\145\000\000\001\147\000\000\001\166\001\131\000\000\004u\002\231\001\133\001\134\000L\000\000\001\148\001\169\002\206\002\207\000\000\000\000\003\027\000\000\b\224\000\000\000\000\001z\000\000\001%\000\000\003\195\000\000\001\135\002\231\001\138\000L\000L\001{\001\222\000\000\001|\000\000\000\000\005\194\003\196\b\225\000\000\000\000\000\000\005\n\001\142\000\000\001\130\000\000\000\000\001\145\000\000\001\147\000\000\001\140\000\000\000\000\001\130\001\131\000\000\000\000\000\000\001\133\001\134\000\000\000\000\000\000\000\000\000\000\000\000\003\198\003\199\001\133\001\220\006:\000\000\001\148\001\152\000\000\000\000\000\000\001z\002\235\001\135\001\172\002\236\000L\000\000\001\138\000\000\000\000\002\239\001{\001\135\001\005\001|\000L\000\000\000\000\000\000\000\000\003\200\000\000\000\000\000\000\002\235\000\000\000\000\002\236\000\000\000\000\001\142\006|\001\140\002\239\000\000\001\145\000\000\001\147\000\000\000\000\000\000\000\000\001\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\166\001\131\001\148\001\169\000\000\001\133\001\134\001z\000\000\002?\000\000\001\138\000\000\000\000\000\000\000\000\000\000\000\000\001{\001z\002\240\001|\000\000\000\000\000\000\000\000\001\135\000\000\000\000\000L\001{\000\000\000\000\001|\000\000\000\000\001\140\001\142\000\000\000\000\000\000\000\000\001\145\002\240\001\147\000\000\001\140\000\000\000\000\000\000\001\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\002\003\000\000\001\131\000\000\000\000\000\000\001\133\001\134\000\000\002?\000\000\000\000\000\000\000\000\006~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\165\000\000\000\000\000\000\001\135\001\138\000\000\000L\000\000\000\000\000\000\001\142\000\000\000\000\000\000\000\000\001\145\001z\001\147\000\000\t~\001\222\000\000\000\000\000\000\000\000\005\194\001\130\001{\000\000\001\140\001|\000\000\000\000\000\000\000\000\000\000\000\000\001\131\001\130\000\000\000\000\001\133\001\134\000\000\000\000\000\000\000\000\000\000\001\166\001\131\000\000\001\148\001\169\001\133\001\134\000\000\000\000\000\000\000\000\000\000\000\000\001z\001\135\000\000\001\138\000L\000\000\000\000\000\000\000\000\000\000\000\000\001{\000\000\001\135\001|\000\000\000L\002@\007\172\000\000\000\000\000\000\000\000\000\000\000\000\001\142\000\000\000\000\001\140\000\000\001\145\000\000\001\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\000\000\000\000\001\020\000\254\001\148\001\152\000\000\000\000\000\000\000\000\000\000\001\130\000\000\000\000\000\000\000\000\001\138\001\247\000\000\001z\000\000\001\166\001\131\000\000\000\000\000\000\001\133\001\134\001\138\000\000\001{\000\000\000\000\001|\000\000\b\206\000\000\000\000\000\000\001\142\000\000\001\140\000\000\000\000\001\145\001\021\001\147\001\135\001\022\003\187\000L\000\000\000\000\001\140\000\000\000\000\001\130\000\000\000\000\000\000\000\000\001\006\000\254\001\148\001\152\000\000\001\166\001\131\000\000\000\000\000\000\001\133\001\134\000\000\000\000\001\148\001\169\000\000\000\000\000\000\002\205\000\000\007\180\002\206\002\207\000\000\001z\003\027\000\000\000\000\000\000\000\000\001\135\000\000\000\000\000L\000\000\001{\001\142\002\231\001|\000\000\000L\001\145\001\007\001\147\001*\001\t\001\138\000\000\001\142\000\000\001\132\000\000\000\000\001\145\000\000\001\147\000\000\000\000\000\000\001\130\000\000\001{\000\000\000\000\001|\001\020\000\254\000\000\000\000\001\166\001\131\001\140\000\000\000\000\001\133\001\134\000\000\000\000\000\000\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\003\004\000\000\000\000\000\000\001\138\000\000\001\148\001\169\001\135\000\000\000\000\000L\000\000\000\000\000\000\000\000\002\206\002\207\000\000\000\000\002\243\001\021\t\150\tP\001\022\003\187\000\000\002\235\000\000\001\140\002\236\000\000\002\231\000\000\000\000\000L\002\239\000\000\000\000\001\130\000\000\001\142\000\000\000\000\000\000\000\000\001\145\000\000\001\147\001\166\001\131\001\148\001\169\001\n\001\133\001\134\001\026\001!\000\000\007;\007?\007B\000\000\000\000\000\000\001\130\001%\000\000\003\195\001\138\000\000\000\000\000\000\000\000\000\000\001\135\000\000\000\000\000L\000\000\001\133\001\134\003\196\005\021\000\000\000\000\001\142\005\n\001z\000\000\000\000\001\145\000\000\001\147\001\140\000\000\001\020\000\254\002\240\001{\b\236\001\135\001|\000\000\000L\000\000\000\000\000\000\000\000\002\235\000\000\000\000\002\236\003\198\003\199\001z\001\148\001\169\002\239\003\191\000\000\000\000\001\026\001!\000\000\001%\001{\001-\000\000\001|\000\000\001\020\000\254\000\000\000\000\000\000\001\138\001\005\000\000\001\021\000\000\001.\001\022\003\187\003\200\000\000\000\000\000\000\000\000\000\000\000\000\001\142\000\000\000\000\000\000\000\000\001\145\000\000\001\147\000\000\000\000\001\140\001\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001/\0012\001\021\007F\n\004\001\022\003\187\000\000\002\240\000\000\000\000\001\148\001\169\000\000\000\000\001\140\000\000\000\000\001\130\001%\000\000\003\195\000\000\000\000\001\005\000\000\000\000\000\000\000\000\001\131\000\000\000\000\000\000\001\133\001\134\003\196\n\015\000\000\000\000\000\000\005\n\000\000\001\020\000\254\000\000\001\130\001\142\000\000\000\000\000\000\000\000\001\145\000\000\001\147\001\135\000\000\001\131\000L\000\000\000\000\001\133\001\134\001z\000\000\000\000\003\191\003\198\003\199\001\026\001!\000\000\000\000\001\142\001{\000\000\000\000\001|\000\000\000\000\001\147\000\000\001\135\000\000\000\000\000L\001\021\000\000\000\000\001\022\003\187\001\005\000\000\000\000\000\000\001z\005\185\000\000\003\200\000\000\000\000\003\191\001\020\000\254\001\026\001!\001{\000\000\000\000\001|\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001~\000\000\000\000\000\000\000\000\000\000\000\000\0056\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\003\195\001\140\000\000\001\138\000\000\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\000\000\003\196\000\000\002B\000\000\000\000\005;\000\000\000\000\000\000\001\148\006\135\001\130\000\000\000\000\001\140\000\000\007\165\000\000\000\000\001%\000\000\003\195\001\131\000\000\000\000\000\000\001\133\001\134\000\000\000\000\003\191\003\198\003\199\001\026\001!\003\196\001\148\001\152\000\000\000\000\005;\000\000\000\000\001\130\001\142\000\000\000\000\001\135\000\000\001\145\000L\001\147\000\000\000\000\001\131\001\005\000\000\000\000\001\133\001\134\001\020\000\254\003\200\000\000\000\000\000\000\003\198\003\199\000\000\000\000\000\000\001\142\000\000\000\000\000\000\000\000\001\145\000\000\001\147\001\135\000\000\000\000\000L\000\000\000\000\000\000\000\000\000\000\000\000\003\191\001\005\000\000\001\026\001!\000\000\000\000\000\000\003\200\000\000\000\000\001z\000\000\001%\001\021\003\195\000\000\001\022\003\187\001\138\000\000\000\000\001{\000\000\000\000\001|\000\000\000\000\000\000\003\196\005\t\000\000\000\000\000\000\005\n\001\020\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\140\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\001z\000\000\000\000\000\000\000\000\000\000\003\198\003\199\000\000\000\000\000\000\001{\001\148\001\152\001|\000\000\000\000\000\000\001%\000\000\003\195\000\000\001\140\000\000\001\021\000\000\000\000\001\022\003\187\000\000\001\005\000\000\000\000\000\000\003\196\005T\000\000\003\200\000\000\005\n\000\000\000\000\000\000\000\000\001\148\001\152\000\000\001\142\000\000\000\000\000\000\000\000\001\145\000\000\001\147\000\000\000\000\000\000\003\191\001\130\000\000\001\026\001!\000\000\000\000\003\198\003\199\000\000\000\000\0044\001\131\000\000\n1\000\000\001\133\001\134\000\000\001\020\000\254\001\142\000\000\000\000\000\000\000\000\001\145\000\000\001\147\000\000\000\000\001\005\001\020\000\254\000\000\000\000\000\000\001\135\003\200\000\000\000L\001\146\000\000\000\000\001\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\131\000\000\001\020\000\254\001\133\001\134\000\000\001\021\000\000\003\191\001\022\003\187\001\026\001!\000\000\000\000\0035\001%\000\000\003\195\001\021\000\000\000\000\001\022\003\187\001\135\000\000\000\000\000L\000\000\000\000\000\000\000\000\003\196\tY\000\000\000\000\000\000\005\n\000\000\000\000\000\000\000\000\001\138\000\000\001\021\000\000\000\000\001\022\003\187\000\000\000\000\0036\0037\0038\000\000\003D\000\000\000\000\000\000\000\000\000\000\000\000\003:\003\198\003\199\000\000\000\000\001\140\001\020\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n5\000\000\000\000\001%\000\000\003\195\000\000\003E\001\138\000\000\001\005\003\130\001\148\0049\000\000\000\000\000\000\003\200\000\000\003\196\001\020\000\254\000\000\000\000\003\201\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\001\140\001\021\000\000\000\000\001\022\003\187\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\001\142\000\000\000\000\003\198\003\199\001\145\000\000\001\147\001\148\n2\t'\000\000\000\000\000\000\001z\000\000\001\021\000\000\003\191\001\022\003\187\001\026\001!\000\000\000\000\001{\000\000\001\005\001|\000\000\000\000\003@\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\142\000\000\000\000\000\000\000\000\001\145\000\000\001\147\000\000\001%\000\000\003\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\003\195\003\196\000\000\000\000\000\000\000\000\005;\000\000\000\000\000\000\000\000\000\000\000\000\001z\003\196\t\\\000\000\000\000\003\191\005\n\000\000\001\026\001!\001%\001{\003\195\000\000\001|\000\000\000\000\000\000\000\000\003\198\003\199\000\000\000\000\000\000\000\000\000\000\003\196\000\000\000\000\000\000\000\000\n6\003\198\003\199\003\191\bO\001\130\001\026\001!\003H\000\000\000\000\000\000\001\005\000\000\000\000\000\000\001\131\000\000\000\000\003\200\001\133\001\134\001\020\000\254\001z\001\005\003\198\003\199\000\000\000\000\000\000\000\000\003\200\005\168\000\000\001{\000\000\000\000\001|\003I\003=\001\135\001z\000\000\000L\000\000\001%\000\000\003\195\000\000\001\005\000\000\000\000\001{\000\000\000\000\001|\003\200\000\000\000\000\000\000\000\000\003\196\000\000\000\000\001\021\000\000\005;\001\022\003\187\003S\001\130\000\000\000\000\000\000\001%\000\000\003\195\000\000\000\000\000\000\000\000\001\131\000\000\000\000\000\000\001\133\001\134\001\020\000\254\000\000\003\196\000\000\003\198\003\199\000\000\005;\000\000\000\000\000\000\000\000\001{\001\138\000\000\001|\000\000\000\000\001\135\000\000\000\000\000L\001\213\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\003\198\003\199\003\200\000\000\001\130\001\140\001\020\000\254\000\000\001\021\000\000\000\000\001\022\003\187\000\000\001\131\000\000\000\000\000\000\001\133\001\134\000\000\001\130\001\214\001\005\000\000\000\000\001\148\006\135\000\000\000\000\003\200\000\000\001\131\006\163\000\000\000\000\001\133\001\134\000\000\001\135\003\191\000\000\000L\001\026\001!\001\138\000\000\000\000\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\000\000\001\135\000\000\000\000\000L\001\142\000\000\000\000\000\000\000\000\001\145\000\000\001\147\001\130\001\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\215\000\000\000\000\000\000\001\133\001\220\001\221\000\000\000\000\000\000\000\000\000\000\001\148\006\135\000\000\000\000\000\000\000\000\000\000\006\138\001\138\000\000\000\000\000\000\000\000\001\135\003\191\000\000\000L\001\026\001!\000\000\001%\000\000\003\195\000\000\000\000\000\000\001\138\000\000\000\000\000\000\000\000\000\000\000\000\001\140\000\000\001\142\003\196\000\000\001\020\000\254\001\145\b/\001\147\000\000\000\000\000\000\001\020\000\254\000\000\000\000\000\000\001\140\000\000\000\000\003\191\001\148\002m\001\026\001!\000\000\000\000\000\000\000\000\002p\000\000\000\000\000\000\003\198\003\199\000\000\000\000\000\000\000\000\001\148\006\135\000\000\000\000\000\000\000\000\000\000\007\129\001\021\000\000\000\000\001\022\003\187\001%\000\000\003\195\001\021\001\142\001\005\001\022\003\187\000\000\001\145\000\000\001\147\003\200\001\140\000\000\000\000\003\196\001z\000\000\000\000\000\000\0058\001\142\000\000\000\000\000\000\000\000\001\145\001{\001\147\000\000\001|\000\000\001\020\000\254\000\000\000\000\000\000\000\000\000\000\001%\001{\003\195\000\000\001|\000\000\000\000\003\198\003\199\000\000\000\000\001\213\000\000\000\000\000\000\000\000\003\196\000\000\000\000\000\000\000\000\b\021\000\000\000\000\000\000\000\000\001\020\000\254\000\000\000\000\001\222\001\005\000\000\000\000\000\000\001\223\001\021\000\000\003\200\001\022\003\187\000\000\000\000\000\000\001\225\001\227\000\000\003\198\003\199\000\000\000\000\000\000\000\000\003\191\001\020\000\254\001\026\001!\000\000\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\000\000\001\021\000\000\001\005\001\022\003\187\000\000\000\000\000\000\000\000\003\200\001\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\131\000\000\001\130\000\000\001\133\001\134\000\000\001\021\000\000\000\000\001\022\003\187\000\000\001\234\000\000\001\020\000\254\001\133\001\220\001\221\000\000\000\000\000\000\000\000\000\000\001\135\000\000\000\000\000L\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\003\195\001\135\000\000\000\000\000L\000\000\001%\003\191\003\195\000\000\001\026\001!\000\000\000\000\003\196\000\000\000\000\000\000\000\000\007\153\000\000\001\021\003\196\000\000\001\022\003\187\000\000\005k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\191\000\000\000\000\001\026\001!\003\198\003\199\000\000\000\000\001\138\000\000\000\000\000\000\003\198\003\199\001\020\000\254\000\000\000\000\000\000\000\000\001\020\000\254\000\000\000\000\000\000\000\000\000\000\003\191\001\005\000\000\001\026\001!\000\000\001\140\000\000\003\200\001\005\000\000\001%\000\000\003\195\000\000\000\000\003\200\000\000\000\000\001\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\196\001\148\007\146\001\021\000\000\n\n\001\022\003\187\000\000\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\001%\000\000\003\195\000\000\000\000\000\000\001z\003\191\000\000\000\000\001\026\001!\000\000\000\000\003\198\003\199\003\196\001{\000\000\001\142\001|\005\234\001\020\000\254\001\145\000\000\001\147\000\000\001%\000\000\003\195\000\000\001\222\001\235\000\000\000\000\000\000\001\223\001\005\000\000\000\000\000\000\000\000\000\000\003\196\003\200\000\000\003\198\003\199\006'\000\000\000\000\000\000\000\000\000\000\001\020\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\022\003\187\000\000\001\005\000\000\0035\000\000\003\198\003\199\000\000\003\200\001%\000\000\003\195\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\003\191\000\000\000\000\001\026\001!\003\196\000\000\000\000\001\021\001\005\005\189\001\022\003\187\000\000\000\000\000\000\003\200\000\000\001\130\0036\0037\0038\000\000\003D\000\000\000\000\000\000\000\000\000\000\001\131\003:\000\000\000\000\001\133\001\134\000\000\003\198\003\199\001\020\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003E\003W\001\135\000\000\003N\000L\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\001%\003\200\003\195\000\000\000\000\000\000\001%\003\191\003\195\000\000\001\026\001!\000\000\000\000\000\000\001\021\003\196\000\000\001\022\003\187\000\000\t\207\003\196\001\020\000\254\000\000\000\000\005\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\003\198\003\199\001\138\000\000\000\000\000\000\003\198\003\199\000\000\000\000\003@\001\020\000\254\000\000\000\000\000\000\000\000\001\020\000\254\001\021\000\000\000\000\001\022\003\187\001\005\000\000\000\000\001\140\001\020\000\254\001\005\003\200\001%\000\000\003\195\000\000\000\000\003\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\196\001\148\002\219\000\000\000\000\b-\001\021\000\000\000\000\001\022\003\187\000\000\001\021\000\000\000\000\001\022\003\187\001%\003\191\003\195\000\000\001\026\001!\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\003\198\003\199\003\196\000\000\000\000\001\142\000\000\b\029\000\000\000\000\001\145\000\000\001\147\000\000\000\000\000\000\000\000\000\000\000\000\003H\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\003\200\000\000\003\198\003\199\000\000\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\001\020\000\254\000\000\000\000\000\000\003I\003=\000\000\000\000\000\000\000\000\000\000\001\005\000\000\001%\000\000\003\195\001\020\000\254\003\200\000\000\000\000\000\000\000\000\000\000\001\020\000\254\000\000\003\191\000\000\003\196\001\026\001!\000\000\003\191\005\199\003S\001\026\001!\000\000\000\000\000\000\000\000\001\021\000\000\003\191\001\022\003\187\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\003\198\003\199\001\022\003\187\001%\000\000\003\195\001\021\000\000\000\000\001\022\003\187\001z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\196\000\000\001z\001{\001\005\003\226\001|\000\000\000\000\000\000\000\000\003\200\000\000\001{\000\000\000\000\001|\000\000\000\000\001%\000\000\003\195\000\000\000\000\000\000\001%\000\000\003\195\000\000\000\000\000\000\003\198\003\199\000\000\000\000\003\196\001%\000\000\003\195\000\000\b\015\003\196\000\000\000\000\000\000\000\000\003\246\000\000\000\000\000\000\000\000\000\000\003\196\000\000\000\000\001\005\000\000\003\250\000\000\000\000\003\191\000\000\003\200\001\026\001!\000\000\003\198\003\199\000\000\000\000\000\000\000\000\003\198\003\199\000\000\000\000\000\000\003\191\001\020\000\254\001\026\001!\000\000\003\198\003\199\003\191\000\000\000\000\001\026\001!\001\005\000\000\000\000\000\000\001\130\000\000\001\005\003\200\000\000\000\000\000\000\000\000\000\000\003\200\001\130\001\131\000\000\001\005\000\000\001\133\001\134\000\000\000\000\000\000\003\200\001\131\000\000\001\020\000\254\001\133\001\134\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\000\000\001\135\000\000\001%\000L\003\195\000\000\000\000\000\000\000\000\000\000\001\135\000\000\000\000\000L\000\000\0035\000\000\000\000\003\196\001%\000\000\003\195\000\000\t\216\000\000\000\000\000\000\001%\000\000\003\195\001\021\000\000\000\000\001\022\003\187\003\196\000\000\000\000\000\000\000\000\005Y\000\000\000\000\003\196\000\000\000\000\000\000\000\000\005\255\003\198\003\199\0036\0037\0038\000\000\003D\000\000\000\000\000\000\000\000\000\000\001\138\003:\000\000\000\000\000\000\003\198\003\199\000\000\001\020\000\254\001\138\000\000\001\005\003\198\003\199\000\000\000\000\001\020\000\254\003\200\000\000\000\000\000\000\003E\003M\001\140\000\000\003N\003\191\001\005\000\000\001\026\001!\000\000\000\000\001\140\003\200\001\005\000\000\000\000\000\000\000\000\000\000\000\000\003\200\000\000\000\000\001\148\002\001\000\000\000\000\001\021\000\000\000\000\001\022\003\187\000\000\001\148\002\t\000\000\001\021\001\020\000\254\001\022\003\187\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\142\001\020\000\254\000\000\000\000\001\145\000\000\001\147\000\000\000\000\001\142\000\000\003@\000\000\000\000\001\145\000\000\001\147\001%\000\000\003\195\000\000\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\000\000\003U\000\000\000\000\003\196\000\000\000\000\000\000\000\000\0043\001\020\000\254\000\000\000\000\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\003\195\001\020\000\254\000\000\000\000\000\000\003\198\003\199\003\191\000\000\000\000\001\026\001!\000\000\003\196\000\000\000\000\003\191\000\000\004\228\001\026\001!\000\000\000\000\001\021\000\000\000\000\001\022\003\187\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\003\200\000\000\000\000\000\000\003H\000\000\000\000\001\021\003\198\003\199\001\022\003\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001z\000\000\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\001{\001\005\000\000\001|\003I\003=\000\000\000\000\003\200\000\000\000\000\000\000\001%\000\000\003\195\003\191\000\000\000\000\001\026\001!\000\000\001%\000\000\003\195\000\000\000\000\000\000\000\000\003\196\000\000\000\000\000\000\000\000\0048\000\000\003S\000\000\003\196\000\000\000\000\000\000\000\000\bD\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\020\000\254\000\000\003\191\000\000\000\000\001\026\001!\003\198\003\199\000\000\000\000\000\000\000\000\001%\000\000\003\195\003\198\003\199\000\000\001\020\000\254\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\003\196\000\000\001\005\000\000\000\000\005\134\001%\000\000\003\195\003\200\001\130\001\005\000\000\001\021\000\000\000\000\001\022\003\187\003\200\000\000\000\000\001\131\003\196\000\000\000\000\001\133\001\134\b5\001\020\000\254\000\000\003\198\003\199\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\001\135\003\195\000\000\000L\000\000\000\000\000\000\003\198\003\199\001\005\001\020\000\254\000\000\002\205\000\000\003\196\003\200\000\000\000\000\001%\b3\003\195\000\000\000\000\000\000\001\021\000\000\000\000\001\022\003\187\000\000\001\005\000\000\000\000\000\000\003\196\000\000\000\000\003\200\000\000\005_\000\000\000\000\002\205\000\000\000\000\003\198\003\199\001\020\000\254\000\000\000\000\000\000\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\001\138\000\000\000\000\000\000\003\191\003\198\003\199\001\026\001!\001\005\000\000\000\000\001\020\000\254\000\000\000\000\003\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\191\001\140\000\000\001\026\001!\001\005\001\021\000\000\000\000\001\022\003\187\000\000\003\200\002\206\002\207\000\000\000\000\004o\004z\000\000\000\000\000\000\000\000\001\148\0041\000\000\000\000\000\000\004u\002\231\000\000\001\021\000L\000\000\001\022\003\187\000\000\000\000\003\191\000\000\000\000\001\026\001!\002\206\002\207\000\000\000\000\002\241\000\000\001\020\000\254\000\000\001%\000\000\003\195\000\000\000\000\000\000\001\142\002\231\000\000\000\000\000L\001\145\000\000\001\147\003\191\000\000\003\196\001\026\001!\000\000\001%\005\243\003\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\196\000\000\000\000\000\000\001\021\b\023\000\000\001\022\003\187\000\000\000\000\003\198\003\199\000\000\001z\000\000\003\191\000\000\002\235\001\026\001!\002\236\001%\000\000\003\195\001{\000\000\002\239\001|\000\000\000\000\003\198\003\199\000\000\000\000\001\005\001\020\000\254\003\196\000\000\000\000\003\191\003\200\bS\001\026\001!\000\000\000\000\002\235\000\000\001%\002\236\003\195\000\000\000\000\001\005\000\000\002\239\000\000\000\000\000\000\000\000\003\200\000\000\001\020\000\254\003\196\000\000\000\000\003\198\003\199\006\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\022\003\187\000\000\001z\000\000\000\000\001%\002\240\003\195\000\000\000\000\001\005\000\000\000\000\001{\003\198\003\199\001|\003\200\000\000\003\191\000\000\003\196\001\026\001!\001\021\000\000\003\212\001\022\003\187\001z\001%\000\000\003\195\001\130\000\000\000\000\002\240\000\000\001\005\000\000\001{\000\000\000\000\001|\001\131\003\200\003\196\001z\001\133\001\134\000\000\005\209\003\198\003\199\000\000\000\000\000\000\000\000\001{\000\000\000\000\001|\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\135\000\000\000\000\000L\000\000\000\000\000\000\001\005\003\198\003\199\000\000\000\000\000\000\000\000\003\200\000\000\000\000\000\000\000\000\000\000\001\020\000\254\001%\000\000\003\195\003\191\000\000\000\000\001\026\001!\000\000\000\000\001\005\000\000\000\000\001\130\000\000\000\000\003\196\003\200\000\000\000\000\000\000\003\234\000\000\000\000\001\131\000\000\000\000\000\000\001\133\001\134\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\000\000\001\138\001\130\001\021\001\020\000\254\001\022\003\187\000\000\003\198\003\199\001\135\000\000\001\131\000L\000\000\000\000\001\133\001\134\000\000\001\130\000\000\000\000\000\000\000\000\000\000\001\140\000\000\000\000\000\000\000\000\001\131\000\000\001\005\000\000\001\133\001\134\001%\001\135\003\195\003\200\000L\0035\000\000\000\000\000\000\000\000\001\021\001\148\0046\001\022\003\187\000\000\003\196\000\000\000\000\001\135\000\000\b'\000L\000\000\000\000\000\000\000\000\000\000\001%\000\000\003\195\000\000\000\000\000\000\000\000\001\138\000\000\000\000\000\000\000\000\000\000\0036\0037\0038\003\196\003D\001\142\003\198\003\199\005r\000\000\001\145\003:\001\147\001\020\000\254\000\000\000\000\000\000\000\000\001\140\000\000\001\138\000\000\003\191\000\000\000\000\001\026\001!\002\205\000\000\001\005\001\020\000\254\003G\003\198\003\199\000\000\003\200\000\000\001\138\000\000\001\148\002o\000\000\000\000\000\000\001\140\000\000\000\000\000\000\000\000\000\000\000\000\001\020\000\254\000\000\001\021\000\000\001\005\001\022\003\187\000\000\000\000\000\000\001\140\003\200\000\000\003\191\001\148\003P\001\026\001!\000\000\000\000\001\021\000\000\001\142\001\022\003\187\000\000\000\000\001\145\000\000\001\147\000\000\000\000\001\148\004\018\000\000\000\000\001\020\000\254\000\000\000\000\000\000\001%\001\021\003\195\000\000\001\022\003\187\000\000\000\000\001\142\003@\000\000\000\000\000\000\001\145\000\000\001\147\003\196\000\000\002\206\002\207\000\000\003\224\002\208\001\020\000\254\000\000\001\142\000\000\000\000\000\000\000\000\001\145\000\000\001\147\002\231\000\000\000\000\000L\001\021\000\000\000\000\001\022\003\187\000\000\001%\000\000\003\195\003\198\003\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\191\003\196\000\000\001\026\001!\000\000\004C\001\021\000\000\000\000\001\022\003\187\001\005\0035\001z\000\000\000\000\000\000\003\191\003\200\000\000\001\026\001!\000\000\000\000\001{\000\000\000\000\001|\000\000\000\000\000\000\003\198\003\199\000\000\000\000\000\000\000\000\003H\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\000\000\000\000\0036\0037\0038\002\235\003D\000\000\002\236\001\005\000\000\000\000\000\000\003:\002\239\000\000\003\200\000\000\000\000\000\000\000\000\000\000\003I\003=\000\000\001%\000\000\003\195\000\000\000\000\003\191\001\020\000\254\001\026\001!\003E\003\168\000\000\000\000\003N\000\000\003\196\000\000\001%\000\000\003\195\bG\000\000\000\000\000\000\000\000\001\020\000\254\003S\000\000\000\000\000\000\000\000\003\191\003\196\000\000\001\026\001!\000\000\bM\001%\000\000\003\195\000\000\001\130\000\000\000\000\003\198\003\199\001\021\000\000\002\240\001\022\003\187\000\000\001\131\003\196\000\000\000\000\001\133\001\134\t\214\000\000\000\000\000\000\003\198\003\199\001\020\000\254\001\021\000\000\001\005\001\022\003\187\000\000\000\000\000\000\001%\003\200\003\195\001\135\003@\000\000\000L\000\000\000\000\000\000\003\198\003\199\001\005\000\000\000\000\000\000\003\196\000\000\000\000\003\200\000\000\005\166\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\003\195\005\221\000\000\001\021\001\005\000\000\001\022\003\187\000\000\000\000\000\000\003\200\000\000\000\000\003\196\000\000\000\000\003\198\003\199\003\208\000\000\000\000\000\000\000\000\001\020\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\001\020\000\254\003\174\003\191\001\005\000\000\001\026\001!\003\198\003\199\000\000\003\200\000\000\000\000\000\000\001\020\000\254\000\000\000\000\000\000\000\000\000\000\001\140\003\191\000\000\003H\001\026\001!\000\000\000\000\001\021\000\000\001\005\001\022\003\187\000\000\000\000\000\000\000\000\003\200\000\000\000\000\000\000\001\021\001\148\006\137\001\022\003\187\000\000\000\000\000\000\000\000\0035\000\000\000\000\000\000\003I\003=\001\021\000\000\000\000\001\022\003\187\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\003\195\000\000\001\142\000\000\000\000\000\000\000\000\001\145\000\000\001\147\003S\0036\0037\0038\003\196\003D\000\000\000\000\001%\005d\003\195\000\000\003:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\196\000\000\000\000\000\000\000\000\bJ\000\000\001\020\000\254\000\000\003x\003\198\003\199\001\020\000\254\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\000\000\001%\000\000\003\195\000\000\000\000\003\191\003\198\003\199\001\026\001!\001\005\000\000\000\000\000\000\000\000\000\000\003\196\003\200\002\205\000\000\003\191\b7\000\000\001\026\001!\001\021\000\000\000\000\001\022\003\187\001\005\001\021\000\000\000\000\001\022\003\187\000\000\003\200\000\000\001z\001\020\000\254\000\000\000\000\000\000\000\000\000\000\003\198\003\199\000\000\001{\001z\000\000\001|\000\000\000\000\003@\000\000\000\000\000\000\000\000\000\000\001{\000\000\001%\001|\003\195\000\000\000\000\000\000\000\000\001\005\000\000\000\000\001\020\000\254\000\000\001%\003\200\003\195\003\196\000\000\000\000\001\021\000\000\003\254\001\022\003\187\000\000\000\000\000\000\001\132\001%\003\196\003\195\000\000\000\000\000\000\005\231\000\000\000\000\000\000\001{\002\206\002\207\001|\000\000\004\215\003\196\000\000\000\000\003\198\003\199\005\239\000\000\001\020\000\254\001\021\000\000\002\231\001\022\003\187\000L\003\191\003\198\003\199\001\026\001!\000\000\003\191\000\000\000\000\001\026\001!\000\000\001\005\000\000\000\000\000\000\003\198\003\199\001\130\003\200\000\000\003H\000\000\000\000\000\000\001\005\000\000\002\142\000\000\001\131\001\130\000\000\003\200\001\133\001\134\001\021\000\000\000\000\001\022\003\187\001\005\001\131\000\000\000\000\000\000\001\133\001\134\003\200\000\000\000\000\000\000\000\000\003I\003=\001\135\001\020\000\254\000L\003\191\000\000\000\000\001\026\001!\000\000\000\000\000\000\001\135\000\000\000\000\000L\001\130\000\000\001%\002\235\003\195\000\000\002\236\000\000\001%\000\000\003\195\000\000\002\239\003S\000\000\001\133\001\134\000\000\003\196\000\000\000\000\000\000\003\191\004\026\003\196\001\026\001!\000\000\001\021\t\208\000\000\001\022\003\187\000\000\000\000\000\000\001\135\000\000\000\000\000L\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\000\000\003\198\003\199\000\000\000\000\000\000\000\000\003\198\003\199\001\138\001z\000\000\001%\000\000\003\195\003\191\000\000\000\000\001\026\001!\000\000\001{\001\140\000\000\001|\001\005\002\240\000\000\003\196\001\020\000\254\001\005\003\200\005\178\001\140\000\000\000\000\000\000\003\200\000\000\000\000\000\000\000\000\000\000\001\148\b\177\001%\000\000\003\195\001\138\000\000\000\000\000\000\000\000\000\000\000\000\001\148\006.\000\000\003\198\003\199\000\000\003\196\001\020\000\254\000\000\000\000\003\244\000\000\000\000\000\000\000\000\001\021\000\000\001\140\001\022\003\187\000\000\003\191\001\142\000\000\001\026\001!\001\005\001\145\000\000\001\147\001%\001z\003\195\003\200\001\142\000\000\003\198\003\199\000\000\001\145\000\000\001\147\001{\000\000\000\000\001|\003\196\000\000\000\000\001\021\000\000\003\240\001\022\003\187\000\000\001\130\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\001\131\003\200\000\000\000\000\001\133\001\134\000\000\000\000\001\142\000\000\001z\003\198\003\199\001\020\000\254\001\147\000\000\000\000\000\000\000\000\000\000\001{\000\000\000\000\001|\001\135\000\000\001%\000L\003\195\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\003\200\003\196\000\000\000\000\000\000\003\191\003\252\000\000\001\026\001!\000\000\000\000\001\020\000\254\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\000\000\000\000\000\000\001\130\000\000\000\000\000\000\000\000\000\000\000\000\003\198\003\199\000\000\000\000\001\131\000\000\000\000\003\191\001\133\001\134\001\026\001!\001\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\020\000\254\001\021\001\005\000\000\001\022\003\187\000\000\001\135\000\000\003\200\000L\000\000\000\000\000\000\000\000\001\140\001\130\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\003\195\000\000\001\131\000\000\000\000\000\000\001\133\001\134\000\000\000\000\000\000\000\000\001\148\001\168\003\196\001\020\000\254\001\021\000\000\005\193\001\022\003\187\000\000\000\000\000\000\000\000\000\000\001\135\000\000\000\000\000L\000\000\001%\003\191\003\195\000\000\001\026\001!\000\000\000\000\001\020\000\254\000\000\001\138\000\000\003\198\003\199\001\142\003\196\000\000\000\000\000\000\001\145\003\216\001\147\001\020\000\254\000\000\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\000\000\000\000\001\140\001\005\000\000\000\000\000\000\000\000\003\191\000\000\003\200\001\026\001!\003\198\003\199\000\000\000\000\001\021\000\000\000\000\001\022\003\187\001\138\000\000\001\148\n\007\000\000\000\000\000\000\000\000\001\020\000\254\001\021\000\000\000\000\001\022\003\187\001\005\000\000\001%\000\000\003\195\000\000\000\000\003\200\000\000\000\000\001\140\000\000\003\191\000\000\000\000\001\026\001!\000\000\003\196\000\000\000\000\000\000\001\142\003\206\000\000\000\000\000\000\001\145\000\000\001\147\000\000\000\000\001\148\004\001\000\000\000\000\001\021\000\000\000\000\001\022\003\187\000\000\000\000\001%\000\000\003\195\000\000\000\000\000\000\003\198\003\199\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\003\196\001\020\000\254\000\000\000\000\b\019\000\000\000\000\001\142\000\000\000\000\001\020\000\254\001\145\001\005\001\147\000\000\000\000\000\000\003\191\000\000\003\200\001\026\001!\000\000\001%\000\000\003\195\000\000\000\000\000\000\003\198\003\199\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\003\196\000\000\000\000\001\021\000\000\004\003\001\022\003\187\000\000\000\000\000\000\001\020\000\254\001\021\001\005\000\000\001\022\003\187\000\000\000\000\000\000\003\200\000\000\000\000\000\000\001%\000\000\003\195\000\000\000\000\000\000\003\198\003\199\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\003\196\000\000\000\000\000\000\000\000\003\197\001\020\000\254\000\000\001%\000\000\003\195\000\000\001\021\001\005\000\000\001\022\003\187\000\000\000\000\000\000\003\200\000\000\000\000\001%\003\196\003\195\000\000\000\000\000\000\003\230\003\198\003\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\196\000\000\000\000\000\000\000\000\004\006\000\000\001\020\000\254\001\021\000\000\000\000\001\022\003\187\000\000\001\005\003\198\003\199\000\000\000\000\003\191\000\000\003\200\001\026\001!\001%\001{\003\195\000\000\001|\003\191\003\198\003\199\001\026\001!\000\000\001\213\000\000\000\000\000\000\001\005\003\196\000\000\001\020\000\254\000\000\003\248\003\200\000\000\000\000\001\021\000\000\000\000\001\022\003\187\001\005\000\000\000\000\000\000\000\000\000\000\000\000\003\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\230\003\191\003\198\003\199\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\020\000\254\001\021\000\000\000\000\001\022\003\187\000\000\001%\000\000\003\195\000\000\001\005\000\000\000\000\000\000\000\000\000\000\001%\003\200\003\195\000\000\000\000\003\191\003\196\000\000\001\026\001!\000\000\b2\000\000\000\000\000\000\001\130\003\196\000\000\000\000\000\000\000\000\b\025\000\000\001\020\000\254\001\021\001\215\000\000\001\022\003\187\001\133\001\220\001\221\000\000\000\000\000\000\000\000\003\198\003\199\000\000\000\000\001%\000\000\003\195\000\000\000\000\003\191\003\198\003\199\001\026\001!\001\135\000\000\000\000\000L\000\000\000\000\003\196\000\000\001\020\000\254\001\005\003\220\000\000\000\000\000\000\001\021\000\000\003\200\001\022\003\187\001\005\000\000\000\000\000\000\000\000\000\000\001%\003\200\003\195\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\003\198\003\199\000\000\000\000\000\000\003\196\000\000\000\000\000\000\000\000\b\243\000\000\001\020\000\254\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\001\020\000\254\000\000\001%\003\200\003\195\000\000\000\000\003\191\003\198\003\199\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\003\196\000\000\000\000\001\140\000\000\005\182\000\000\001\020\000\254\001\021\000\000\000\000\001\022\003\187\001\005\000\000\000\000\000\000\000\000\000\000\001%\003\200\003\195\000\000\001\021\000\000\000\000\001\022\003\187\000\000\003\191\003\198\003\199\001\026\001!\000\000\003\196\000\000\000\000\000\000\000\000\005\163\000\000\000\000\000\000\000\000\001\020\000\254\000\000\000\000\001\021\000\000\000\000\001\022\003\183\001\005\000\000\000\000\000\000\000\000\001\222\001%\003\200\003\195\000\000\001\223\003\191\003\198\003\199\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\003\196\000\000\000\000\000\000\000\000\005O\000\000\001\020\000\254\000\000\000\000\000\000\001\021\000\000\001\005\001\022\003\187\000\000\000\000\000\000\000\000\003\200\001\020\000\254\000\000\001%\002\205\003\195\000\000\000\000\003\191\003\198\003\199\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\003\196\001\020\000\254\000\000\003\191\b\011\000\000\001\026\001!\001\021\000\000\000\000\001\022\003\187\001\005\000\000\000\000\000\000\000\000\000\000\001%\003\200\003\195\000\000\001\021\000\000\000\000\001\022\003\187\000\000\003\191\003\198\003\199\001\026\001!\000\000\003\196\000\000\000\000\000\000\000\000\b\005\000\000\000\000\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\001%\003\200\003\195\000\000\000\000\000\000\003\198\003\199\003\191\002\206\002\207\001\026\001!\006\226\000\000\001%\003\196\003\195\000\000\000\000\000\000\005\142\000\000\001\020\000\254\002\231\000\000\000\000\000L\000\000\001\005\003\196\000\000\000\000\000\000\000\000\003\232\003\200\000\000\000\000\000\000\001%\000\000\003\195\000\000\000\000\003\191\003\198\003\199\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\003\196\000\000\000\000\000\000\003\191\003\198\003\199\001\026\001!\001\021\000\000\000\000\001\022\003\187\001\005\000\000\000\000\000\000\000\000\001\020\000\254\003\200\000\000\001%\003\191\003\195\000\000\001\026\001!\001\005\000\000\003\198\003\199\000\000\000\000\000\000\003\200\000\000\000\000\003\196\000\000\001\020\000\254\000\000\003\214\002\235\000\000\000\000\002\236\000\000\000\000\000\000\000\000\000\000\002\239\001\005\000\000\000\000\000\000\000\000\000\000\001%\001\021\003\195\000\000\001\022\003\187\000\000\000\000\000\000\003\198\003\199\000\000\000\000\000\000\000\000\001%\003\196\003\195\001\020\000\254\000\000\b;\000\000\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\003\196\000\000\001\005\000\000\001%\003\228\003\195\001\020\000\254\003\200\000\000\000\000\000\000\000\000\000\000\003\191\003\198\003\199\001\026\001!\003\196\000\000\000\000\000\000\002\240\bV\000\000\000\000\001z\000\000\001\021\003\198\003\199\001\022\003\187\000\000\000\000\000\000\000\000\001{\001\005\000\000\001|\000\000\000\000\000\000\000\000\003\200\000\000\000\000\001\021\003\198\003\199\001\022\003\187\001\005\000\000\000\000\000\000\000\000\000\000\000\000\003\200\000\000\000\000\000\000\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\003\200\000\000\000\000\000\000\000\000\001%\001z\003\195\003\191\000\000\000\000\001\026\001!\000\000\000\000\000\000\000\000\001{\000\000\000\000\001|\003\196\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\020\000\254\000\000\003\191\000\000\001\130\001\026\001!\000\000\003\198\003\199\000\000\000\000\000\000\000\000\001%\001\131\003\195\001z\000\000\001\133\001\134\000\000\003\191\000\000\000\000\001\026\001!\000\000\001{\000\000\003\196\001|\001\005\000\000\000\000\005\148\001%\000\000\003\195\003\200\001\135\000\000\001\021\000L\000\000\001\022\003\187\000\000\000\000\000\000\000\000\000\000\003\196\000\000\000\000\000\000\000\000\004\020\000\000\001\020\000\254\003\198\003\199\000\000\001\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\001\131\003\195\000\000\000\000\001\133\001\134\000\000\000\000\003\198\003\199\001\005\000\000\000\000\000\000\000\000\003\196\000\000\003\200\000\000\001%\004?\003\195\000\000\000\000\000\000\001\135\001\138\001\021\000L\000\000\001\022\003\187\001\005\000\000\000\000\003\196\001\006\000\254\001z\003\200\003\210\000\000\000\000\000\000\001\130\000\000\003\198\003\199\000\000\001{\000\000\001\140\001|\000\000\000\000\001\131\000\000\001\020\000\254\001\133\001\134\000\000\000\000\000\000\000\000\003\191\003\198\003\199\001\026\001!\001\005\000\000\000\000\001\148\006\140\001\020\000\254\003\200\000\000\001\007\001\135\001*\001\t\000L\000\000\000\000\001\138\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\003\200\000\000\000\000\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\001\142\000\000\000\000\001\140\000\000\001\145\000\000\001\147\001\020\000\254\001\021\000\000\000\000\001\022\003\187\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\000\000\001\148\007/\000\000\000\000\001%\000\000\003\195\001\130\001\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\131\000\000\003\196\000\000\001\133\001\134\000\000\t\243\001\021\000\000\000\000\001\022\003\187\000\000\000\000\001\140\000\000\001\142\000\000\000\000\000\000\000\000\001\145\000\000\001\147\001\135\001\n\000\000\000L\001\026\001!\000\000\000\000\003\198\003\199\000\000\000\000\001\148\004;\000\000\000\000\000\000\001\020\000\254\000\000\000\000\001%\003\191\003\195\000\000\001\026\001!\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\003\196\000\000\003\200\003\191\000\000\005\203\001\026\001!\000\000\000\000\001\142\b\235\000\000\000\000\000\000\001\145\000\000\001\147\000\000\000\000\000\000\001\020\000\254\001\021\001\138\000\000\001\022\003\187\000\000\000\000\000\000\003\198\003\199\001\020\000\254\000\000\001%\000\000\001-\001\020\000\254\000\000\000\000\000\000\003\191\000\000\000\000\001\026\001!\001\140\000\000\000\000\001.\000\000\000\000\001\005\000\000\001%\000\000\003\195\000\000\000\000\003\200\000\000\001\021\000\000\000\000\001\022\003\187\000\000\000\000\001\148\n\005\003\196\000\000\001%\001\021\003\195\b9\001\022\003\187\000\000\001\021\001/\0012\001\022\003\187\000\000\000\000\000\000\000\000\003\196\000\000\000\000\000\000\000\000\007\149\000\000\001\020\000\254\000\000\000\000\000\000\000\000\003\198\003\199\001\142\001\005\000\000\000\000\000\000\001\145\000\000\001\147\000\000\001z\001%\000\000\003\195\000\000\000\000\003\191\003\198\003\199\001\026\001!\001{\000\000\001\005\001|\000\000\000\000\003\196\000\000\000\000\003\200\000\000\tT\000\000\001\020\000\254\001\021\000\000\000\000\001\022\003\187\001\005\000\000\000\000\000\000\000\000\000\000\000\000\003\200\000\000\000\000\000\000\001\020\000\254\000\000\000\000\000\000\003\191\003\198\003\199\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\191\001\020\000\254\001\026\001!\000\000\003\191\000\000\001\021\001\026\001!\001\022\003\187\001\005\000\000\000\000\000\000\000\000\000\000\001%\003\200\003\195\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\022\003\187\000\000\002\205\000\000\000\000\003\196\000\000\000\000\000\000\000\000\b\242\000\000\000\000\001\130\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\000\000\000\000\001\131\000\000\000\000\000\000\001\133\001\134\001%\000\000\003\195\000\000\000\000\003\191\003\198\003\199\001\026\001!\000\000\000\000\001%\000\000\003\195\000\000\003\196\000\000\001%\001\135\003\195\003\243\000L\000\000\000\000\000\000\000\000\000\000\003\196\000\000\001\005\000\000\000\000\t\212\003\196\000\000\000\000\003\200\000\000\006\b\000\000\001\020\000\254\000\000\000\000\000\000\003\191\003\198\003\199\001\026\001!\000\000\000\000\000\000\001\020\000\254\000\000\002\206\002\207\003\198\003\199\004o\004\198\000\000\003\191\003\198\003\199\001\026\001!\000\000\000\000\001\005\004u\002\231\000\000\000\000\000L\001%\003\200\003\195\001\138\000\000\003\191\001\005\001\021\001\026\001!\001\022\003\187\001\005\003\200\000\000\001\132\003\196\001\020\000\254\003\200\001\021\006\006\000\000\001\022\003\187\000\000\001{\000\000\001\140\001|\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\003\195\000\000\000\000\000\000\003\198\003\199\000\000\001\148\007\178\000\000\000\000\000\000\000\000\000\000\003\196\001z\001%\001\021\003\195\003\222\001\022\003\187\000\000\000\000\000\000\000\000\001{\000\000\001\005\001|\002\235\002j\003\196\002\236\001%\003\200\003\195\b\031\000\000\002\239\000\000\000\000\001\142\000\000\000\000\003\198\003\199\001\145\000\000\001\147\003\196\000\000\000\000\000\000\000\000\b+\001\020\000\254\000\000\000\000\000\000\000\000\003\191\003\198\003\199\001\026\001!\000\000\000\000\001\005\000\000\000\000\000\000\000\000\001\130\003\191\003\200\000\000\001\026\001!\000\000\003\198\003\199\000\000\000\000\000\000\000\000\001\005\000\000\001\133\001\134\000\000\001\020\000\254\003\200\000\000\000\000\000\000\000\000\001\021\000\000\002\240\001\022\003\187\000\000\001\005\000\000\000\000\000\000\000\000\001\135\000\000\003\200\000L\000\000\003\191\000\000\001\130\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\131\001\020\000\254\000\000\001\133\001\134\001%\001\021\003\195\000\000\001\022\003\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\003\195\003\196\000\000\000\000\001\135\000\000\006\025\000L\000\000\000\000\000\000\000\000\000\000\000\000\003\196\000\000\000\000\000\000\000\000\t\024\000\000\000\000\001\138\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\000\000\003\198\003\199\001\020\000\254\000\000\000\000\001%\000\000\003\195\000\000\000\000\000\000\000\000\003\198\003\199\001\140\003\191\000\000\000\000\001\026\001!\000\000\003\196\000\000\001\005\000\000\000\000\006\001\000\000\0035\000\000\003\200\000\000\001\138\000\000\000\000\000\000\001\005\000\000\001\020\000\254\000\000\000\000\000\000\003\200\001\021\000\000\000\000\001\022\003\187\000\000\000\000\003\191\003\198\003\199\001\026\001!\000\000\001\140\000\000\000\000\000\000\000\000\000\000\000\000\0036\0037\003\203\000\000\003\255\000\000\000\000\001\142\000\000\000\000\000\000\003:\001\005\000\000\001\147\001\148\006g\001\021\000\000\003\200\001\022\003\187\000\000\001%\003\191\003\195\000\000\001\026\001!\000\000\000\000\000\000\000\000\003E\000\000\000\000\000\000\004\004\000\000\003\196\001\020\000\254\000\000\000\000\b\017\000\000\000\000\000\000\000\000\000\000\001\142\000\000\000\000\000\000\000\000\001\145\000\000\001\147\000\000\001%\000\000\003\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\198\003\199\000\000\000\000\000\000\003\196\000\000\000\000\003\191\002\205\b\027\001\026\001!\001\021\000\000\000\000\001\022\003\187\000\000\001z\000\000\000\000\001\020\000\254\001\005\000\000\001%\000\000\003\195\000\000\001{\003\200\000\000\001|\003@\000\000\003\198\003\199\000\000\000\000\000\000\000\000\003\196\000\000\000\000\003\191\000\000\b\r\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\001\020\000\254\000\000\000\000\001\005\000\000\001\020\000\254\000\000\001\021\000\000\003\200\001\022\003\187\000\000\000\000\000\000\003\198\003\199\000\000\000\000\000\000\000\000\000\000\001%\000\000\003\195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\250\004\166\000\000\002\206\002\207\003\196\001\005\007\"\001\021\000\000\006%\001\022\003\187\003\200\001\021\000\000\000\000\001\022\003\187\002\231\003\191\000\000\000L\001\026\001!\000\000\001%\000\000\003\195\000\000\001\130\003H\000\000\000\000\000\000\000\000\003\198\003\199\001\020\000\254\000\000\001\131\003\196\000\000\000\000\001\133\001\134\b%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\005\000\000\003I\003=\000\000\000\000\001\135\003\200\000\000\000L\000\000\000\000\003\191\003\198\003\199\001\026\001!\000\000\000\000\001\020\000\254\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\001\020\000\254\000\000\001%\003S\003\195\000\000\002\235\001\005\000\000\002\236\000\000\000\000\000\000\000\000\003\200\002\239\003\191\000\000\003\196\001\026\001!\000\000\003\191\b)\000\000\001\026\001!\000\000\000\000\000\000\000\000\000\000\001\021\000\000\000\000\001\022\003\187\001\138\000\000\000\000\001\020\000\254\001\021\000\000\000\000\001\022\003\187\000\000\000\000\003\198\003\199\000\000\000\000\000\000\001%\000\000\003\195\000\000\001\132\000\000\000\000\000\000\001\140\000\000\000\000\000\000\000\000\002\205\000\000\001{\003\196\000\000\001|\001\005\000\000\003\236\0035\002\240\000\000\000\000\003\200\000\000\000\000\001\021\001\148\002\222\001\022\003\187\001%\003\191\003\195\000\000\001\026\001!\001%\000\000\003\195\000\000\000\000\000\000\000\000\003\198\003\199\000\000\003\196\000\000\002\205\000\000\000\000\005\157\003\196\000\000\0036\0037\0038\007\156\003D\t\164\000\000\001\142\000\000\000\000\000\000\003:\001\145\001\005\001\147\001\020\000\254\000\000\003\191\000\000\003\200\001\026\001!\003\198\003\199\000\000\000\000\000\000\003\191\003\198\003\199\001\026\001!\003E\003\168\001\020\000\254\003N\000\000\000\000\002\206\002\207\000\000\000\000\007*\000\000\000\000\001\005\001\130\001%\000\000\003\195\000\000\001\005\003\200\000\000\002\231\000\000\001\021\000L\003\200\001\022\003\187\001\133\001\134\003\196\000\000\000\000\000\000\003\191\b!\000\000\001\026\001!\000\000\000\000\001\020\000\254\001\021\002\206\002\207\001\022\003\187\002\252\001\135\000\000\000\000\000L\000\000\000\000\001%\000\000\003\195\000\000\000\000\002\231\003\198\003\199\000L\000\000\001%\000\000\003\195\000\000\003@\000\000\003\196\000\000\000\000\000\000\000\000\005\195\000\000\000\000\000\000\000\000\003\196\000\000\000\000\001\021\001\005\0068\001\022\003\187\000\000\000\000\000\000\003\200\000\000\000\000\000\000\003\169\000\000\002\235\000\000\000\000\002\236\003\198\003\199\001\020\000\254\001%\002\239\003\195\000\000\001\138\000\000\003\198\003\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\191\003\196\000\000\001\026\001!\001\005\005\229\000\000\000\000\000\000\000\000\000\000\003\200\003\174\001\140\001\005\002\235\000\000\000\000\002\236\003\191\000\000\003\200\001\026\001!\002\239\001\021\000\000\000\000\001\022\003\187\000\000\003\198\003\199\001\020\000\254\003H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\001z\000\000\003\191\000\000\003\200\001\026\001!\000\000\003I\003=\000\000\001{\001\142\001%\001|\003\195\001\020\000\254\001\021\001\147\000\000\001\022\003\187\000\000\001\020\000\254\000\000\000\000\002\240\003\196\000\000\000\000\000\000\001%\b#\003\195\001\020\000\254\000\000\003S\000\000\000\000\000\000\000\000\000\000\002\205\000\000\000\000\000\000\003\196\000\000\000\000\000\000\000\000\003\201\000\000\000\000\000\000\000\000\001\021\003\198\003\199\001\022\003\187\000\000\003\191\000\000\001\021\001\026\001!\001\022\003\187\000\000\000\000\001%\000\000\003\195\000\000\000\000\001\021\003\198\003\199\001\022\003\187\001\005\000\000\000\000\000\000\000\000\000\000\003\196\003\200\000\000\002\205\000\000\005\175\000\000\001\020\000\254\000\000\000\000\000\000\001\130\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\003\200\000\000\001\131\000\000\000\000\003\191\001\133\001\134\001\026\001!\003\198\003\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\206\002\207\000\000\000\000\004\183\000\000\000\000\001%\001\135\003\195\001\021\000L\000\000\001\022\003\187\001\005\002\231\000\000\000\000\000L\000\000\000\000\003\200\003\196\000\000\000\000\000\000\003\191\006<\000\000\001\026\001!\000\000\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\191\002\206\002\207\001\026\001!\006?\000\000\003\198\003\199\000\000\000\000\001%\000\000\003\195\000\000\000\000\000\000\002\231\000\000\000\000\000L\000\000\001\138\000\000\000\000\000\000\000\000\003\196\000\000\000\000\000\000\001\005\003\204\000\000\000\000\000\000\000\000\000\000\003\200\000\000\000\000\000\000\000\000\000\000\001\020\000\254\002\235\001\140\000\000\002\236\000\000\000\000\001%\000\000\003\195\002\239\000\000\000\000\003\198\003\199\001%\003\191\003\195\000\000\001\026\001!\000\000\000\000\003\196\001\148\006D\000\000\001%\005\241\003\195\000\000\003\196\000\000\0035\000\000\000\000\003\218\001\005\000\000\000\000\000\000\000\000\001\021\003\196\003\200\001\022\003\187\000\000\0053\002\235\000\000\000\000\002\236\000\000\003\198\003\199\000\000\000\000\002\239\001\142\000\000\000\000\003\198\003\199\001\145\000\000\001\147\000\000\000\000\0036\0037\0038\002\240\003D\003\198\003\199\0035\000\000\001\005\000\000\003:\0035\000\000\000\000\000\000\003\200\001\005\000\000\001%\000\000\003\195\000\000\000\000\003\200\000\000\001\020\000\254\000\000\001\005\000\000\000\000\000\000\003E\003\168\003\196\003\200\003N\000\000\000\000\005\160\000\000\000\000\0036\0037\0038\000\000\003D\0036\0037\0038\002\240\003D\000\000\003:\001\020\000\254\000\000\000\000\003:\000\000\000\000\000\000\000\000\001\020\000\254\003\198\003\199\000\000\001\021\000\000\003\191\001\022\003\187\001\026\001!\003E\003\168\000\000\000\000\003N\003E\003\168\000\000\000\000\003N\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\003\200\001\021\000\000\000\000\001\022\003\187\000\000\003@\000\000\000\000\001\021\000\000\000\000\001\022\003\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\000\000\000\000\000\000\000\000\007r\000\000\000\000\000\000\001z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\001z\003\195\001{\003@\000\000\001|\000\000\000\000\003@\000\000\000\000\001{\000\000\000\000\001|\003\196\000\000\0036\0037\003\203\005/\003\255\000\000\003\191\000\000\003\174\001\026\001!\003:\000\000\007\237\000\000\000\000\000\000\000\000\007\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\198\003\199\003H\000\000\003E\000\000\003\191\000\000\004\004\001\026\001!\000\000\000\000\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\003\174\000\000\001\005\000\000\000\000\003\174\000\000\001z\000\000\003\200\000\000\003I\003=\000\000\000\000\000\000\000\000\000\000\001{\000\000\000\000\001|\000\000\003H\000\000\001\130\000\000\001%\003H\003\195\000\000\000\000\000\000\000\000\001\130\000\000\001\131\000\000\000\000\000\000\001\133\001\134\003S\003\196\000\000\001\131\000\000\000\000\b\201\001\133\001\134\000\000\000\000\003@\003I\003=\001%\000\000\003\195\003I\003=\001\135\000\000\000\000\000L\001%\000\000\003\195\000\000\000\000\001\135\000\000\003\196\000L\003\198\003\199\000\000\t\018\000\000\000\000\000\000\003\196\000\000\000\000\000\000\003S\t$\000\000\000\000\000\000\003S\000\000\0035\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\003\198\003\199\003\200\001\006\000\254\000\000\001\130\004\138\004\166\003\198\003\199\000\000\000\000\000\000\0035\000\000\000\000\001\131\000\000\001\138\000\000\001\133\001\134\000\000\001\005\0036\0037\0038\001\138\003D\000\000\003\200\000\000\001\005\000\000\000\000\003:\000\000\003H\000\000\003\200\000\000\001\135\000\000\001\140\000L\001\007\000\000\001*\001\t\0036\0037\003\203\001\140\003\255\000\000\000\000\0035\003E\003\168\002\205\003:\003N\000\000\000\000\000\000\001\144\000\000\000\000\003I\003=\000\000\000\000\000\000\000\000\001\141\000\000\000\000\001\006\000\254\000\000\000\000\000\000\003E\000\000\000\000\000\000\004\004\000\000\000\000\000\000\000\000\000\000\0036\0037\003\203\0035\003\255\000\000\000\000\003S\001\142\000\000\001\138\003:\000\000\001\145\000\000\001\147\000\000\001\142\000\000\001\020\000\254\000\000\001\145\000\000\001\147\000\000\000\000\000\000\001\007\000\000\001*\001\t\000\000\003E\000\000\001\140\003@\004\004\000\000\0036\0037\0038\0035\003D\001\020\000\254\000\000\000\000\000\000\000\000\003:\001\n\002\206\002\207\001\026\001!\002\238\001\164\000\000\000\000\000\000\003@\001\021\001\020\000\254\001\022\n\"\000\000\002\231\000\000\000\000\000L\003E\000\000\000\000\000\000\n9\n;\0036\004\016\004\021\000\000\003D\000\000\000\000\001\020\000\254\001\021\000\000\003:\001\022\007\\\001\142\000\000\000\000\000\000\000\000\001\145\005$\001\147\000\000\003\171\000\000\000\000\003@\000\000\001\021\000\000\000\000\001\022\n(\003E\000\000\000\000\000\000\004A\000\000\000\000\004\n\004\166\000\000\000\000\000\000\001%\003H\001-\001\n\000\000\001\021\001\026\001!\001\022\t\223\000\000\000\000\000\000\000\000\000\000\000\000\001.\000\000\000\000\000\000\003@\000\000\002\235\000\000\000\000\002\236\003H\001\006\000\254\000\000\000\000\002\239\003I\003=\000\000\000\000\000\000\003\191\004\007\004\166\001\026\001!\000\000\000\000\000\000\000\000\000\000\001/\0012\000\000\tb\000\000\001\020\000\254\000\000\000\000\000\000\003I\003=\003@\000\000\000\000\003\191\003S\000\000\001\026\001!\001\020\000\254\003H\001\007\001\005\001\025\001\t\000\000\001%\000\000\001-\000\000\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\003S\000\000\0035\001.\000\000\002\240\000\000\001\021\000\000\000\000\001\022\tS\003I\003=\000\000\003\191\000\000\000\000\001\026\001!\003H\001%\001\021\003\195\000\000\001\022\001\023\000\000\000\000\000\000\000\000\004\146\000\000\000\000\001/\0012\000\000\003\196\0036\004\016\004\021\000\000\003D\003S\000\000\000\000\001%\000\000\003\195\003:\000\000\003I\003=\000\000\000\000\000\000\000\000\000\000\001\005\003H\000\253\000\254\003\196\000\000\000\000\001%\000\000\003\195\003\198\003\199\000\000\003E\000\000\000\000\000\000\004A\000\000\000\000\0035\000\000\001\n\003\196\003S\001\026\001!\000\000\000\000\001%\000\000\003\195\003I\003=\001\005\003\198\003\199\000\000\000\000\001\020\000\254\000\000\000\000\000\000\000\000\003\196\t\238\003\191\t+\000\000\001\026\001!\001\020\000\254\003\198\003\199\0036\0037\003\203\001\005\003\255\000\000\003\191\003S\000\000\001\026\001!\003:\000\000\001\006\000\254\000\000\000\000\000\000\000\000\000\000\003\198\003\199\001\005\000\000\000\000\000\000\001\021\000\000\003@\001\022\t\225\000\000\000\000\003E\0035\000\000\000\000\004\004\001%\001\021\001-\000\000\001\022\t\222\001\005\000\000\001\020\000\254\000\000\000\000\000\000\000\000\000\000\000\000\001.\000\000\001\007\000\000\0017\001\t\000\000\000\000\000\000\001%\000\000\003\195\000\000\000\000\000\000\000\000\0036\004\016\004\021\000\000\003D\001\020\000\254\000\000\001%\003\196\003\195\003:\000\000\000\000\000\000\001/\0012\t,\004D\001\021\001\026\001!\001\022\005\201\003\196\000\000\001\020\000\254\000\000\000\000\000\000\000\000\000\000\003E\003@\000\000\000\000\004A\000\000\001\005\003\198\003\199\000\000\000\000\000\000\000\000\003H\000\000\001\021\000\000\000\000\001\022\b\007\000\000\003\191\003\198\003\199\001\026\001!\000\000\0035\000\000\000\000\000\000\001\005\000\000\000\000\003\191\000\000\001\021\001\026\001!\001\022\006\023\000\000\000\000\000\000\003I\003=\001\005\000\000\000\000\000\000\000\000\001\n\000\000\000\000\001\026\001!\001%\000\000\tE\004\165\000\000\000\000\000\000\0036\0037\0038\000\000\003D\001\020\000\254\000\000\003@\tF\000\000\003:\003S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\191\000\000\000\000\001\026\001!\003H\000\000\000\000\000\000\001%\000\000\003\195\003E\003\152\000\000\000\000\003N\001\020\000\254\tG\tH\000\000\001%\000\000\003\195\003\196\000\000\001\021\000\000\003\191\001\022\006\017\001\026\001!\000\000\000\000\003I\003=\003\196\001%\000\000\001-\000\000\001\005\000\000\000\000\000\000\004\170\000\000\000\000\003\191\001\020\000\254\001\026\001!\001.\003\198\003\199\000\000\000\000\001\021\000\000\000\000\001\022\003\185\000\000\000\000\003S\000\000\003\198\003\199\000\000\001%\000\000\003\195\003H\000\000\000\000\000\000\000\000\001\005\000\000\000\000\003@\000\000\000\000\001/\0012\003\196\000\000\001\006\000\254\000\000\001\005\001\021\000\000\000\000\001\022\006)\000\000\000\000\001%\000\000\003\195\000\000\000\000\003I\003=\001\006\000\254\001\005\000\000\000\000\000\000\000\000\000\000\000\000\003\196\000\000\003\198\003\199\000\000\001%\000\000\003\195\003\191\000\000\000\000\001\026\001!\001\006\000\254\000\000\001\007\000\000\t\219\001\t\003S\003\196\000\000\000\000\000\000\0035\001\005\000\000\000\000\000\000\000\000\003\198\003\199\000\000\001\007\000\000\005,\001\t\000\000\000\000\000\000\003\191\000\000\000\000\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\003\198\003\199\003H\001\005\001\007\000\000\b\239\001\t\000\000\0036\004\016\004\021\000\000\003D\001\006\000\254\000\000\000\000\000\000\000\000\003:\000\000\000\000\003\191\001\005\000\000\001\026\001!\001%\000\000\003\195\000\000\000\000\003I\003=\000\000\000\000\000\000\000\000\001\020\000\254\000\000\003E\000\000\003\196\000\000\004A\001\020\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\000\000\t\016\001\t\001%\001\n\003\195\003S\001\026\001!\000\000\000\000\000\000\000\000\000\000\001\006\000\254\000\000\003\198\003\199\003\196\000\000\000\000\001\n\000\000\001\021\001\026\001!\001\022\007\159\000\000\000\000\000\000\001\021\000\000\000\000\001\022\t\011\001%\000\000\003\195\000\000\001\005\000\000\000\000\001\n\000\000\000\000\001\026\001!\000\000\003\198\003\199\000\000\003\196\000\000\003@\000\000\001\007\000\000\001\b\001\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000\254\000\000\000\000\000\000\000\000\001\005\000\000\001%\000\000\001-\000\000\000\000\000\000\000\000\000\000\003\198\003\199\000\000\000\000\000\000\000\000\000\000\000\000\001.\000\000\001%\000\000\001-\001\n\000\000\000\000\001\026\001!\000\000\001\020\000\254\000\000\000\000\000\000\001\005\000\000\001.\001\007\000\000\001,\001\t\004\149\001%\000\000\001-\000\000\000\000\000\000\003\191\001/\0012\001\026\001!\000\000\000\000\000\000\003\191\000\000\001.\001\026\001!\000\000\000\000\000\000\000\000\000\000\000\000\001/\0012\003H\000\000\000\000\001\021\001\005\000\000\001\022\0014\000\000\000\000\000\000\000\000\001\n\000\000\000\000\001\026\001!\000\000\000\000\000\000\001/\0012\001\005\000\000\000\000\000\000\001%\000\000\001-\000\000\000\000\003I\003=\001\006\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001.\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\001%\000\000\003\195\000\000\0035\000\000\000\000\000\000\001%\000\000\003\195\003S\000\000\000\000\000\000\001\n\003\196\000\000\001\026\001!\000\000\0035\001/\0012\003\196\001\007\000\000\005'\001\t\000\000\000\000\000\000\000\000\001%\000\000\001-\000\000\000\000\000\253\000\254\0036\0037\0038\000\000\003D\000\000\001\005\003\198\003\199\001.\003\191\003:\000\000\001\026\001!\003\198\003\199\0036\0037\0038\0035\003D\000\000\000\000\000\000\000\000\000\000\000\000\003:\000\000\000\000\001\005\0035\003E\000\000\000\000\000\000\003R\0035\001\005\001/\0012\000\255\000\000\t+\000\000\000\000\001%\000\000\001-\003E\000\000\000\000\000\000\003k\000\000\0036\0037\0038\000\000\003D\000\000\000\000\001.\001\005\000\000\000\000\003:\0036\0037\0038\000\000\003D\000\000\0036\0037\0038\000\000\003D\003:\000\000\000\000\001%\001\n\003\195\003:\001\026\001!\000\000\003E\000\253\000\254\000\000\003}\001/\0012\000\000\000\000\003\196\000\000\000\000\003E\000\000\000\000\003@\005\227\000\000\003E\000\000\000\000\000\000\003\132\0035\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\003@\000\000\000\000\000\000\000\000\000\000\0035\000\000\003\198\003\199\000\000\000\000\000\000\tj\000\000\t+\000\000\000\000\t,\000\000\000\000\001\026\001!\000\000\000\000\000\000\000\000\0036\0037\0038\000\000\003D\001\005\000\000\001%\000\000\001-\000\000\003:\003@\0035\000\000\0036\0037\0038\000\000\003D\000\000\000\000\000\000\001.\003@\000\000\003:\000\000\000\000\000\000\003@\000\000\000\000\003E\000\000\000\000\000\000\007\195\000\000\000\000\000\000\000\000\000\000\000\000\003H\000\000\000\000\000\000\003E\0036\0037\0038\003\160\003D\001/\0012\000\000\000\000\000\000\000\000\003:\003H\000\000\001%\000\000\tE\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003I\003=\000\000\001\005\tF\000\000\000\000\003\138\t,\000\000\000\000\001\026\001!\000\000\000\000\0035\000\000\003I\003=\000\000\000\000\000\000\000\000\000\000\000\000\003H\000\000\000\000\000\000\003@\000\000\003S\000\000\000\000\000\000\tG\tH\003H\000\000\000\000\000\000\000\000\000\000\003H\003@\000\000\000\000\000\000\003S\000\000\000\000\0036\0037\0038\000\000\003D\003I\003=\000\000\001\005\000\000\000\000\003:\000\000\0035\000\000\000\000\000\000\003I\003=\000\000\000\000\0035\000\000\003I\003=\000\000\000\000\003@\000\000\001%\000\000\tE\000\000\003E\000\000\000\000\003S\006#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tF\000\000\000\000\003S\0036\0037\0038\000\000\003D\003S\0035\000\000\0036\0037\0038\003:\003D\000\000\000\000\000\000\000\000\003H\000\000\003:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tG\tH\000\000\000\000\000\000\003H\003E\000\000\000\000\000\000\003\142\000\000\000\000\000\000\003E\0036\0037\0038\t\022\003D\000\000\003I\003=\000\000\001\005\000\000\003:\000\000\003@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003I\003=\000\000\003H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\140\000\000\000\000\000\000\003S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003S\000\000\000\000\003I\003=\000\000\000\000\000\000\000\000\000\000\003@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003H\000\000\000\000\003@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003I\003=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003H\000\000\000\000\000\000\000\000\003S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003I\003=\000\000\000\000\000\000\000\000\000\000\000\000\003I\003=\000\000\003H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003S\000\000\000\000\003I\003=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003S"
  
  let[@inline] goto_data =
    fun i ->
      MenhirLib.PackedIntArray.get16 goto_data i
  
  let[@inline] goto =
    fun i j ->
      let k = MenhirLib.RowDisplacementDecode.decode (goto_displacement i) in
      goto_data (k + j)
  
  let trace =
    None
  
end

module MenhirInterpreter = struct
  
  module ET = MenhirLib.TableInterpreter.MakeEngineTable (Tables)
  
  module TI = MenhirLib.Engine.Make (ET)
  
  include TI
  
  module Symbols = struct
    
    type _ terminal = 
      | T_error : unit terminal
      | T_WITH : unit terminal
      | T_WHILE : unit terminal
      | T_WHEN : unit terminal
      | T_VIRTUAL : unit terminal
      | T_VAL : unit terminal
      | T_UNDERSCORE : unit terminal
      | T_UIDENT : 
# 1257 "src/reason-parser/reason_parser.mly"
       (string)
# 71994 "src/reason-parser/reason_parser.ml"
     terminal
      | T_TYPE : unit terminal
      | T_TRY : unit terminal
      | T_TRUE : unit terminal
      | T_TO : unit terminal
      | T_TILDE : unit terminal
      | T_THEN : unit terminal
      | T_SWITCH : unit terminal
      | T_STRUCT : unit terminal
      | T_STRING : 
# 1244 "src/reason-parser/reason_parser.mly"
       (string * string option * string option)
# 72007 "src/reason-parser/reason_parser.ml"
     terminal
      | T_STAR : unit terminal
      | T_SLASHGREATER : unit terminal
      | T_SIG : unit terminal
      | T_SHARPOP : 
# 1240 "src/reason-parser/reason_parser.mly"
       (string)
# 72015 "src/reason-parser/reason_parser.ml"
     terminal
      | T_SHARPEQUAL : unit terminal
      | T_SHARP : unit terminal
      | T_SEMISEMI : unit terminal
      | T_SEMI : unit terminal
      | T_RPAREN : unit terminal
      | T_REC : unit terminal
      | T_RBRACKET : unit terminal
      | T_RBRACE : unit terminal
      | T_QUOTED_STRING_ITEM : 
# 1249 "src/reason-parser/reason_parser.mly"
  (string * Location.t * string * string option)
# 72028 "src/reason-parser/reason_parser.ml"
     terminal
      | T_QUOTED_STRING_EXPR : 
# 1247 "src/reason-parser/reason_parser.mly"
  (string * Location.t * string * string option)
# 72033 "src/reason-parser/reason_parser.ml"
     terminal
      | T_QUOTE : unit terminal
      | T_QUESTION : unit terminal
      | T_PUB : unit terminal
      | T_PRI : unit terminal
      | T_PREFIXOP : 
# 1227 "src/reason-parser/reason_parser.mly"
       (string)
# 72042 "src/reason-parser/reason_parser.ml"
     terminal
      | T_POSTFIXOP : 
# 1228 "src/reason-parser/reason_parser.mly"
       (string)
# 72047 "src/reason-parser/reason_parser.ml"
     terminal
      | T_PLUSEQ : unit terminal
      | T_PLUSDOT : unit terminal
      | T_PLUS : unit terminal
      | T_PERCENT : unit terminal
      | T_OR : unit terminal
      | T_OPEN : unit terminal
      | T_OF : unit terminal
      | T_OBJECT : unit terminal
      | T_NONREC : unit terminal
      | T_NEW : unit terminal
      | T_NATIVEINT : 
# 1216 "src/reason-parser/reason_parser.mly"
       (nativeint)
# 72062 "src/reason-parser/reason_parser.ml"
     terminal
      | T_MUTABLE : unit terminal
      | T_MODULE : unit terminal
      | T_MINUSGREATER : unit terminal
      | T_MINUSDOT : unit terminal
      | T_MINUS : unit terminal
      | T_LPAREN : unit terminal
      | T_LIDENT : 
# 1205 "src/reason-parser/reason_parser.mly"
       (string)
# 72073 "src/reason-parser/reason_parser.ml"
     terminal
      | T_LETOP : 
# 1182 "src/reason-parser/reason_parser.mly"
       (string)
# 72078 "src/reason-parser/reason_parser.ml"
     terminal
      | T_LET : unit terminal
      | T_LESSUIDENT : 
# 1199 "src/reason-parser/reason_parser.mly"
       (string)
# 72084 "src/reason-parser/reason_parser.ml"
     terminal
      | T_LESSSLASHIDENTGREATER : 
# 1236 "src/reason-parser/reason_parser.mly"
       (string)
# 72089 "src/reason-parser/reason_parser.ml"
     terminal
      | T_LESSSLASHGREATER : unit terminal
      | T_LESSIDENT : 
# 1198 "src/reason-parser/reason_parser.mly"
       (string)
# 72095 "src/reason-parser/reason_parser.ml"
     terminal
      | T_LESSGREATER : unit terminal
      | T_LESSDOTDOTGREATER : unit terminal
      | T_LESS : unit terminal
      | T_LBRACKETPERCENTPERCENT : unit terminal
      | T_LBRACKETPERCENT : unit terminal
      | T_LBRACKETLESS : unit terminal
      | T_LBRACKETGREATER : unit terminal
      | T_LBRACKETBAR : unit terminal
      | T_LBRACKETAT : unit terminal
      | T_LBRACKET : unit terminal
      | T_LBRACELESS : unit terminal
      | T_LBRACE : unit terminal
      | T_LAZY : unit terminal
      | T_INT : 
# 1186 "src/reason-parser/reason_parser.mly"
       (string * char option)
# 72113 "src/reason-parser/reason_parser.ml"
     terminal
      | T_INITIALIZER : unit terminal
      | T_INHERIT : unit terminal
      | T_INFIXOP4 : 
# 1181 "src/reason-parser/reason_parser.mly"
       (string)
# 72120 "src/reason-parser/reason_parser.ml"
     terminal
      | T_INFIXOP3 : 
# 1178 "src/reason-parser/reason_parser.mly"
       (string)
# 72125 "src/reason-parser/reason_parser.ml"
     terminal
      | T_INFIXOP2 : 
# 1177 "src/reason-parser/reason_parser.mly"
       (string)
# 72130 "src/reason-parser/reason_parser.ml"
     terminal
      | T_INFIXOP1 : 
# 1176 "src/reason-parser/reason_parser.mly"
       (string)
# 72135 "src/reason-parser/reason_parser.ml"
     terminal
      | T_INFIXOP0 : 
# 1175 "src/reason-parser/reason_parser.mly"
       (string)
# 72140 "src/reason-parser/reason_parser.ml"
     terminal
      | T_INCLUDE : unit terminal
      | T_IN : unit terminal
      | T_IF : unit terminal
      | T_GREATERRBRACE : unit terminal
      | T_GREATERDOTDOTDOT : unit terminal
      | T_GREATER : unit terminal
      | T_FUNCTOR : unit terminal
      | T_FUNCTION : unit terminal
      | T_FUN : unit terminal
      | T_FOR : unit terminal
      | T_FLOAT : 
# 1163 "src/reason-parser/reason_parser.mly"
       (string * char option)
# 72155 "src/reason-parser/reason_parser.ml"
     terminal
      | T_FALSE : unit terminal
      | T_EXTERNAL : unit terminal
      | T_EXCEPTION : unit terminal
      | T_ES6_FUN : unit terminal
      | T_EQUALGREATER : unit terminal
      | T_EQUAL : unit terminal
      | T_EOL : unit terminal
      | T_EOF : unit terminal
      | T_END : unit terminal
      | T_ELSE : unit terminal
      | T_DOWNTO : unit terminal
      | T_DOTDOTDOT : unit terminal
      | T_DOTDOT : unit terminal
      | T_DOT : unit terminal
      | T_DONE : unit terminal
      | T_DOCSTRING : 
# 1265 "src/reason-parser/reason_parser.mly"
       (string)
# 72175 "src/reason-parser/reason_parser.ml"
     terminal
      | T_DO : unit terminal
      | T_CONSTRAINT : unit terminal
      | T_COMMENT : 
# 1264 "src/reason-parser/reason_parser.mly"
       (string * Location.t)
# 72182 "src/reason-parser/reason_parser.ml"
     terminal
      | T_COMMA : unit terminal
      | T_COLONGREATER : unit terminal
      | T_COLONEQUAL : unit terminal
      | T_COLONCOLON : unit terminal
      | T_COLON : unit terminal
      | T_CLASS : unit terminal
      | T_CHAR : 
# 1142 "src/reason-parser/reason_parser.mly"
       (char)
# 72193 "src/reason-parser/reason_parser.ml"
     terminal
      | T_BEGIN : unit terminal
      | T_BARRBRACKET : unit terminal
      | T_BARBAR : unit terminal
      | T_BAR : unit terminal
      | T_BANG : unit terminal
      | T_BACKQUOTE : unit terminal
      | T_ASSERT : unit terminal
      | T_AS : unit terminal
      | T_ANDOP : 
# 1183 "src/reason-parser/reason_parser.mly"
       (string)
# 72206 "src/reason-parser/reason_parser.ml"
     terminal
      | T_AND : unit terminal
      | T_AMPERSAND : unit terminal
      | T_AMPERAMPER : unit terminal
    
    type _ nonterminal = 
      | N_with_constraint : (Ppxlib.with_constraint) nonterminal
      | N_virtual_flag : (Ppxlib.virtual_flag) nonterminal
      | N_value_type : (string Location.loc * Ppxlib.mutable_flag * Ppxlib.virtual_flag *
  Ppxlib.core_type) nonterminal
      | N_value : (string Location.loc * Ppxlib.mutable_flag * Ppxlib.class_field_kind) nonterminal
      | N_val_longident : (Ppxlib.longident) nonterminal
      | N_val_ident : (string) nonterminal
      | N_use_file_no_mapper : (Ppxlib.toplevel_phrase list) nonterminal
      | N_use_file : (Ppxlib.toplevel_phrase list) nonterminal
      | N_unattributed_expr : (Ppxlib.expression) nonterminal
      | N_unattributed_core_type : (Ppxlib.core_type) nonterminal
      | N_type_variance : (Ppxlib.variance) nonterminal
      | N_type_variables_with_variance_comma_list : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) nonterminal
      | N_type_variables_with_variance : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) nonterminal
      | N_type_variable_with_variance : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) nonterminal
      | N_type_variable : (Ppxlib.core_type) nonterminal
      | N_type_subst_other_kind : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) nonterminal
      | N_type_subst_kind : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) nonterminal
      | N_type_subst_declarations : (Ppxlib.type_declaration list) nonterminal
      | N_type_subst_constructor_declarations_aux : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) nonterminal
      | N_type_subst_constructor_declarations : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) nonterminal
      | N_type_parameters : (Ppxlib.core_type list) nonterminal
      | N_type_parameter : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) nonterminal
      | N_type_other_kind : (Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) nonterminal
      | N_type_longident : (Ppxlib_ast__Ast_helper_lite.lid) nonterminal
      | N_type_declarations : (Ppxlib.rec_flag * Ppxlib.type_declaration list * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) nonterminal
      | N_type_declaration_kind : ((Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) nonterminal
      | N_type_declaration_details : ((Ppxlib_ast__Ast_helper_lite.str *
   (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list *
   (Ppxlib.core_type * Ppxlib.core_type * Location.t) list *
   Ppxlib.type_kind * Ppxlib.private_flag * Ppxlib.core_type option) *
  Lexing.position * Ppxlib.type_declaration list) nonterminal
      | N_type_constraint : (Ppxlib.core_type option * Ppxlib.core_type option) nonterminal
      | N_toplevel_phrase : (Ppxlib.toplevel_phrase) nonterminal
      | N_toplevel_directive : (Ppxlib.toplevel_phrase) nonterminal
      | N_tag_field : (Ppxlib.row_field) nonterminal
      | N_structure_item : (Ppxlib.structure) nonterminal
      | N_structure : (Ppxlib.structure) nonterminal
      | N_string_literal_labels : (Ppxlib.object_field list) nonterminal
      | N_string_literal_label : (Ppxlib.object_field) nonterminal
      | N_string_literal_exprs_maybe_punned : ((Ppxlib.longident Location.loc * Ppxlib.expression) list) nonterminal
      | N_string_literal_expr_maybe_punned_with_comma : (Ppxlib.longident Location.loc * Ppxlib.expression) nonterminal
      | N_string_literal_expr_maybe_punned : (Ppxlib.longident Location.loc * Ppxlib.expression) nonterminal
      | N_str_type_extension : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) nonterminal
      | N_str_exception_declaration : (Ppxlib.extension_constructor) nonterminal
      | N_single_attr_id : (string) nonterminal
      | N_simple_pattern_not_ident_ : (Ppxlib.pattern) nonterminal
      | N_simple_pattern_not_ident : (Ppxlib.pattern) nonterminal
      | N_simple_pattern_ident : (Ppxlib.pattern) nonterminal
      | N_simple_pattern_direct_argument : (Ppxlib.pattern) nonterminal
      | N_simple_pattern : (Ppxlib.pattern) nonterminal
      | N_simple_module_type : (Ppxlib.module_type) nonterminal
      | N_simple_expr_template_constructor : (Ppxlib.expression) nonterminal
      | N_simple_expr_no_constructor : (Ppxlib.expression) nonterminal
      | N_simple_expr_no_call : (Ppxlib.expression) nonterminal
      | N_simple_expr_direct_argument : (Ppxlib.expression) nonterminal
      | N_simple_expr_call : (Ppxlib.expression * (Ppxlib.arg_label * Ppxlib.expression) list) nonterminal
      | N_signed_constant : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) nonterminal
      | N_signature_items : (Ppxlib.signature) nonterminal
      | N_signature_item : (Ppxlib.signature_item_desc) nonterminal
      | N_signature : (Ppxlib.signature) nonterminal
      | N_sig_type_extension : (Ppxlib.type_extension * Location.t *
  (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) nonterminal
      | N_sig_exception_declaration : (Ppxlib.type_exception) nonterminal
      | N_seq_expr_no_seq_option_SEMI__ : (Ppxlib.expression) nonterminal
      | N_seq_expr_no_seq_SEMI_ : (Ppxlib.expression) nonterminal
      | N_seq_expr_option_SEMI__ : (Ppxlib.expression) nonterminal
      | N_seq_expr_SEMI_ : (Ppxlib.expression) nonterminal
      | N_separated_nonempty_list_AMPERSAND_non_arrowed_simple_core_types_ : (Ppxlib.core_type list) nonterminal
      | N_row_field_list : (Ppxlib.row_field list) nonterminal
      | N_row_field : (Ppxlib.row_field) nonterminal
      | N_record_label_declaration : (Ppxlib.label_declaration) nonterminal
      | N_record_expr_with_string_keys : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list) nonterminal
      | N_record_expr : (Ppxlib.expression option *
  (Ppxlib.longident Location.loc * Ppxlib.expression) list) nonterminal
      | N_record_declaration : (Ppxlib.label_declaration list) nonterminal
      | N_rec_flag : (Ppxlib.rec_flag) nonterminal
      | N_protected_type : (Ppxlib.core_type) nonterminal
      | N_primitive_declaration : (string list) nonterminal
      | N_poly_type : (Ppxlib.core_type) nonterminal
      | N_payload : (Ppxlib.payload) nonterminal
      | N_pattern_without_or : (Ppxlib.pattern) nonterminal
      | N_pattern_optional_constraint : (Ppxlib.pattern) nonterminal
      | N_pattern_constructor_argument : (Ppxlib.pattern list) nonterminal
      | N_pattern_comma_list_extension : (Ppxlib.pattern list * Ppxlib.pattern option) nonterminal
      | N_pattern : (Ppxlib.pattern) nonterminal
      | N_parse_pattern : (Ppxlib.pattern) nonterminal
      | N_parse_expression : (Ppxlib.expression) nonterminal
      | N_parse_core_type : (Ppxlib.core_type) nonterminal
      | N_parenthesized_expr : (Ppxlib.expression) nonterminal
      | N_package_type : (Ppxlib.core_type) nonterminal
      | N_override_flag : (Ppxlib.override_flag) nonterminal
      | N_optional_expr_extension : (loc:Location.t -> Ppxlib.expression -> Ppxlib.expression) nonterminal
      | N_optional : (string -> Ppxlib.arg_label) nonterminal
      | N_option_type_constraint_ : ((Ppxlib.core_type option * Ppxlib.core_type option) option) nonterminal
      | N_option_preceded_COLONGREATER_core_type__ : (Ppxlib.core_type option) nonterminal
      | N_option_preceded_COLON_simple_module_type__ : (Ppxlib.module_type option) nonterminal
      | N_option_preceded_COLON_poly_type__ : (Ppxlib.core_type option) nonterminal
      | N_option_preceded_COLON_non_arrowed_core_type__ : (Ppxlib.core_type option) nonterminal
      | N_option_preceded_COLON_expr__ : (Ppxlib.expression option) nonterminal
      | N_option_preceded_COLON_core_type__ : (Ppxlib.core_type option) nonterminal
      | N_option_preceded_COLON_class_constructor_type__ : (Ppxlib.class_type option) nonterminal
      | N_option_item_extension_sugar_ : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option) nonterminal
      | N_option_constructor_arguments_ : (Ppxlib.constructor_arguments option) nonterminal
      | N_option_as_loc_preceded_AS_LIDENT___ : (string Location.loc option) nonterminal
      | N_option_SEMI_ : (unit option) nonterminal
      | N_option_OF_ : (unit option) nonterminal
      | N_option_MODULE_ : (unit option) nonterminal
      | N_option_LET_ : (unit option) nonterminal
      | N_option_DOTDOTDOT_ : (unit option) nonterminal
      | N_option_DOT_ : (unit option) nonterminal
      | N_option_COMMA_ : (unit option) nonterminal
      | N_opt_LET_MODULE_ident : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt) nonterminal
      | N_opt_LET_MODULE_REC_ident : ((Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) option *
  Ppxlib_ast__Ast_helper_lite.str_opt) nonterminal
      | N_opt_LET_MODULE : (unit) nonterminal
      | N_operator : (string) nonterminal
      | N_open_description : (Ppxlib.signature_item_desc) nonterminal
      | N_open_declaration : (Ppxlib.structure_item) nonterminal
      | N_object_record_type : (Ppxlib.core_type) nonterminal
      | N_object_label_declarations : (Ppxlib.object_field list) nonterminal
      | N_object_label_declaration : (Ppxlib.object_field) nonterminal
      | N_object_body_class_fields : (Ppxlib.class_field list) nonterminal
      | N_object_body : (Ppxlib.class_structure) nonterminal
      | N_nonrec_flag : (Ppxlib.rec_flag) nonterminal
      | N_nonempty_list_preceded_CONSTRAINT_constrain__ : ((Ppxlib.core_type * Ppxlib.core_type * Location.t) list) nonterminal
      | N_nonempty_list_name_tag_ : (string list) nonterminal
      | N_nonempty_list_attributed_ext_constructor_extension_constructor_declaration__ : (Ppxlib.extension_constructor list) nonterminal
      | N_nonempty_list_attributed_ext_constructor_either_extension_constructor_declaration_extension_constructor_rebind___ : (Ppxlib.extension_constructor list) nonterminal
      | N_nonempty_list_as_loc_preceded_QUOTE_ident___ : (string Location.loc list) nonterminal
      | N_nonempty_list_as_loc_attribute__ : (Ppxlib.attribute Location.loc list) nonterminal
      | N_nonempty_list_as_loc_LIDENT__ : (string Location.loc list) nonterminal
      | N_nonempty_list___anonymous_31_ : (string list) nonterminal
      | N_non_labeled_argument_list : (Ppxlib.expression list) nonterminal
      | N_non_arrowed_simple_core_types : (Ppxlib.core_type) nonterminal
      | N_non_arrowed_simple_core_type : (Ppxlib.core_type) nonterminal
      | N_non_arrowed_core_type : (Ppxlib.core_type) nonterminal
      | N_mutable_or_virtual_flags : (Ppxlib.mutable_flag * Ppxlib.virtual_flag) nonterminal
      | N_mutable_flag : (Ppxlib.mutable_flag) nonterminal
      | N_mty_longident : (Ppxlib.longident) nonterminal
      | N_module_type_signature : (Ppxlib.module_type) nonterminal
      | N_module_type_body_EQUAL_ : (Ppxlib.module_type) nonterminal
      | N_module_type_body_COLON_ : (Ppxlib.module_type) nonterminal
      | N_module_type : (Ppxlib.module_type) nonterminal
      | N_module_parameter : (Ppxlib.functor_parameter Location.loc) nonterminal
      | N_module_expr_structure : (Ppxlib.module_expr) nonterminal
      | N_module_expr_body : (Ppxlib.module_expr) nonterminal
      | N_module_expr : (Ppxlib.module_expr) nonterminal
      | N_module_declaration : (Ppxlib.module_type) nonterminal
      | N_module_complex_expr : (Ppxlib.module_expr) nonterminal
      | N_module_binding_body : (Ppxlib.module_expr) nonterminal
      | N_module_arguments_comma_list : (Ppxlib.module_expr list) nonterminal
      | N_module_arguments : (Ppxlib.module_expr list) nonterminal
      | N_mod_longident : (Ppxlib.longident) nonterminal
      | N_mod_ident : (string option) nonterminal
      | N_mod_ext_longident : (Ppxlib.longident) nonterminal
      | N_mod_ext_lesslongident : (Ppxlib.longident) nonterminal
      | N_mod_ext_less_apply : (Ppxlib.longident) nonterminal
      | N_mod_ext_apply : (Ppxlib.longident) nonterminal
      | N_method_ : (string Location.loc * Ppxlib.class_field_kind) nonterminal
      | N_match_case_seq_expr_option_SEMI___ : (Ppxlib.case) nonterminal
      | N_match_case_expr_ : (Ppxlib.case) nonterminal
      | N_lseparated_nonempty_list_aux_SEMI_class_sig_field_ : (Ppxlib.class_type_field list list) nonterminal
      | N_lseparated_nonempty_list_aux_SEMI_class_field_ : (Ppxlib.class_field list list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_uncurried_labeled_expr_ : ((Ppxlib.arg_label * Ppxlib.expression) list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_uncurried_arrow_type_parameter_ : (((Ppxlib.arg_label * Ppxlib.core_type) Location.loc * bool) list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_type_variable_with_variance_ : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_type_parameter_ : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_string_literal_label_ : (Ppxlib.object_field list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_string_literal_expr_maybe_punned_ : ((Ppxlib.longident Location.loc * Ppxlib.expression) list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_record_label_declaration_ : (Ppxlib.label_declaration list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_protected_type_ : (Ppxlib.core_type list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_pattern_optional_constraint_ : (Ppxlib.pattern list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_opt_spread_pattern__ : ((Location.t option * Ppxlib.pattern) list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_opt_spread_lbl_expr__ : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_opt_spread_expr_optional_constraint__ : ((Location.t option * Ppxlib.expression) list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_object_label_declaration_ : (Ppxlib.object_field list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_module_parameter_ : (Ppxlib.functor_parameter Location.loc list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_module_complex_expr_ : (Ppxlib.module_expr list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_mod_ext_longident_ : (Ppxlib.longident list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_labeled_pattern_ : (Reason_parser_def.labelled_parameter Location.loc list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_field_expr_ : ((string Location.loc * Ppxlib.expression) list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_expr_optional_constraint_ : (Ppxlib.expression list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_expr_ : (Ppxlib.expression list) nonterminal
      | N_lseparated_nonempty_list_aux_COMMA_core_type_ : (Ppxlib.core_type list) nonterminal
      | N_lseparated_nonempty_list_aux_AND_with_constraint_ : (Ppxlib.with_constraint list) nonterminal
      | N_loption_type_parameters_ : (Ppxlib.core_type list) nonterminal
      | N_loption_terminated_pattern_comma_list_option_COMMA___ : (Ppxlib.pattern list) nonterminal
      | N_loption_row_field_list_ : (Ppxlib.row_field list) nonterminal
      | N_loption_preceded_GREATER_nonempty_list_name_tag___ : (string list) nonterminal
      | N_loption_parenthesized_type_variables_with_variance_comma_list__ : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) nonterminal
      | N_loption_parenthesized_class_type_arguments_comma_list__ : (Ppxlib.core_type list) nonterminal
      | N_loption_object_label_declarations_ : (Ppxlib.object_field list) nonterminal
      | N_loption_located_attributes_ : (Ppxlib.attribute Location.loc list) nonterminal
      | N_loption_functor_parameters_ : (Ppxlib.functor_parameter Location.loc list) nonterminal
      | N_loption_class_type_parameters_ : ((Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) nonterminal
      | N_longident_type_constraint : (Ppxlib.longident Location.loc *
  (Ppxlib.core_type option * Ppxlib.core_type option) option) nonterminal
      | N_llist_aux_preceded_COMMA_opt_spread_lbl_expr___ : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.expression))
  list) nonterminal
      | N_llist_aux_match_case_seq_expr_option_SEMI____ : (Ppxlib.case list) nonterminal
      | N_llist_aux_match_case_expr__ : (Ppxlib.case list) nonterminal
      | N_list_simple_expr_no_call_ : (Ppxlib.expression list) nonterminal
      | N_list_bar_row_field_ : (Ppxlib.row_field list) nonterminal
      | N_list_attributed_ext_constructor_extension_constructor_declaration__ : (Ppxlib.extension_constructor list) nonterminal
      | N_list_attributed_ext_constructor_either_extension_constructor_declaration_extension_constructor_rebind___ : (Ppxlib.extension_constructor list) nonterminal
      | N_list_and_module_rec_declaration_ : (Ppxlib.module_declaration list) nonterminal
      | N_list_and_module_bindings_ : (Ppxlib.module_binding list) nonterminal
      | N_list_and_let_binding_ : (Ppxlib.value_binding list) nonterminal
      | N_list_and_class_type_declaration_ : (Ppxlib.class_type_declaration list) nonterminal
      | N_list_and_class_description_ : (Ppxlib.class_description list) nonterminal
      | N_list_and_class_declaration_ : (Astlib.Ast_502.Parsetree.class_declaration list) nonterminal
      | N_letop_bindings : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.binding_op list) nonterminal
      | N_letop_binding_body : (Ppxlib.pattern * Ppxlib.expression) nonterminal
      | N_let_bindings : (Reason_parser_def.let_bindings) nonterminal
      | N_let_binding_body : (Ppxlib.pattern * Ppxlib.expression * Ppxlib.value_constraint option) nonterminal
      | N_let_binding : (Reason_parser_def.let_bindings) nonterminal
      | N_lbl_pattern : (Ppxlib.longident Location.loc * Ppxlib.pattern) nonterminal
      | N_labelled_arrow_type_parameter_optional : (Ppxlib.arg_label * Ppxlib.core_type) nonterminal
      | N_labeled_pattern_constraint : (string Location.loc -> Ppxlib.pattern) nonterminal
      | N_labeled_pattern : (Reason_parser_def.labelled_parameter Location.loc) nonterminal
      | N_labeled_expr_constraint : (Ppxlib.longident Location.loc -> Ppxlib.expression) nonterminal
      | N_labeled_expr : (Ppxlib.arg_label * Ppxlib.expression) nonterminal
      | N_labeled_arguments : ((Ppxlib.arg_label * Ppxlib.expression) list) nonterminal
      | N_label_longident : (Ppxlib.longident) nonterminal
      | N_jsx_without_leading_less : (Ppxlib.expression) nonterminal
      | N_jsx_start_tag_and_args_without_leading_less : (((Ppxlib.arg_label * Ppxlib.expression) list ->
   Location.t -> Ppxlib.expression) *
  Ppxlib.longident) nonterminal
      | N_jsx_start_tag_and_args : (((Ppxlib.arg_label * Ppxlib.expression) list ->
   Location.t -> Ppxlib.expression) *
  Ppxlib.longident) nonterminal
      | N_jsx_arguments : ((Ppxlib.arg_label * Ppxlib.expression) list) nonterminal
      | N_jsx : (Ppxlib.expression) nonterminal
      | N_item_extension_sugar : (Ppxlib_ast__Ast_helper_lite.attrs * string Location.loc) nonterminal
      | N_item_extension : (Ppxlib.extension) nonterminal
      | N_interface : (Ppxlib.Parsetree.signature) nonterminal
      | N_implementation : (Ppxlib.Parsetree.structure) nonterminal
      | N_ident : (string) nonterminal
      | N_greater_spread : (string) nonterminal
      | N_generalized_constructor_arguments : (Ppxlib.constructor_arguments * Ppxlib.core_type option) nonterminal
      | N_functor_parameters : (Ppxlib.functor_parameter Location.loc list) nonterminal
      | N_fun_def_EQUALGREATER_non_arrowed_core_type_ : (Ppxlib.expression) nonterminal
      | N_fun_def_EQUAL_core_type_ : (Ppxlib.expression) nonterminal
      | N_field_expr : (string Location.loc * Ppxlib.expression) nonterminal
      | N_extension_constructor_rebind : (Ppxlib.extension_constructor) nonterminal
      | N_extension_constructor_declaration : (Ppxlib.extension_constructor) nonterminal
      | N_extension : (Astlib.Ast_502.Parsetree.extension) nonterminal
      | N_expr_optional_constraint : (Ppxlib.expression) nonterminal
      | N_expr_list_or_seq_expr : (Ppxlib.expression list) nonterminal
      | N_expr_list : (Ppxlib.expression list) nonterminal
      | N_expr_comma_seq_extension : (Ppxlib.expression list * Ppxlib.expression option) nonterminal
      | N_expr : (Ppxlib.expression) nonterminal
      | N_es6_parameters : (Reason_parser_def.labelled_parameter Location.loc list * bool) nonterminal
      | N_embedded_private_flag_ : (Ppxlib.private_flag) nonterminal
      | N_embedded___anonymous_39_ : (Ppxlib.directive_argument_desc option) nonterminal
      | N_embedded___anonymous_32_ : (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) nonterminal
      | N_embedded___anonymous_1_ : (Ppxlib.toplevel_phrase list) nonterminal
      | N_embedded___anonymous_0_ : (Ppxlib.toplevel_phrase) nonterminal
      | N_either_preceded_EQUALGREATER_expr__braced_expr_ : (Ppxlib.expression) nonterminal
      | N_either_preceded_EQUAL_expr__braced_expr_ : (Ppxlib.expression) nonterminal
      | N_either_preceded_EQUAL_class_instance_type__class_type_body_ : (Ppxlib.class_type) nonterminal
      | N_either_preceded_EQUAL_class_expr__class_body_expr_ : (Ppxlib.class_expr) nonterminal
      | N_either_parenthesized_longident_type_constraint__longident_type_constraint_ : (Ppxlib.longident Location.loc *
  (Ppxlib.core_type option * Ppxlib.core_type option) option) nonterminal
      | N_either_extension_constructor_declaration_extension_constructor_rebind_ : (Ppxlib.extension_constructor) nonterminal
      | N_either_constructor_declaration_bar_constructor_declaration_ : (Ppxlib.constructor_declaration) nonterminal
      | N_either___anonymous_11___anonymous_12_ : (Ppxlib.private_flag) nonterminal
      | N_either_ES6_FUN_FUN_ : (unit) nonterminal
      | N_direction_flag : (Ppxlib.direction_flag) nonterminal
      | N_core_type2 : (Ppxlib.core_type) nonterminal
      | N_core_type : (Ppxlib.core_type) nonterminal
      | N_constructor_declarations_aux : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) nonterminal
      | N_constructor_declarations : (Ppxlib.constructor_declaration list *
  (Ppxlib.core_type * Ppxlib.core_type * Location.t) list * Lexing.position *
  Ppxlib.type_declaration list) nonterminal
      | N_constructor_declaration : (Ppxlib.constructor_declaration) nonterminal
      | N_constructor_arguments_comma_list : (Ppxlib.core_type list) nonterminal
      | N_constructor_arguments : (Ppxlib.constructor_arguments) nonterminal
      | N_constrain_field : (Ppxlib.core_type * Ppxlib.core_type) nonterminal
      | N_constrain : (Ppxlib.core_type * Ppxlib.core_type * Location.t) nonterminal
      | N_constr_longident : (Ppxlib.longident) nonterminal
      | N_constant : (Ppxlib_ast__Ast_helper_lite.attrs * Ppxlib.constant) nonterminal
      | N_clty_longident : (Ppxlib.longident) nonterminal
      | N_class_type_declarations : (Astlib.Ast_502.Parsetree.class_type_declaration list) nonterminal
      | N_class_type_declaration_details : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_type * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) nonterminal
      | N_class_type_body : (Ppxlib.class_type) nonterminal
      | N_class_type_arguments_comma_list : (Ppxlib.core_type list) nonterminal
      | N_class_simple_expr : (Ppxlib.class_expr) nonterminal
      | N_class_sig_field : (Ppxlib.class_type_field list) nonterminal
      | N_class_sig_body_fields : (Ppxlib.class_type_field list) nonterminal
      | N_class_sig_body_cty : (Ppxlib.class_type_desc) nonterminal
      | N_class_sig_body : (Ppxlib.class_signature) nonterminal
      | N_class_self_type : (Ppxlib.core_type) nonterminal
      | N_class_self_expr : (Ppxlib.pattern) nonterminal
      | N_class_longident : (Ppxlib.longident) nonterminal
      | N_class_instance_type : (Ppxlib.class_type) nonterminal
      | N_class_field : (Ppxlib.class_field list) nonterminal
      | N_class_expr_lets_and_rest : (Ppxlib.class_expr) nonterminal
      | N_class_expr : (Ppxlib.class_expr) nonterminal
      | N_class_descriptions : (Ppxlib.class_description list) nonterminal
      | N_class_description_details : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_type * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) nonterminal
      | N_class_declaration_details : (Ppxlib_ast__Ast_helper_lite.str * Ppxlib.class_expr * Ppxlib.virtual_flag *
  (Ppxlib.core_type * (Ppxlib.variance * Ppxlib.injectivity)) list) nonterminal
      | N_class_declaration_body : (Ppxlib.class_expr) nonterminal
      | N_class_constructor_type : (Ppxlib.class_type) nonterminal
      | N_braced_expr : (Ppxlib.expression) nonterminal
      | N_boption_AMPERSAND_ : (bool) nonterminal
      | N_basic_core_type : (Ppxlib.core_type) nonterminal
      | N_bar_row_field : (Ppxlib.row_field) nonterminal
      | N_bar_constructor_declaration : (Ppxlib.constructor_declaration) nonterminal
      | N_attributed_ext_constructors_extension_constructor_declaration_ : (Ppxlib.extension_constructor list) nonterminal
      | N_attributed_ext_constructors_either_extension_constructor_declaration_extension_constructor_rebind__ : (Ppxlib.extension_constructor list) nonterminal
      | N_attribute : (Ppxlib.attribute) nonterminal
      | N_attr_id : (string Location.loc) nonterminal
      | N_arrowed_simple_core_type : (Ppxlib.core_type) nonterminal
      | N_arrow_type_parameters : (((Ppxlib.arg_label * Ppxlib.core_type) Location.loc * bool) list) nonterminal
      | N_arrow_type_parameter : (Ppxlib.arg_label * Ppxlib.core_type) nonterminal
      | N_and_type_subst_declaration : (Ppxlib.type_declaration list) nonterminal
      | N_and_type_declaration : (Ppxlib.type_declaration list) nonterminal
      | N_and_module_rec_declaration : (Ppxlib.module_declaration) nonterminal
      | N_and_module_bindings : (Ppxlib.module_binding) nonterminal
      | N_and_class_type_declaration : (Ppxlib.class_type_declaration) nonterminal
      | N_and_class_description : (Ppxlib.class_description) nonterminal
      | N_and_class_declaration : (Ppxlib.class_expr Ppxlib.class_infos) nonterminal
      | N__lbl_pattern_list : ((Location.t option * (Ppxlib.longident Location.loc * Ppxlib.pattern)) list *
  Ppxlib.closed_flag) nonterminal
    
  end
  
  include Symbols
  
  include MenhirLib.InspectionTableInterpreter.Make (Tables) (struct
    
    include TI
    
    include Symbols
    
    include MenhirLib.InspectionTableInterpreter.Symbols (Symbols)
    
    let terminal =
      fun t ->
        match t with
        | 0 ->
            X (T T_error)
        | 1 ->
            X (T T_WITH)
        | 2 ->
            X (T T_WHILE)
        | 3 ->
            X (T T_WHEN)
        | 4 ->
            X (T T_VIRTUAL)
        | 5 ->
            X (T T_VAL)
        | 6 ->
            X (T T_UNDERSCORE)
        | 7 ->
            X (T T_UIDENT)
        | 8 ->
            X (T T_TYPE)
        | 9 ->
            X (T T_TRY)
        | 10 ->
            X (T T_TRUE)
        | 11 ->
            X (T T_TO)
        | 12 ->
            X (T T_TILDE)
        | 13 ->
            X (T T_THEN)
        | 14 ->
            X (T T_SWITCH)
        | 15 ->
            X (T T_STRUCT)
        | 16 ->
            X (T T_STRING)
        | 17 ->
            X (T T_STAR)
        | 18 ->
            X (T T_SLASHGREATER)
        | 19 ->
            X (T T_SIG)
        | 20 ->
            X (T T_SHARPOP)
        | 21 ->
            X (T T_SHARPEQUAL)
        | 22 ->
            X (T T_SHARP)
        | 23 ->
            X (T T_SEMISEMI)
        | 24 ->
            X (T T_SEMI)
        | 25 ->
            X (T T_RPAREN)
        | 26 ->
            X (T T_REC)
        | 27 ->
            X (T T_RBRACKET)
        | 28 ->
            X (T T_RBRACE)
        | 29 ->
            X (T T_QUOTED_STRING_ITEM)
        | 30 ->
            X (T T_QUOTED_STRING_EXPR)
        | 31 ->
            X (T T_QUOTE)
        | 32 ->
            X (T T_QUESTION)
        | 33 ->
            X (T T_PUB)
        | 34 ->
            X (T T_PRI)
        | 35 ->
            X (T T_PREFIXOP)
        | 36 ->
            X (T T_POSTFIXOP)
        | 37 ->
            X (T T_PLUSEQ)
        | 38 ->
            X (T T_PLUSDOT)
        | 39 ->
            X (T T_PLUS)
        | 40 ->
            X (T T_PERCENT)
        | 41 ->
            X (T T_OR)
        | 42 ->
            X (T T_OPEN)
        | 43 ->
            X (T T_OF)
        | 44 ->
            X (T T_OBJECT)
        | 45 ->
            X (T T_NONREC)
        | 46 ->
            X (T T_NEW)
        | 47 ->
            X (T T_NATIVEINT)
        | 48 ->
            X (T T_MUTABLE)
        | 49 ->
            X (T T_MODULE)
        | 50 ->
            X (T T_MINUSGREATER)
        | 51 ->
            X (T T_MINUSDOT)
        | 52 ->
            X (T T_MINUS)
        | 53 ->
            X (T T_LPAREN)
        | 54 ->
            X (T T_LIDENT)
        | 55 ->
            X (T T_LETOP)
        | 56 ->
            X (T T_LET)
        | 57 ->
            X (T T_LESSUIDENT)
        | 58 ->
            X (T T_LESSSLASHIDENTGREATER)
        | 59 ->
            X (T T_LESSSLASHGREATER)
        | 60 ->
            X (T T_LESSIDENT)
        | 61 ->
            X (T T_LESSGREATER)
        | 62 ->
            X (T T_LESSDOTDOTGREATER)
        | 63 ->
            X (T T_LESS)
        | 64 ->
            X (T T_LBRACKETPERCENTPERCENT)
        | 65 ->
            X (T T_LBRACKETPERCENT)
        | 66 ->
            X (T T_LBRACKETLESS)
        | 67 ->
            X (T T_LBRACKETGREATER)
        | 68 ->
            X (T T_LBRACKETBAR)
        | 69 ->
            X (T T_LBRACKETAT)
        | 70 ->
            X (T T_LBRACKET)
        | 71 ->
            X (T T_LBRACELESS)
        | 72 ->
            X (T T_LBRACE)
        | 73 ->
            X (T T_LAZY)
        | 74 ->
            X (T T_INT)
        | 75 ->
            X (T T_INITIALIZER)
        | 76 ->
            X (T T_INHERIT)
        | 77 ->
            X (T T_INFIXOP4)
        | 78 ->
            X (T T_INFIXOP3)
        | 79 ->
            X (T T_INFIXOP2)
        | 80 ->
            X (T T_INFIXOP1)
        | 81 ->
            X (T T_INFIXOP0)
        | 82 ->
            X (T T_INCLUDE)
        | 83 ->
            X (T T_IN)
        | 84 ->
            X (T T_IF)
        | 85 ->
            X (T T_GREATERRBRACE)
        | 86 ->
            X (T T_GREATERDOTDOTDOT)
        | 87 ->
            X (T T_GREATER)
        | 88 ->
            X (T T_FUNCTOR)
        | 89 ->
            X (T T_FUNCTION)
        | 90 ->
            X (T T_FUN)
        | 91 ->
            X (T T_FOR)
        | 92 ->
            X (T T_FLOAT)
        | 93 ->
            X (T T_FALSE)
        | 94 ->
            X (T T_EXTERNAL)
        | 95 ->
            X (T T_EXCEPTION)
        | 96 ->
            X (T T_ES6_FUN)
        | 97 ->
            X (T T_EQUALGREATER)
        | 98 ->
            X (T T_EQUAL)
        | 99 ->
            X (T T_EOL)
        | 100 ->
            X (T T_EOF)
        | 101 ->
            X (T T_END)
        | 102 ->
            X (T T_ELSE)
        | 103 ->
            X (T T_DOWNTO)
        | 104 ->
            X (T T_DOTDOTDOT)
        | 105 ->
            X (T T_DOTDOT)
        | 106 ->
            X (T T_DOT)
        | 107 ->
            X (T T_DONE)
        | 108 ->
            X (T T_DOCSTRING)
        | 109 ->
            X (T T_DO)
        | 110 ->
            X (T T_CONSTRAINT)
        | 111 ->
            X (T T_COMMENT)
        | 112 ->
            X (T T_COMMA)
        | 113 ->
            X (T T_COLONGREATER)
        | 114 ->
            X (T T_COLONEQUAL)
        | 115 ->
            X (T T_COLONCOLON)
        | 116 ->
            X (T T_COLON)
        | 117 ->
            X (T T_CLASS)
        | 118 ->
            X (T T_CHAR)
        | 119 ->
            X (T T_BEGIN)
        | 120 ->
            X (T T_BARRBRACKET)
        | 121 ->
            X (T T_BARBAR)
        | 122 ->
            X (T T_BAR)
        | 123 ->
            X (T T_BANG)
        | 124 ->
            X (T T_BACKQUOTE)
        | 125 ->
            X (T T_ASSERT)
        | 126 ->
            X (T T_AS)
        | 127 ->
            X (T T_ANDOP)
        | 128 ->
            X (T T_AND)
        | 129 ->
            X (T T_AMPERSAND)
        | 130 ->
            X (T T_AMPERAMPER)
        | _ ->
            assert false
    
    let nonterminal =
      fun nt ->
        match nt with
        | 314 ->
            X (N N__lbl_pattern_list)
        | 313 ->
            X (N N_and_class_declaration)
        | 312 ->
            X (N N_and_class_description)
        | 311 ->
            X (N N_and_class_type_declaration)
        | 310 ->
            X (N N_and_module_bindings)
        | 309 ->
            X (N N_and_module_rec_declaration)
        | 308 ->
            X (N N_and_type_declaration)
        | 307 ->
            X (N N_and_type_subst_declaration)
        | 306 ->
            X (N N_arrow_type_parameter)
        | 305 ->
            X (N N_arrow_type_parameters)
        | 304 ->
            X (N N_arrowed_simple_core_type)
        | 303 ->
            X (N N_attr_id)
        | 302 ->
            X (N N_attribute)
        | 301 ->
            X (N N_attributed_ext_constructors_either_extension_constructor_declaration_extension_constructor_rebind__)
        | 300 ->
            X (N N_attributed_ext_constructors_extension_constructor_declaration_)
        | 299 ->
            X (N N_bar_constructor_declaration)
        | 298 ->
            X (N N_bar_row_field)
        | 297 ->
            X (N N_basic_core_type)
        | 296 ->
            X (N N_boption_AMPERSAND_)
        | 295 ->
            X (N N_braced_expr)
        | 294 ->
            X (N N_class_constructor_type)
        | 293 ->
            X (N N_class_declaration_body)
        | 292 ->
            X (N N_class_declaration_details)
        | 291 ->
            X (N N_class_description_details)
        | 290 ->
            X (N N_class_descriptions)
        | 289 ->
            X (N N_class_expr)
        | 288 ->
            X (N N_class_expr_lets_and_rest)
        | 287 ->
            X (N N_class_field)
        | 286 ->
            X (N N_class_instance_type)
        | 285 ->
            X (N N_class_longident)
        | 284 ->
            X (N N_class_self_expr)
        | 283 ->
            X (N N_class_self_type)
        | 282 ->
            X (N N_class_sig_body)
        | 281 ->
            X (N N_class_sig_body_cty)
        | 280 ->
            X (N N_class_sig_body_fields)
        | 279 ->
            X (N N_class_sig_field)
        | 278 ->
            X (N N_class_simple_expr)
        | 277 ->
            X (N N_class_type_arguments_comma_list)
        | 276 ->
            X (N N_class_type_body)
        | 275 ->
            X (N N_class_type_declaration_details)
        | 274 ->
            X (N N_class_type_declarations)
        | 273 ->
            X (N N_clty_longident)
        | 272 ->
            X (N N_constant)
        | 271 ->
            X (N N_constr_longident)
        | 270 ->
            X (N N_constrain)
        | 269 ->
            X (N N_constrain_field)
        | 268 ->
            X (N N_constructor_arguments)
        | 267 ->
            X (N N_constructor_arguments_comma_list)
        | 266 ->
            X (N N_constructor_declaration)
        | 265 ->
            X (N N_constructor_declarations)
        | 264 ->
            X (N N_constructor_declarations_aux)
        | 263 ->
            X (N N_core_type)
        | 262 ->
            X (N N_core_type2)
        | 261 ->
            X (N N_direction_flag)
        | 260 ->
            X (N N_either_ES6_FUN_FUN_)
        | 259 ->
            X (N N_either___anonymous_11___anonymous_12_)
        | 258 ->
            X (N N_either_constructor_declaration_bar_constructor_declaration_)
        | 257 ->
            X (N N_either_extension_constructor_declaration_extension_constructor_rebind_)
        | 256 ->
            X (N N_either_parenthesized_longident_type_constraint__longident_type_constraint_)
        | 255 ->
            X (N N_either_preceded_EQUAL_class_expr__class_body_expr_)
        | 254 ->
            X (N N_either_preceded_EQUAL_class_instance_type__class_type_body_)
        | 253 ->
            X (N N_either_preceded_EQUAL_expr__braced_expr_)
        | 252 ->
            X (N N_either_preceded_EQUALGREATER_expr__braced_expr_)
        | 251 ->
            X (N N_embedded___anonymous_0_)
        | 250 ->
            X (N N_embedded___anonymous_1_)
        | 249 ->
            X (N N_embedded___anonymous_32_)
        | 248 ->
            X (N N_embedded___anonymous_39_)
        | 247 ->
            X (N N_embedded_private_flag_)
        | 246 ->
            X (N N_es6_parameters)
        | 245 ->
            X (N N_expr)
        | 244 ->
            X (N N_expr_comma_seq_extension)
        | 243 ->
            X (N N_expr_list)
        | 242 ->
            X (N N_expr_list_or_seq_expr)
        | 241 ->
            X (N N_expr_optional_constraint)
        | 240 ->
            X (N N_extension)
        | 239 ->
            X (N N_extension_constructor_declaration)
        | 238 ->
            X (N N_extension_constructor_rebind)
        | 237 ->
            X (N N_field_expr)
        | 236 ->
            X (N N_fun_def_EQUAL_core_type_)
        | 235 ->
            X (N N_fun_def_EQUALGREATER_non_arrowed_core_type_)
        | 234 ->
            X (N N_functor_parameters)
        | 233 ->
            X (N N_generalized_constructor_arguments)
        | 232 ->
            X (N N_greater_spread)
        | 231 ->
            X (N N_ident)
        | 230 ->
            X (N N_implementation)
        | 229 ->
            X (N N_interface)
        | 228 ->
            X (N N_item_extension)
        | 227 ->
            X (N N_item_extension_sugar)
        | 226 ->
            X (N N_jsx)
        | 225 ->
            X (N N_jsx_arguments)
        | 224 ->
            X (N N_jsx_start_tag_and_args)
        | 223 ->
            X (N N_jsx_start_tag_and_args_without_leading_less)
        | 222 ->
            X (N N_jsx_without_leading_less)
        | 221 ->
            X (N N_label_longident)
        | 220 ->
            X (N N_labeled_arguments)
        | 219 ->
            X (N N_labeled_expr)
        | 218 ->
            X (N N_labeled_expr_constraint)
        | 217 ->
            X (N N_labeled_pattern)
        | 216 ->
            X (N N_labeled_pattern_constraint)
        | 215 ->
            X (N N_labelled_arrow_type_parameter_optional)
        | 214 ->
            X (N N_lbl_pattern)
        | 213 ->
            X (N N_let_binding)
        | 212 ->
            X (N N_let_binding_body)
        | 211 ->
            X (N N_let_bindings)
        | 210 ->
            X (N N_letop_binding_body)
        | 209 ->
            X (N N_letop_bindings)
        | 208 ->
            X (N N_list_and_class_declaration_)
        | 207 ->
            X (N N_list_and_class_description_)
        | 206 ->
            X (N N_list_and_class_type_declaration_)
        | 205 ->
            X (N N_list_and_let_binding_)
        | 204 ->
            X (N N_list_and_module_bindings_)
        | 203 ->
            X (N N_list_and_module_rec_declaration_)
        | 202 ->
            X (N N_list_attributed_ext_constructor_either_extension_constructor_declaration_extension_constructor_rebind___)
        | 201 ->
            X (N N_list_attributed_ext_constructor_extension_constructor_declaration__)
        | 200 ->
            X (N N_list_bar_row_field_)
        | 199 ->
            X (N N_list_simple_expr_no_call_)
        | 198 ->
            X (N N_llist_aux_match_case_expr__)
        | 197 ->
            X (N N_llist_aux_match_case_seq_expr_option_SEMI____)
        | 196 ->
            X (N N_llist_aux_preceded_COMMA_opt_spread_lbl_expr___)
        | 195 ->
            X (N N_longident_type_constraint)
        | 194 ->
            X (N N_loption_class_type_parameters_)
        | 193 ->
            X (N N_loption_functor_parameters_)
        | 192 ->
            X (N N_loption_located_attributes_)
        | 191 ->
            X (N N_loption_object_label_declarations_)
        | 190 ->
            X (N N_loption_parenthesized_class_type_arguments_comma_list__)
        | 189 ->
            X (N N_loption_parenthesized_type_variables_with_variance_comma_list__)
        | 188 ->
            X (N N_loption_preceded_GREATER_nonempty_list_name_tag___)
        | 187 ->
            X (N N_loption_row_field_list_)
        | 186 ->
            X (N N_loption_terminated_pattern_comma_list_option_COMMA___)
        | 185 ->
            X (N N_loption_type_parameters_)
        | 184 ->
            X (N N_lseparated_nonempty_list_aux_AND_with_constraint_)
        | 183 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_core_type_)
        | 182 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_expr_)
        | 181 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_expr_optional_constraint_)
        | 180 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_field_expr_)
        | 179 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_labeled_pattern_)
        | 178 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_mod_ext_longident_)
        | 177 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_module_complex_expr_)
        | 176 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_module_parameter_)
        | 175 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_object_label_declaration_)
        | 174 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_opt_spread_expr_optional_constraint__)
        | 173 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_opt_spread_lbl_expr__)
        | 172 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_opt_spread_pattern__)
        | 171 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_pattern_optional_constraint_)
        | 170 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_protected_type_)
        | 169 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_record_label_declaration_)
        | 168 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_string_literal_expr_maybe_punned_)
        | 167 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_string_literal_label_)
        | 166 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_type_parameter_)
        | 165 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_type_variable_with_variance_)
        | 164 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_uncurried_arrow_type_parameter_)
        | 163 ->
            X (N N_lseparated_nonempty_list_aux_COMMA_uncurried_labeled_expr_)
        | 162 ->
            X (N N_lseparated_nonempty_list_aux_SEMI_class_field_)
        | 161 ->
            X (N N_lseparated_nonempty_list_aux_SEMI_class_sig_field_)
        | 160 ->
            X (N N_match_case_expr_)
        | 159 ->
            X (N N_match_case_seq_expr_option_SEMI___)
        | 158 ->
            X (N N_method_)
        | 157 ->
            X (N N_mod_ext_apply)
        | 156 ->
            X (N N_mod_ext_less_apply)
        | 155 ->
            X (N N_mod_ext_lesslongident)
        | 154 ->
            X (N N_mod_ext_longident)
        | 153 ->
            X (N N_mod_ident)
        | 152 ->
            X (N N_mod_longident)
        | 151 ->
            X (N N_module_arguments)
        | 150 ->
            X (N N_module_arguments_comma_list)
        | 149 ->
            X (N N_module_binding_body)
        | 148 ->
            X (N N_module_complex_expr)
        | 147 ->
            X (N N_module_declaration)
        | 146 ->
            X (N N_module_expr)
        | 145 ->
            X (N N_module_expr_body)
        | 144 ->
            X (N N_module_expr_structure)
        | 143 ->
            X (N N_module_parameter)
        | 142 ->
            X (N N_module_type)
        | 141 ->
            X (N N_module_type_body_COLON_)
        | 140 ->
            X (N N_module_type_body_EQUAL_)
        | 139 ->
            X (N N_module_type_signature)
        | 138 ->
            X (N N_mty_longident)
        | 137 ->
            X (N N_mutable_flag)
        | 136 ->
            X (N N_mutable_or_virtual_flags)
        | 135 ->
            X (N N_non_arrowed_core_type)
        | 134 ->
            X (N N_non_arrowed_simple_core_type)
        | 133 ->
            X (N N_non_arrowed_simple_core_types)
        | 132 ->
            X (N N_non_labeled_argument_list)
        | 131 ->
            X (N N_nonempty_list___anonymous_31_)
        | 130 ->
            X (N N_nonempty_list_as_loc_LIDENT__)
        | 129 ->
            X (N N_nonempty_list_as_loc_attribute__)
        | 128 ->
            X (N N_nonempty_list_as_loc_preceded_QUOTE_ident___)
        | 127 ->
            X (N N_nonempty_list_attributed_ext_constructor_either_extension_constructor_declaration_extension_constructor_rebind___)
        | 126 ->
            X (N N_nonempty_list_attributed_ext_constructor_extension_constructor_declaration__)
        | 125 ->
            X (N N_nonempty_list_name_tag_)
        | 124 ->
            X (N N_nonempty_list_preceded_CONSTRAINT_constrain__)
        | 123 ->
            X (N N_nonrec_flag)
        | 122 ->
            X (N N_object_body)
        | 121 ->
            X (N N_object_body_class_fields)
        | 120 ->
            X (N N_object_label_declaration)
        | 119 ->
            X (N N_object_label_declarations)
        | 118 ->
            X (N N_object_record_type)
        | 117 ->
            X (N N_open_declaration)
        | 116 ->
            X (N N_open_description)
        | 115 ->
            X (N N_operator)
        | 114 ->
            X (N N_opt_LET_MODULE)
        | 113 ->
            X (N N_opt_LET_MODULE_REC_ident)
        | 112 ->
            X (N N_opt_LET_MODULE_ident)
        | 111 ->
            X (N N_option_COMMA_)
        | 110 ->
            X (N N_option_DOT_)
        | 109 ->
            X (N N_option_DOTDOTDOT_)
        | 108 ->
            X (N N_option_LET_)
        | 107 ->
            X (N N_option_MODULE_)
        | 106 ->
            X (N N_option_OF_)
        | 105 ->
            X (N N_option_SEMI_)
        | 104 ->
            X (N N_option_as_loc_preceded_AS_LIDENT___)
        | 103 ->
            X (N N_option_constructor_arguments_)
        | 102 ->
            X (N N_option_item_extension_sugar_)
        | 101 ->
            X (N N_option_preceded_COLON_class_constructor_type__)
        | 100 ->
            X (N N_option_preceded_COLON_core_type__)
        | 99 ->
            X (N N_option_preceded_COLON_expr__)
        | 98 ->
            X (N N_option_preceded_COLON_non_arrowed_core_type__)
        | 97 ->
            X (N N_option_preceded_COLON_poly_type__)
        | 96 ->
            X (N N_option_preceded_COLON_simple_module_type__)
        | 95 ->
            X (N N_option_preceded_COLONGREATER_core_type__)
        | 94 ->
            X (N N_option_type_constraint_)
        | 93 ->
            X (N N_optional)
        | 92 ->
            X (N N_optional_expr_extension)
        | 91 ->
            X (N N_override_flag)
        | 90 ->
            X (N N_package_type)
        | 89 ->
            X (N N_parenthesized_expr)
        | 88 ->
            X (N N_parse_core_type)
        | 87 ->
            X (N N_parse_expression)
        | 86 ->
            X (N N_parse_pattern)
        | 85 ->
            X (N N_pattern)
        | 84 ->
            X (N N_pattern_comma_list_extension)
        | 83 ->
            X (N N_pattern_constructor_argument)
        | 82 ->
            X (N N_pattern_optional_constraint)
        | 81 ->
            X (N N_pattern_without_or)
        | 80 ->
            X (N N_payload)
        | 79 ->
            X (N N_poly_type)
        | 78 ->
            X (N N_primitive_declaration)
        | 77 ->
            X (N N_protected_type)
        | 76 ->
            X (N N_rec_flag)
        | 75 ->
            X (N N_record_declaration)
        | 74 ->
            X (N N_record_expr)
        | 73 ->
            X (N N_record_expr_with_string_keys)
        | 72 ->
            X (N N_record_label_declaration)
        | 71 ->
            X (N N_row_field)
        | 70 ->
            X (N N_row_field_list)
        | 69 ->
            X (N N_separated_nonempty_list_AMPERSAND_non_arrowed_simple_core_types_)
        | 68 ->
            X (N N_seq_expr_SEMI_)
        | 67 ->
            X (N N_seq_expr_option_SEMI__)
        | 66 ->
            X (N N_seq_expr_no_seq_SEMI_)
        | 65 ->
            X (N N_seq_expr_no_seq_option_SEMI__)
        | 64 ->
            X (N N_sig_exception_declaration)
        | 63 ->
            X (N N_sig_type_extension)
        | 62 ->
            X (N N_signature)
        | 61 ->
            X (N N_signature_item)
        | 60 ->
            X (N N_signature_items)
        | 59 ->
            X (N N_signed_constant)
        | 58 ->
            X (N N_simple_expr_call)
        | 57 ->
            X (N N_simple_expr_direct_argument)
        | 56 ->
            X (N N_simple_expr_no_call)
        | 55 ->
            X (N N_simple_expr_no_constructor)
        | 54 ->
            X (N N_simple_expr_template_constructor)
        | 53 ->
            X (N N_simple_module_type)
        | 52 ->
            X (N N_simple_pattern)
        | 51 ->
            X (N N_simple_pattern_direct_argument)
        | 50 ->
            X (N N_simple_pattern_ident)
        | 49 ->
            X (N N_simple_pattern_not_ident)
        | 48 ->
            X (N N_simple_pattern_not_ident_)
        | 47 ->
            X (N N_single_attr_id)
        | 46 ->
            X (N N_str_exception_declaration)
        | 45 ->
            X (N N_str_type_extension)
        | 44 ->
            X (N N_string_literal_expr_maybe_punned)
        | 43 ->
            X (N N_string_literal_expr_maybe_punned_with_comma)
        | 42 ->
            X (N N_string_literal_exprs_maybe_punned)
        | 41 ->
            X (N N_string_literal_label)
        | 40 ->
            X (N N_string_literal_labels)
        | 39 ->
            X (N N_structure)
        | 38 ->
            X (N N_structure_item)
        | 37 ->
            X (N N_tag_field)
        | 36 ->
            X (N N_toplevel_directive)
        | 35 ->
            X (N N_toplevel_phrase)
        | 34 ->
            X (N N_type_constraint)
        | 33 ->
            X (N N_type_declaration_details)
        | 32 ->
            X (N N_type_declaration_kind)
        | 31 ->
            X (N N_type_declarations)
        | 30 ->
            X (N N_type_longident)
        | 29 ->
            X (N N_type_other_kind)
        | 28 ->
            X (N N_type_parameter)
        | 27 ->
            X (N N_type_parameters)
        | 26 ->
            X (N N_type_subst_constructor_declarations)
        | 25 ->
            X (N N_type_subst_constructor_declarations_aux)
        | 24 ->
            X (N N_type_subst_declarations)
        | 23 ->
            X (N N_type_subst_kind)
        | 22 ->
            X (N N_type_subst_other_kind)
        | 21 ->
            X (N N_type_variable)
        | 20 ->
            X (N N_type_variable_with_variance)
        | 19 ->
            X (N N_type_variables_with_variance)
        | 18 ->
            X (N N_type_variables_with_variance_comma_list)
        | 17 ->
            X (N N_type_variance)
        | 16 ->
            X (N N_unattributed_core_type)
        | 15 ->
            X (N N_unattributed_expr)
        | 14 ->
            X (N N_use_file)
        | 13 ->
            X (N N_use_file_no_mapper)
        | 12 ->
            X (N N_val_ident)
        | 11 ->
            X (N N_val_longident)
        | 10 ->
            X (N N_value)
        | 9 ->
            X (N N_value_type)
        | 8 ->
            X (N N_virtual_flag)
        | 7 ->
            X (N N_with_constraint)
        | _ ->
            assert false
    
    let lr0_incoming =
      "\000\000\000\006\000R\000\004\000\006\000\b\000\n\000\012\000\016\000\018\000\020\000\022\000\024\000\028\000\030\000 \000(\0006\000F\000T\000V\000X\000Z\000\\\000^\000b\000d\000n\000r\000\148\000\152\000\154\000\166\000\168\000\170\000\178\000\180\000\182\000\184\000\188\000\190\000\192\000\204\000\206\000\208\000\216\000\220\000\222\000\236\000\240\000\252\000\254\001\002\000_\000\214\002_\002_\000\185\000l\000\006\000\185\000\146\000\012\000\n\000b\001\019\000n\000\228\000\014\000\016\000l\0015\000\214\000\016\000l\001;\000l\001e\0004\000\226\0015\001e\0004\001e\0004\000\026\000n\000\234\000.\000\016\000n\0011\000\214\000\016\000n\002;\000l\000>\000@\000\016\000n\001\207\000d\000\016\000l\000\014\000\016\0004\000d\000\018\000X\000l\000\012\000\020\000\185\000\022\000\"\000H\000^\002;\000l\000\030\000\185\000n\000t\000l\001e\0004\000z\000B\000n\000n\000\158\000\198\000B\000H\000^\002;\000l\000$\000&\0004\000H\000|\000H\000^\002;\000l\000J\000L\000N\000N\000P\000h\000j\000l\000P\000n\000\198\000\128\000n\001\195\0015\001\195\000\132\002_\000\018\000\\\000\247\000\016\000l\000\014\000@\001\207\000P\000\014\000@\001\207\000j\000\014\000@\001\207\000%\0004\000)\001K\000\226\000)\001\243\000\223\000\128\000%\000\176\000'\000\198\000\016\000l\000n\000z\000\128\000\134\000\136\000\138\000\140\002_\000\020\000\185\000\134\000n\001\195\000\176\000\138\000\210\000\226\000\219\000\138\000\223\000\242\001]\000\226\000\219\000\142\0008\001]\000\223\001\233\0008\000\144\000n\000\234\000\148\000\150\000\186\000\188\000\238\000\250\001\207\000l\0004\000d\000\146\000\030\000\185\000\138\000\223\000\242\001]\000\223\000\242\000\142\000\250\001\207\000\023\000\025\000o\000*\000\250\001\207\000s\001\t\002O\000\023\000m\000q\000*\000q\000,\000\023\000m\000s\000u\000*\000q\000.\000n\000J\000f\000q\000\142\000\170\000\185\000\179\000u\000,\000u\000.\000n\000J\000f\000q\000\214\000n\000\142\000\182\000\185\000l\000\014\000\018\000n\000\026\000n\000\234\000\142\000\146\000:\000\212\000\"\000\234\000@\001\207\000@\001\207\001\001\000\194\000l\000\214\000\221\000\026\000n\000\234\000\218\000!\0007\000=\0007\000\155\000\198\000B\000\187\000\237\001\003\000!\001\011\001\r\0015\000\214\000n\001\175\000\196\001\225\002\r\002S\000\196\002\r\002]\001\003\002a\002\r\000\254\000@\001\207\002\015\000\155\001\175\002e\001I\000\226\000\221\002e\000\223\0004\002c\000\196\002\r\000\159\001\001\000\214\002\015\002\015\000n\000\234\000\159\000\210\002S\000Q\000:\000S\000\239\000\241\001\003\000\"\000\234\000\159\000n\000\234\000\159\001O\000\226\000S\001\003\000\223\001_\000\226\000\241\001\003\000\223\001\127\000:\000\214\000Q\000:\001\127\000:\000\246\000\250\001\207\001\004\002Q\000\139\001\011\001\004\000\139\000K\000\143\001\003\000\250\001\207\002Q\000\139\001\r\001\015\002S\002]\001\015\000\141\0008\000\143\001\003\000\246\000\143\001\145\002U\001\145\001\003\002U\001\145\002\015\000\254\000.\000=\000P\000\150\000\186\000d\000\016\0013\000\234\000d\000\215\000\146\000\018\000\247\000n\000l\000'\000L\000F\001\239\000\016\000l\000\146\000\145\001\003\001\019\000n\000\234\000\159\001\019\000n\000\234\000\159\001S\000\226\000\145\000\223\000:\000\151\0004\001o\000\226\002\015\000\223\002\015\002\023\0004\000\151\000\207\000\201\000\237\001\211\002\025\000\022\001\211\000l\0004\001\211\000\142\0008\001\211\000\188\001\211\000\232\001\211\000\246\001\003\001\223\000\253\001\003\000\246\001\003\001\223\000\253\001\223\000\253\001\223\000\253\000\253\001\223\000\246\001\003\001\223\001\003\000\246\001\003\001\223\001\147\001\223\001\147\001\147\001\223\001\147\001\147\002Y\000\230\000\022\001\211\000F\000l\0004\001\211\000\155\001U\000\226\000\155\000\223\0004\000\142\0008\001\211\000\188\001\211\000\212\000\232\001\211\000\246\000\016\001\211\000l\000\142\001\003\000\016\001\211\000\022\001\211\000l\0004\001\211\000\142\0008\001\211\000\188\001\211\000\232\001\211\002\021\0005\000\151\001\003\000\016\000l\000\142\000\246\002\021\000\151\002\005\000\222\002\015\000\198\002\015\002\029\000\249\001\002\000n\000'\000-\000\249\001\003\001\002\000n\000'\000/\001{\002g\002g\000/\0003\000\249\002g\001\003\002W\0003\002g\002\015\002\021\002W\000\212\0005\000\151\001\003\000\151\002\015\000\198\000F\000\146\0005\000\151\001\003\000\151\000\212\0005\000\151\001\003\000\151\000/\000;\001\002\000\016\000n\000'\000A\000C\000\249\001\003\001\002\000C\002i\002i\000C\0015\000\214\000n\000'\000L\001\239\002Y\001\199\000\247\000n\000'\000L\001\239\002Y\000C\0015\000\214\000n\000'\000L\001\239\002Y\000<\000V\000\248\000\183\000\205\0011\000\214\001\199\000d\000\018\001\207\000\198\000k\001\021\001\023\001\029\000\004\000\018\0011\000\214\000n\001\187\000'\000\198\001\239\002\015\000\249\000\230\002\015\000d\000\016\000\230\0015\000\018\001\021\000\198\001\029\0015\000\214\000\016\001\207\001\207\001\213\000\196\001\029\001\225\002]\001\029\000\230\001\029\0011\000\198\0015\000\015\001q\001\002\000\015\000\230\001\029\001\023\001\025\000r\000d\000\205\000l\000H\000N\000P\000R\000T\000h\000j\000p\000~\000\128\000\156\000\158\000\160\000\162\000\164\000\174\000\176\000\176\000\230\000\244\000\248\001\000\001\004\001\006\000\231\0004\000\025\000\234\000\159\000\130\002_\000B\000j\000\150\000\186\000l\000P\000d\0013\0004\000j\000\138\000\219\000\142\000\169\0008\001Y\000\226\000\219\000\146\000\219\001\173\000\226\000\014\000\223\002u\001\187\000\234\000\148\000l\000\192\000\250\001\207\000\250\001\207\000\025\000a\000c\000e\000i\000w\000\212\000w\002!\000\214\000w\0011\000\214\000l\0004\000i\000\163\000\232\000\163\000\254\000\025\001\225\002\031\000l\000\165\000\171\000\234\002\015\000\246\000\171\002]\000\163\001W\000\226\000\165\000\223\0004\000\138\001Y\000\223\001u\000\242\000\142\000\169\0008\000\146\002u\000:\000g\000\167\0011\002\031\000\171\0004\000\138\001u\000\242\000\142\0008\000\169\0008\000\146\002u\000:\002\031\000\163\001W\000\223\0004\000i\000\171\000\254\000\025\002u\000:\000\171\000\223\000\171\001u\000\242\000\232\0004\000l\000\163\000\226\000\163\0004\000\171\000\b\000\184\000\185\000l\000\171\000\168\000\194\000\014\000l\0004\000\214\0004\000\165\001g\000\226\001\179\000\223\0004\001\179\001g\000\223\0004\000e\001\237\000\196\000\248\000\252\000u\000l\000\214\0004\000\221\000\014\000\026\000l\000\023\000\234\000d\000\181\001\029\002\015\000\228\002\015\000\191\000E\000\189\0011\000\214\000\025\001\135\0004\000n\000\198\000\187\000\014\000E\000u\000\142\0011\000\214\000l\000R\000d\000h\0017\000\214\000\016\000l\001e\0004\001\195\0019\000l\001e\0004\001\193\000&\000\174\000\176\000\210\000q\000\142\001\197\001\225\001\235\000$\001\235\000&\001\235\000B\001\235\000L\001\235\000N\001\235\000P\001\235\000R\001\235\000T\001\235\000h\001\235\000j\001\235\000~\001\235\000\128\001\235\000\156\001\235\000\158\001\235\000\160\001\235\000\162\001\235\000\164\001\235\000\174\001\235\000\176\000\176\001\235\000\230\001\235\000\244\001\235\001\004\001\235\001\006\001\235\002\031\000s\001\t\002!\002]\001\235\001\235\000\234\001\235\0008\000s\0011\000\214\000l\000j\001\235\000p\000e\001\235\000i\000\234\002\015\000\198\001\235\000\171\000\198\001\235\001\163\0002\000p\001\163\0002\000r\000\205\0006\000\153\000c\000\234\002\015\000\198\001\235\000e\000l\0004\000\201\000\198\001\235\001\251\002O\000\214\0004\000\201\001\251\001g\000\223\0004\000\201\001\251\001g\000\223\0004\000\201\001\251\000\234\000\018\000n\001\005\001\005\000\214\002\015\000\198\001\235\001\001\000\214\002\015\000\198\001\235\000E\000\198\001\235\001\217\000\171\000\198\001\235\001\169\000\192\000\016\000\198\000l\002\031\000\022\000\198\002\031\000l\0004\000\198\002\031\000\142\0008\000\198\002\031\000\188\000\198\002\031\000\232\000\198\002\031\001\221\001\223\002\003\000]\0002\000\131\000\135\000\217\000V\000\183\000\182\000\194\001!\001%\0002\000\135\000\225\000l\000l\0004\001\029\001\031\0004\000\226\0004\001\031\0013\000\234\001\029\001a\000\226\001\031\000\223\0004\001\031\0004\001+\0002\000\135\000\229\000\205\000n\0013\001\199\0013\001\003\000p\001\163\0002\000\135\001\167\0002\000\135\001\171\001\002\001\169\001\003\001\002\001\169\001\155\001\155\001\155\001\199\000\131\001\235\0002\000\135\001\235\0002\000\135\002]\000\211\000\211\001\000\001\165\001\165\000r\000\205\000\153\001\169\000\192\002\003\000\217\000V\000\183\001%\0002\000\135\000l\000\223\001%\000\234\001\029\001!\001/\001)\001-\0004\0011\001c\000\226\001)\001\225\002\t\001\213\000\234\000l\001\031\0004\000k\000\193\000\196\001%\002]\001%\000\223\001\199\001%\0002\000\135\001\131\000\198\001%\000\234\001\029\001!\001#\001#\001\213\001\199\001%\0002\000\135\000\135\000\135\000\128\000\248\001\235\000]\0002\000\135\000\133\000\137\000\217\000V\000\183\001%\0002\000\135\001\199\001%\0002\000\135\000\225\001+\0002\000\135\001\003\000p\001\163\0002\000\135\000\217\000V\000\183\001%\0002\000\135\001\199\001%\0002\000\135\001k\000\226\001\227\001\235\000E\000\223\001\167\0002\000\135\001\199\000\131\001\235\0002\000\135\001\227\001\229\0004\001\231\001\235\0002\000\135\000\134\0015\001\195\001\189\0008\001\191\000&\000\176\001\143\000v\001\197\001\225\002\031\002!\001\209\000q\000v\000\138\001\231\000\242\000\142\0008\001\233\0008\000\144\001i\000\226\001\219\000\223\000\172\001\219\000\146\000\"\000\226\000\234\001\235\000\226\000\223\000:\000\210\001\227\0002\000\219\001\187\000\234\001\235\001[\000\226\000\219\001\187\000\234\001\235\000\223\000\226\000\"\000\234\001\235\000\199\000U\000Y\000\219\001\187\000\234\001\235\001\137\0002\000\226\000\219\001\187\000\234\001\235\000\223\001\137\0002\000\223\001Q\000\226\000Y\000\223\000W\000U\000\147\000:\000\149\000:\001\187\000\226\000\219\001\187\000\234\001\235\001\137\0002\000\223\001\137\0002\000\223\000\234\001\235\0002\000\226\000\219\001\187\000\234\001\235\001\137\0002\000\223\001\137\0002\000\223\000\223\001\143\001\143\000v\001\209\000q\000v\001\235\001\229\0004\000\134\001\189\0008\000\138\001\231\000\242\000\142\0008\001\233\0008\000\144\001i\000\223\000\172\000\146\000:\000\147\000:\000\149\000:\001\235\0008\000\198\001\235\000\214\000\142\001\235\0008\000\198\001\235\000\146\001m\000\226\001\235\000\223\000:\000\198\001\235\001\235\001\187\000\198\001\235\000s\001\185\001\181\001\227\000\023\000B\001\135\002\001\001\183\001\227\000\223\0004\001G\000\226\000\221\001\183\000\223\0004\000\142\001\235\0008\000\214\000\142\001\235\0008\000\146\001m\000\223\000:\001\187\001\235\000\234\001\015\000\196\001\235\002]\001\235\000\024\000\208\002\011\001\235\0004\000u\001\199\001\235\000N\001\235\000P\001\235\000V\000\183\000\205\001%\000d\000\018\000X\000\213\001\207\001\025\000h\001\235\000j\001\235\000l\000\232\0004\000l\001\235\000\226\001\235\0004\001\231\0004\000n\000\198\001\235\000r\000\148\000u\000\166\001%\000\170\000\185\000\179\000u\000\206\001\235\002O\000\182\000\185\000\246\000\171\000\b\001\235\000\196\001\235\000\196\000\214\001\235\001A\001\141\001A\001\215\000\184\000\185\000l\000\171\000\168\001\235\002\011\001\235\0004\000u\000\190\000\205\000\025\000\234\002\015\0002\000\198\000\"\001\007\000\157\001\007\000\194\001\237\000\196\001\235\000\234\001\015\000\196\001\235\000\234\000\166\001\029\000\190\000\205\000\025\000\234\002\015\0002\000\198\000\157\000\192\001\223\000\236\000\n\000\018\000\017\000n\000l\000P\000j\000#\000@\001\207\000+\0009\001M\000\226\0009\000\223\0004\001\133\000\146\000\012\000\n\001\019\000b\000\017\000\019\001\017\000n\000\234\002\015\0002\000D\000\017\000n\000\234\000\159\000F\000\017\000n\000\234\000\159\000r\000\154\000n\0015\000\214\000n\001\225\002#\000l\001o\000\223\002+\0004\001}\002)\002=\002]\002=\000\214\000\222\002\015\000\198\002\015\002\027\000\254\002\015\000\211\000\217\000V\000\183\0011\0002\001\003\000\012\000\019\000D\000\017\000n\000\234\000\159\000F\000\017\000n\000\234\000\159\000\154\002=\000\222\002\027\001\201\001C\0002\001\201\002/\000\211\002/\0021\0023\0025\0027\0002\0021\0023\000:\0023\000:\000\198\002=\001\253\002)\002'\001\002\002'\001\003\001\002\002'\001\157\002o\001\157\000\017\000n\001\133\000\234\002=\002M\002c\000\196\002M\002G\001\002\002G\001\003\001\002\002G\001\159\002q\001\159\0001\000?\000y\0002\000{\000}\000\127\000\129\000\225\000\198\0011\001'\001\131\000\234\001\029\001\023\001\027\000\227\001\027\001\002\0013\001\027\001\003\001\002\0013\001\027\001\151\002k\001\151\000\229\000\016\000\230\0015\000\205\0006\000n\0013\000\233\001\003\000\018\000\247\000n\000'\000L\001\239\002Y\000/\000C\0015\000\214\000n\000'\000L\001\239\002Y\001\199\000\247\000n\000'\000L\001\239\002Y\000C\0015\000\214\000n\000'\000L\001\239\002Y\000V\000\183\000\205\0011\000d\000\018\001\207\000\230\001\029\001\025\000r\000\205\000\025\000\234\000\159\000\166\001\029\000\190\000\205\000\025\000\234\002\015\0002\000\198\000\157\000\192\001\223\000\236\000\018\002'\001\157\002G\001\159\000\225\000\198\0011\001'\000\227\001\027\001\151\000\229\000\016\000\230\0015\001\201\001\201\002%\002E\000}\001\003\002\015\000\236\000\017\000n\000l\0004\000\234\002M\000\203\000\146\000D\000F\000l\000\146\000r\000\152\000u\000\154\000\183\000\236\002;\0007\001s\001\225\002\t\000l\0004\000\196\002-\001\185\002;\002C\002]\002C\000\214\0004\000\196\002C\001g\000\223\0004\000\196\002C\001g\000\223\0004\000\196\002C\002C\000\254\000n\000\209\000\222\002\027\000\211\000\217\000V\000\183\0011\0002\000\243\000\245\001\003\000\012\000\021\000\183\000b\000\n\000n\000\234\002\015\000E\000\198\001\235\001\019\000n\000\198\001\235\000E\000\198\001\235\000r\000\152\000u\000\154\000\183\002C\000\209\000\222\002\027\001\201\002\007\000\183\000\n\000n\000\234\000\159\000n\000\234\000\018\001\005\000\214\002\015\001\251\000\159\000\195\001\251\001\217\001=\001E\0002\001\003\001\201\002\007\001=\002?\000\211\001\129\000\254\000\171\0029\0002\000\243\002?\001\167\0002\002A\002C\002]\002A\002A\000:\002C\0004\000\234\002M\0004\002A\000:\000\198\002C\001\255\002K\000P\000j\000\214\0004\002K\001g\000\223\0004\002K\001M\000\223\0004\000l\0004\002K\000\214\0004\002K\001g\000\223\0004\002K\001g\000\223\0004\002K\002K\001g\000\223\0004\002K\002K\002I\001\002\002I\001\003\001\002\002I\001\161\002s\001\161\000\248\001\235\000\252\000u\000\025\000\031\000$\001\235\000&\001\235\000B\001\235\000\234\001\235\000L\001\235\000N\001\235\000P\001\235\000R\001\235\000T\001\235\000h\001\235\000j\001\235\000~\001\235\000\128\001\235\000\156\001\235\000\158\001\235\000\160\001\235\000\162\001\235\000\164\001\235\000\174\001\235\000\176\000\176\001\235\001\235\000\230\001\235\000\244\001\235\001\004\001\235\001\006\001\235\000?\000M\0002\000O\000[\000]\000u\000\142\001\235\0008\000\198\001\235\000\214\000\142\001\235\0008\000\198\001\235\000\146\001m\000\223\000:\000\198\001\235\001\187\000\198\001\235\000\225\001+\000\227\001+\001\002\0013\001+\001\003\001\002\0013\001+\001\153\002m\001\153\000\229\000\235\001\003\000\018\000\247\000n\000'\000L\001\239\000\246\001\003\002\003\000\255\001\003\000\246\001\003\002\003\000\255\002\003\000\255\002\003\000\255\000\255\002\003\000\246\001\003\002\003\001\003\000\246\001\003\002\003\001\149\002\003\001\149\001\149\002\003\001\149\001\149\002[\0015\000\214\000n\000'\000L\001\239\002[\001\199\000\247\000n\000'\000L\001\239\002[\0015\000\214\000n\000'\000L\001\239\002[\000V\000\183\000\205\001%\000d\000\018\000\213\001\207\001\025\000r\000\166\001%\000\190\000\205\000\025\000\234\002\015\0002\000\198\000\157\000\236\002I\001\161\000\031\000\225\001+\000\227\001+\001\153\001\199\000M\001\167\001\199\000M\001\201\002%\001\201\000O\000e\000\196\001\235\000\161\0008\000}\000:\000\181\000\165\000\201\001\177\000\198\000B\001\235\0004\000\234\001\015\000\197\000\196\001\235\001\249\002O\000\214\0004\000\197\001\249\001g\000\223\0004\000\197\001\249\001g\000\223\0004\000\197\001\249\001A\001\141\001\215\001\235\0008\000\146\001m\000\223\000:\001\187\000\206\001\235\000,\000u\000.\000n\000J\000f\000q\000\142\001\235\0008\000\146\000\246\000\171\000\b\001\235\000\196\000\135\000\196\000\214\000\135\001?\001\139\000:\001?\000\214\000\142\001\235\0008\000\146\001m\000\223\000:\001\187\000s\0011\000\214\000l\001\229\0004\000\134\001\189\0008\000\138\001\231\000\242\000\142\0008\001\233\0008\000\144\001i\000\223\000\172\000\146\000:\000\147\000:\000\149\000:\001\197\001\225\002\031\002!\000O\000:\001%\0004\000\234\000\181\0004\001k\000\223\0004\000u\001\235\000\172\001i\000\223\000\172\001\227\000\223\000\242\001\227\000\223\000\242\001]\000\223\000\242\001\143\000x\001\189\0008\000\226\0008\001\233\0008\000o\000\146\001?\001\139\000:\000\161\0008\000\141\0008\000\141\001w\0008\000\141\000\176\000\250\001\207\000\251\000\251\001y\0008\001U\000\223\000\176\000\226\001U\000\223\000\176\0007\000\226\001U\000\223\000\176\000\223\000\176\000\223\000\176\0015\000F\000\212\000\246\001\003\002i\000\151\001\003\000\151\002\005\000\249\002i\001\003\002\017\002W\002\017\002i\002\015\002\019\000\212\000\151\001\003\000\151\002\015\000\198\000F\000\151\001\003\000\151\002\019\000\212\000\151\001\003\000\151\002\019\002\019\000A\000n\000'\000L\001\239\002[\0015\000\214\000n\000'\000L\001\239\002[\001\199\000\247\000n\000'\000L\001\239\002[\0015\000\214\000n\000'\000L\001\239\002[\000\161\0008\001\235\001\235\000\232\0004\000l\001\235\000\226\001\235\0004\001\235\001\231\0004\000q\001\143\000x\000u\000u\001\195\000u\001\195\001\195\001\195\001\195\000o\000\146\001?\001\139\000:\001\231\0004\000o\000o\000\146\001?\001\139\000:\001\235\000\228\000\215\000\181\000\234\000\215\000\181\000\228\000\215\000\181\0004\001)\0004\001%\0004\000\181\0007\000\155\002\015\000\234\002\015\000E\000\198\001\235\000\021\000\"\000n\000\210\001\227\0002\000:\000\226\000\223\000:\000\135\000:\000\147\000:\000\149\000:\000\245\000:\001\003\0011\000\214\000n\000\179\000u\000\214\0004\001\231\0004\000\179\000u\000O\000\202\001\205\000\000\000}\000\202\001\203\000\000\000\177\002\015\000\202\000\000\000\175\001\235\000\202\000\000\000\171\000\202\000\173\000\000\000.\001\207\000\022\000\"\000\150\000\188\000\023\0011\001\241\000\202\000G\000I\0002\000M\0002\001\247\000\000\000\202\000\027\000\029\000I\0002\000\027\000M\0002\000\027\001\245\000\202\000\202"
    
    let[@inline] lr0_incoming =
      fun i ->
        MenhirLib.PackedIntArray.get16 lr0_incoming i
    
    let rhs_data =
      "\001\205\001\203\000\177\000\175\000\173\000G\000\029\000\219\001\173\000\219\001\173\000\226\000\219\001\173\000\226\000\014\000\223\000\219\001\173\000\226\002u\001\002\002I\001\003\001\002\002I\001\002\002G\001\003\001\002\002G\001\002\002'\001\003\001\002\002'\001\002\0013\001+\001\003\001\002\0013\001+\001\002\0013\001\027\001\003\001\002\0013\001\027\001\002\000C\001\003\001\002\000C\001\002\000n\000'\000/\001\003\001\002\000n\000'\000/\000\155\000\026\000n\000\234\000\155\001\175\000l\001I\000\223\0004\000\194\002c\000\196\002\r\001\175\000\196\002\r\002S\000\196\002\r\000_\000_\000\214\002_\000\140\002_\000\161\0008\000\218\002\003\001\149\000\255\001\223\001\147\000\253\000\246\002\021\001\003\000\246\002\021\000\246\000\143\001\003\000\246\000\143\000=\0007\000.\002;\0007\000@\001\207\000.\002;\000\014\000=\000\237\000\138\000\141\0008\000\142\000\141\0008\000\136\001w\0008\000\134\000\141\001y\0008\001\225\001\004\000\146\000\135\000:\000\146\000\210\001\227\000\223\000:\000\146\000\210\001\227\0002\000:\000\146\000\149\000:\000\146\000\147\000:\000\146\000\245\000:\002=\002c\000\196\002M\000\203\001\255\000\017\000n\002K\000\017\000n\000l\0004\002K\000\017\000n\000l\001g\000\223\0004\002K\000\017\000n\000l\000\214\0004\002K\000\017\000n\000l\000\214\001g\000\223\0004\002K\000\017\000n\000l\001M\000\223\0004\002K\000\017\000n\000l\001M\000\223\0004\000l\0004\002K\000\017\000n\000l\001M\000\223\0004\000l\001g\000\223\0004\002K\000\017\000n\000l\001M\000\223\0004\000l\000\214\0004\002K\000\017\000n\000l\001M\000\223\0004\000l\000\214\001g\000\223\0004\002K\000\017\000n\001\133\000\234\002M\000\236\002G\001\159\001\003\000\236\002G\001\159\002-\002\t\000l\0004\000\196\002C\002\t\000l\001g\000\223\0004\000\196\002C\002\t\000l\000\214\0004\000\196\002C\002\t\000l\000\214\001g\000\223\0004\000\196\002C\002-\001\185\002]\002C\000\236\002;\001s\001\225\002C\001\167\0002\002A\000\245\000\217\000V\000\183\0011\0002\002A\000\154\000\183\002C\000\209\001\003\000\154\000\183\002C\000\209\000\012\000\021\001\003\000\012\000\021\002\007\001=\001\003\002\007\001=\000\222\002\027\001\003\000\222\002\027\000\152\000u\001\003\000\152\000u\001\201\001\003\001\201\001\003\002#\001}\002]\002=\002)\001\225\000n\0011\000\214\000n\000\254\000\171\000\254\002\015\0027\0027\0002\0021\0021\0025\000\217\000V\000\183\0011\0002\0023\000\211\001C\000\211\000\154\002=\001\003\000\154\002=\000\012\000\019\001\003\000\012\000\019\000F\000\017\000n\000\234\000\159\001\003\000F\000\017\000n\000\234\000\159\000D\000\017\000n\000\234\000\159\001\003\000D\000\017\000n\000\234\000\159\000\222\002\027\001\003\000\222\002\027\001\201\001\003\001\201\001\003\002;\000\146\002A\000:\000l\002C\000\234\002M\0004\000l\002C\0004\001o\000\223\000\146\0023\000:\000\146\000\214\0023\000:\000\017\000n\001\133\001\253\000\236\000\018\002'\001\157\001\003\000\236\000\018\002'\001\157\000n\0015\000\214\000n\000\150\000\238\000\186\000\"\0011\000\142\0008\000l\0004\000\188\000\022\002\015\000\198\002\015\002\015\000\198\002\015\000\237\000\151\000l\000\151\0004\000l\002\023\0004\001o\000\223\000\016\001\211\000\142\0008\001\211\000l\0004\001\211\000\232\001\211\000\188\001\211\000\022\001\211\001\003\000\016\001\211\001\003\000\142\0008\001\211\001\003\000l\0004\001\211\001\003\000\232\001\211\001\003\000\188\001\211\001\003\000\022\001\211\000\246\002i\002\005\002\017\002W\002\017\002i\000\249\002i\002\r\002\r\000\254\000@\001\207\000!\001\003\000!\000\024\000\208\000\194\000\182\000D\000F\002\021\002W\001\223\001\221\000l\001\135\0004\001\135\000\198\002C\000\146\002A\000:\000\198\002=\002)\000\198\001\235\002O\000\196\001\235\002O\000\202\000M\0002\000I\0002\000\202\000M\0002\000\027\000I\0002\000\027\000M\000\202\000I\000\202\000@\001\207\000\014\000P\000@\001\207\000P\000\014\000j\000@\001\207\000j\000\014\000\"\000\150\000\023\0011\000\188\000\022\000F\000l\0004\000l\001g\000\223\0004\000l\000\214\0004\000l\000\214\001g\000\223\0004\000\014\000e\000u\000\182\000\185\001\215\000\194\001\237\000\196\001\235\000\194\001\237\000\234\001\015\000\196\001\235\000\182\000\185\001A\001\141\000\030\000\185\000o\000\146\001?\001\139\000:\000\020\000\185\000o\000\146\001?\001\139\000:\000\170\000\185\000\179\000u\000\170\000\185\000\179\000u\000\206\001\235\000\006\000\185\000\179\000u\000\184\000\185\000l\000\171\000\168\001\235\002\011\001\235\0004\000u\000l\000\232\0004\000l\001\235\000\226\001\235\0004\001\235\000\176\001\235\001\235\000\164\001\235\001\235\000\162\001\235\001\235\000\160\001\235\001\235\000\158\001\235\001\235\000&\001\235\001\235\000\156\001\235\001\235\000P\001\235\001\235\000N\001\235\001\235\000j\001\235\001\235\000h\001\235\001\235\000$\001\235\001\235\000\128\001\235\001\235\000T\001\235\001\235\000\244\001\235\001\235\001\004\001\235\001\235\001\006\001\235\001\235\000\230\001\235\001\235\000L\001\235\001\235\000R\001\235\001\235\000\174\001\235\001\235\000~\001\235\001\235\000\176\000\176\001\235\000j\001\235\000h\001\235\000P\001\235\000N\001\235\000\248\001\235\000u\000\214\001\187\000\198\001\235\000u\000\142\001\235\0008\000\198\001\235\000u\000\214\000\142\001\235\0008\000\198\001\235\000u\000\214\000\146\001m\000\223\000:\000\198\001\235\000n\000\198\001\235\000\252\000u\000\148\000u\001\235\000B\001\235\000\234\001\235\002]\001\235\001]\000\223\001k\000\223\001\231\000\137\001\235\001\235\000E\000\132\002_\000\161\0008\000>\000\016\001\211\000\142\0008\001\211\000l\0004\001\211\000\232\001\211\000\188\001\211\000\022\001\211\000\016\000\198\002\031\000\142\0008\000\198\002\031\000l\0004\000\198\002\031\000\232\000\198\002\031\000\188\000\198\002\031\000\022\000\198\002\031\000n\000\234\001\235\000n\000l\0004\000\201\001\251\000l\001g\000\223\0004\000\201\001\251\000l\000\214\0004\000\201\001\251\000l\000\214\001g\000\223\0004\000\201\001\251\000l\0004\000\197\001\249\000l\001g\000\223\0004\000\197\001\249\000l\000\214\0004\000\197\001\249\000l\000\214\001g\000\223\0004\000\197\001\249\000l\0004\000l\001\031\0004\000l\001\031\000\226\0004\000l\001\031\000\226\001a\000\223\0004\000\207\000\201\000\174\000\176\000\210\000\016\000n\000O\000\202\000}\000\202\000\130\002_\000\161\0008\000<\000R\002_\000|\001\143\000x\001\193\000&\001\193\000\176\001\143\000v\001\193\001\209\000q\000v\000n\000\198\000B\000u\001\195\000B\000n\001\195\000n\000\198\000u\001\195\000n\001\195\000\158\000z\001\195\000\128\000n\001\195\000\128\0015\001\195\0017\001\195\0015\001\195\000n\001\195\000\176\001\143\000x\001\191\000&\001\191\000\176\001\143\000v\001\191\001\209\000q\000v\000n\0011\000\214\000n\000s\000l\000\223\0004\000l\001G\000\223\0004\000l\000\214\0004\001\227\000\026\002\001\000\026\000\023\000B\000\026\000n\000\198\000\187\001\181\000\026\000n\000\198\000\187\000\014\000\014\001\227\000E\000\026\000n\001\177\000\026\000n\001\177\000\198\001\235\000\026\000n\001\177\000\198\000B\000\165\000\018\000n\000\254\000\165\000\201\000\026\000n\000\234\000\155\000\198\000\187\001\187\000\234\000\171\001\187\001\187\000\254\000\025\000r\000\205\000\153\001\169\001\003\000r\000\205\000\153\001\169\000e\000E\000\198\001\235\000e\001\217\000e\000\234\001\001\000\214\002\015\000\198\001\235\000e\000\234\000\018\001\005\000\214\002\015\000\198\001\235\000\171\000\198\001\235\000c\000\234\002\015\000\198\001\235\001\171\001\155\000e\001\235\000i\000\234\002\015\000\198\001\235\000\171\000\198\001\235\001\165\001\163\001\000\001\165\002s\001\161\002q\001\159\002o\001\157\001\002\001\169\001\155\001\003\001\002\001\169\001\155\002m\001\153\002k\001\151\000\246\002\003\001\149\000\246\001\003\002\003\001\149\001\003\000\246\002\003\001\149\001\003\000\246\001\003\002\003\001\149\000\246\001\223\001\147\000\246\001\003\001\223\001\147\001\003\000\246\001\223\001\147\001\003\000\246\001\003\001\223\001\147\002U\001\145\000q\001\143\001\141\001A\001\139\001?\001\137\000\226\000\219\001\187\000\234\001\235\001\137\000\226\000\219\001\187\000\023\000\189\000l\001M\000\223\0004\001\213\001\003\000\239\000l\002+\0004\000l\000%\0004\000\176\000\251\000\141\001Y\000\223\0007\000\015\001q\001\002\000\015\002\015\001o\000\226\002\015\001\235\001m\000\226\001\235\001\227\001k\000\226\001\227\001\219\001i\000\226\001\219\001\179\001g\000\226\001\179\0015\001e\000\226\0015\001)\001c\000\226\001)\001\031\001a\000\226\001\031\000\241\001_\000\226\000\241\000\219\001\227\001]\000\226\000\219\001\227\000\219\001\187\000\234\001\235\000\219\001\187\001[\000\226\000\219\001\187\000\234\001\235\001[\000\226\000\219\001\187\000\219\000\171\001Y\000\226\000\219\000\171\000\165\001W\000\226\000\165\000\155\001U\000\226\000\155\000\145\001S\000\226\000\145\000Y\001Q\000\226\000Y\000S\001O\000\226\000S\0009\001M\000\226\0009\000)\001K\000\226\000)\000\221\002e\001I\000\226\000\221\002e\000\221\001\183\001G\000\226\000\221\001\183\002?\001E\0002\002?\002/\001C\0002\002/\000\246\000\171\000\196\001\235\000\246\000\171\000\b\001\235\000\196\001\235\000\246\000\171\000\196\000\214\000\246\000\171\000\196\000\135\000\246\000\171\000\b\001\235\000\196\000\135\000\246\000\171\000\196\000\214\000\183\000\n\000n\000\234\000\159\000\183\000n\001\217\000\183\000n\000\195\001\251\000\183\000n\000\234\000\018\001\005\000\214\002\015\001\251\000\016\000l\001e\0004\0015\000\214\000\016\000l\001e\0004\001;\000l\001e\0004\000t\000l\001e\0004\0017\000\214\000\016\000l\001e\0004\0019\000l\001e\0004\000t\0017\000\214\000\016\0019\000\016\0015\000\214\000\016\001;\000\016\000\014\000\016\0011\000\214\000\016\001!\000l\001-\0004\000\223\001c\000\223\001\131\001#\001\131\000\234\001\029\001#\001%\001%\000\234\001\029\000\012\001\235\000\012\001\235\000\234\000\215\000\181\000\012\001\235\000\234\000\215\000\181\000\228\000\215\000\181\000\012\001\235\000\228\000\215\000\181\001\131\001\027\0011\001!\000l\001)\0004\000l\0004\001\225\002\t\001\213\000\193\000\196\001%\001%\001/\002]\001%\000\198\001%\001!\000\146\000O\000:\000l\0004\0013\000\234\001\029\001\029\001\029\000\004\001q\000k\002]\001\029\001\213\000\196\001\029\000\234\001\029\001\023\000\198\001\029\001\023\000\146\000}\000:\001\207\0015\000\214\001\207\000b\000\n\001\019\000b\000\017\001\r\002]\001\015\001\011\002S\0007\000l\001k\000\223\0004\000l\0004\000\"\000\"\001\007\000n\000n\001\005\002]\002]\001\003\000@\001\207\000@\001\207\001\001\000\246\002\003\000\246\001\003\002\003\001\003\000\246\002\003\001\003\000\246\001\003\002\003\000\246\002\003\000\255\000\246\001\003\002\003\000\255\001\003\000\246\002\003\000\255\001\003\000\246\001\003\002\003\000\255\000\246\001\223\000\246\001\003\001\223\001\003\000\246\001\223\001\003\000\246\001\003\001\223\000\246\001\223\000\253\000\246\001\003\001\223\000\253\001\003\000\246\001\223\000\253\001\003\000\246\001\003\001\223\000\253\000\250\001\207\000\250\001\207\000\251\000\222\002\029\000\222\002\029\000\249\000\\\001\129\0029\001\129\0029\0002\000\243\000\243\000\211\001E\000\211\000n\001\003\000n\000n\000\234\000\159\001\003\000n\000\234\000\159\000\210\002S\001_\000\223\000\146\000:\000\146\000\214\000Q\000:\000\146\000\212\000Q\000:\000\146\000\214\001\127\000:\000\146\000\212\001\127\000:\000V\000\183\000\205\001%\001\003\000V\000\183\000\205\001%\000V\000\183\000\205\0011\001\003\000V\000\183\000\205\0011\000H\000J\000\248\000\176\000\164\000\162\000\160\000\158\000&\000\156\000P\000N\000j\000h\000$\000\128\000T\000\244\001\004\001\006\000\230\000L\000R\000\174\000~\000\176\000\176\000p\001\000\000d\000r\000d\000\229\000\205\0006\0013\000\229\000\205\0006\000n\000\229\001\199\0013\000\229\0013\000\229\000\205\000n\000\226\000\214\000\210\000r\000d\000X\0002\000\254\000n\002\025\001\199\000\234\002M\000\234\002\015\000\234\001\235\000\234\001\015\000\234\000\159\000\234\000k\000\228\002\015\000E\000B\001\199\000\248\001\029\002O\000l\000\214\0004\000l\001\231\0004\002\015\000\202\001\235\000\202\000\171\000\202\000\163\000\171\000\246\000\171\001Y\000\223\000g\000l\001W\000\223\0004\000\171\000\171\000\234\002\015\000d\0013\000\234\000\215\000\181\000i\000\163\000\254\000\025\002\031\000\167\000\250\001\207\000i\000\163\000\232\000\163\000l\000\232\0004\000l\000\163\000\226\000\163\0004\000\192\000\163\000\148\000i\002]\000\163\000O\000\234\000}\000\234\002\015\000B\000\171\000B\000\171\000\b\001\235\000e\000\196\001\235\002\015\001\001\000\214\002\015\001\007\000d\000\181\002\015\0006\000\146\001S\000\223\000:\000\210\001\227\000\226\000\219\001\187\000\234\001\235\001\137\000\223\000\210\001\227\000\226\000\219\001\187\001\137\000\223\000\210\001\227\0002\001[\000\223\000\210\001\227\000\226\000\219\001\187\000\234\001\235\001\137\0002\000\210\001\227\000\226\000\219\001\187\001\137\0002\001\187\000\234\001\235\000\223\001\187\000\234\001\235\0002\001\187\000\234\001\235\000\226\000\219\001\187\000\234\001\235\001\137\000\223\001\187\000\234\001\235\000\226\000\219\001\187\001\137\000\223\001\187\000\226\000\219\001\187\000\234\001\235\001\137\000\223\001\187\000\226\000\219\001\187\001\137\000\223\001\187\000\234\001\235\000\226\000\219\001\187\000\234\001\235\001\137\0002\001\187\000\234\001\235\000\226\000\219\001\187\001\137\0002\001\187\000\226\000\219\001\187\000\234\001\235\001\137\0002\001\187\000\226\000\219\001\187\001\137\0002\000\210\001\227\000\226\000U\000\"\000\234\001\235\000\223\000W\000U\001\019\000n\001\003\001\019\000n\001\019\000n\000\234\000\159\001\003\001\019\000n\000\234\000\159\000K\001\015\000\143\001\145\002U\001\145\001\011\001\011\001\004\000\139\000\133\001\199\000\131\001\235\0002\000\135\001\199\001\235\0002\000\135\000\131\001\199\000\131\001\235\0002\000\135\001\199\001\235\0002\000\135\001\235\0002\000\225\001+\0002\000\135\000\217\000V\000\183\001%\0002\000\135\001\003\000\217\000V\000\183\001%\0002\000\135\000\217\000V\001\199\001%\0002\000\135\001\003\000\217\000V\001\199\001%\0002\000\135\000]\0002\000\135\001\167\0002\000\135\001\167\0002\000p\001\163\0002\000\135\001\003\000p\001\163\0002\000\135\001\235\000\211\000\225\001+\0002\000\135\000\217\000V\000\183\001%\0002\000\135\001\003\000\217\000V\000\183\001%\0002\000\135\000\217\000V\001\199\001%\0002\000\135\001\003\000\217\000V\001\199\001%\0002\000\135\000]\0002\000\135\001\167\0002\000\135\001\167\000\211\000p\001\163\0002\000\135\001\003\000p\001\163\0002\000\135\000\192\001\223\001\003\000\192\001\223\000\018\000\247\000n\000'\000L\001\239\002Y\000\018\000\247\0015\000\214\000n\000'\000L\001\239\002Y\001\003\000\018\000\247\000n\000'\000L\001\239\002Y\001\003\000\018\000\247\0015\000\214\000n\000'\000L\001\239\002Y\000\018\001\199\000\247\000n\000'\000L\001\239\002Y\000\018\001\199\000\247\0015\000\214\000n\000'\000L\001\239\002Y\001\003\000\018\001\199\000\247\000n\000'\000L\001\239\002Y\001\003\000\018\001\199\000\247\0015\000\214\000n\000'\000L\001\239\002Y\000y\000y\0002\000}\000r\000\205\000\025\000\234\000\159\001\003\000r\000\205\000\025\000\234\000\159\000\190\000\205\000\025\000\234\002\015\000\198\000\157\001\003\000\190\000\205\000\025\000\234\002\015\000\198\000\157\000\190\000\205\000\025\000\234\002\015\0002\001\003\000\190\000\205\000\025\000\234\002\015\0002\000?\0001\000\127\000\129\000\225\001'\001\003\000\225\001'\000\225\000\198\0011\001\003\000\225\000\198\0011\000\229\000\016\000\230\0015\001\003\000\229\000\016\000\230\0015\000\227\001\027\001\151\001\003\000\227\001\027\001\151\000d\000\018\001\207\001\003\000d\000\018\001\207\000d\000\018\001\207\001\025\001\003\000d\000\018\001\207\001\025\000d\000\018\001\207\000\230\001\029\001\003\000d\000\018\001\207\000\230\001\029\000\233\000\166\001\029\001\003\000\166\001\029\002E\002%\001\201\001\003\001\201\000{\001\003\002!\000j\000\150\000j\000\186\000P\000\150\000P\000\186\000\023\002!\001\197\000s\000\138\000\223\000\242\000\138\001]\000\223\000\242\002\031\000\250\001\207\000l\001\231\0004\000u\000J\0011\000\214\000l\001\229\0004\000u\000\214\001\187\0011\000\214\000\146\000:\000u\000\142\001\235\0008\000u\000\214\000\142\001\235\0008\000u\000\214\000\146\001m\000\223\000:\0011\000\214\000\146\000\149\000:\0011\000\214\000\146\000\147\000:\0011\000\214\000\138\001\231\000\242\0011\000\214\000\134\001\189\0008\0011\000\214\000\142\0008\0011\000\214\000\142\001\233\0008\000H\000u\000^\002;\0011\000\214\000\144\001i\000\223\000\172\000u\000.\000n\000u\000*\000q\000u\000,\000u\000u\000f\000q\001\225\000u\001\185\000\142\001\233\0008\000m\002O\000\134\001\189\000\226\001\233\0008\000\134\001\189\0008\000\134\001\189\000\226\0008\000\144\001i\000\223\000\172\000\144\000\172\000l\000d\001%\0004\000l\000d\001%\000\234\000\181\0004\000\023\002!\001\197\000s\000\138\000\223\000\242\000\138\001]\000\223\000\242\002\031\000\250\001\207\000l\001\231\0004\000q\000J\0011\000\214\000l\001\229\0004\000q\000\214\001\187\0011\000\214\000\146\000:\000q\000\142\001\235\0008\000q\000\214\000\142\001\235\0008\000q\000\214\000\146\001m\000\223\000:\0011\000\214\000\146\000\149\000:\0011\000\214\000\146\000\147\000:\0011\000\214\000\138\001\231\000\242\0011\000\214\000\134\001\189\0008\0011\000\214\000\142\0008\0011\000\214\000\142\001\233\0008\000H\000q\000^\002;\0011\000\214\000\144\001i\000\223\000\172\000q\000.\000n\000q\000*\000q\000q\000,\000u\000q\000f\000q\001\225\000m\000\023\002!\001\197\000s\000\138\000\223\000\242\000\138\001]\000\223\000\242\002\031\000\250\001\207\000l\001\231\0004\000o\000J\0011\000\214\000l\001\229\0004\000o\000\214\001\187\0011\000\214\000\146\000:\000o\000\142\001\235\0008\000o\000\214\000\142\001\235\0008\000o\000\214\000\146\001m\000\223\000:\0011\000\214\000\146\000\149\000:\0011\000\214\000\146\000\147\000:\0011\000\214\000\138\001\231\000\242\0011\000\214\000\134\001\189\0008\0011\000\214\000\142\0008\0011\000\214\000\142\001\233\0008\000H\000o\000^\002;\0011\000\214\000\144\001i\000\223\000\172\000o\000.\000n\000o\000*\000q\000o\000,\000u\000o\000f\000q\001\225\002\031\001\t\002\031\000s\000\250\001\207\001\t\000\250\001\207\000s\000l\001\031\0004\001\023\001\021\001\225\000l\000d\000\018\000X\001%\0004\000e\000c\002\031\000\146\002u\000:\000\142\000\169\0008\000\138\001u\000\242\000\025\000\014\000w\000w\000\212\000w\000w\000\214\000w\002\031\000\250\001\207\000.\000=\000l\001W\000\223\0004\000l\000d\0013\0004\000a\001\225\000\146\002u\000:\000\142\000\169\0008\000\138\001u\000\242\0011\000\214\000\146\002u\000:\0011\000\214\000\142\000\169\0008\0011\000\214\000\138\001u\000\242\0011\000\214\000l\000\171\0004\0011\000\214\000\142\0008\0011\000\214\000l\0004\000n\000\016\001\002\000\254\000\252\000\240\000\236\000\222\000\220\000\216\000\208\000\206\000\204\000\192\000\190\000\188\000\184\000\182\000\180\000\178\000\170\000\168\000\166\000\154\000\152\000\148\000r\000\030\000d\000b\000^\000\\\000Z\000X\000V\000T\000F\0006\000(\000 \000\028\000\024\000\022\000\020\000\018\000\012\000\n\000\b\000\006\000\004\000\192\002\003\001\003\000\192\002\003\000\018\000\247\000n\000'\000L\001\239\002[\000\018\000\247\0015\000\214\000n\000'\000L\001\239\002[\001\003\000\018\000\247\000n\000'\000L\001\239\002[\001\003\000\018\000\247\0015\000\214\000n\000'\000L\001\239\002[\000\018\001\199\000\247\000n\000'\000L\001\239\002[\000\018\001\199\000\247\0015\000\214\000n\000'\000L\001\239\002[\001\003\000\018\001\199\000\247\000n\000'\000L\001\239\002[\001\003\000\018\001\199\000\247\0015\000\214\000n\000'\000L\001\239\002[\000\"\000\199\000\"\000\226\000\"\000\234\001\235\000\226\001Q\000\223\000\"\000\234\000\159\001\003\000\"\000\234\000\159\001O\000\223\000M\000M\0002\000O\000\031\001\003\000\031\001\199\000M\001\003\001\199\000M\000\190\000\205\000\025\000\234\002\015\000\198\000\157\001\003\000\190\000\205\000\025\000\234\002\015\000\198\000\157\000\190\000\205\000\025\000\234\002\015\0002\001\003\000\190\000\205\000\025\000\234\002\015\0002\000?\000[\000]\000\225\001+\001\003\000\225\001+\000\227\001+\001\153\001\003\000\227\001+\001\153\000d\000\018\000\213\001\207\001\003\000d\000\018\000\213\001\207\000d\000\018\000\213\001\207\001\025\001\003\000d\000\018\000\213\001\207\001\025\000\235\000\236\002I\001\161\001\003\000\236\002I\001\161\002%\000\166\001%\001\003\000\166\001%\001\201\001\003\001\201\001\167\001\003\000\250\001\207\002Q\000\139\001\003\000\250\001\207\002Q\000\139\000\250\001\207\001\003\000\250\001\207\000.\001\207\001\241\001\247\000\234\002\015\000\191\000\228\002\015\000\234\000d\000\181\000\016\000'\000A\000n\000'\000A\000\198\002\019\000\198\000F\002\019\000\198\002\015\000\198\002\019\000\198\002\015\000\198\000F\002\019\000;\002i\000;\000\249\002i\000\018\000\247\000C\001\003\000\018\000\247\000C\000\018\001\199\000\247\000C\001\003\000\018\001\199\000\247\000C\000n\0015\000\214\000n\000\198\002\015\000\198\000F\002\015\000\198\000\151\000\198\001\003\000\151\000\198\000F\000\151\000\198\000F\001\003\000\151\000\198\000\212\000\198\000F\000\212\000\198\002\015\000\198\000\212\000\198\002\015\000\198\000\151\000\198\002\015\000\198\001\003\000\151\000\198\002\015\000\198\000F\000\151\000\198\002\015\000\198\000F\001\003\000\151\000#\000+\000l\001U\000\223\0004\000\128\001U\000\223\000\176\000z\000\223\000\176\000z\0007\000\223\000\176\000z\000\226\001U\000\223\000\176\000z\0007\000\226\001U\000\223\000\176\002\005\0003\002W\0003\002g\000\249\002g\000\018\000\247\000n\000'\000/\001\003\000\018\000\247\000n\000'\000/\000\230\0005\000\230\000F\0005\000\230\002\015\000\198\0005\000\230\002\015\000\198\000F\0005\000-\002g\000-\000\249\002g\000\230\002\015\000\230\000F\002\015\000\230\000\151\000\230\001\003\000\151\000\230\000F\000\151\000\230\000F\001\003\000\151\000\230\000\212\000\230\000F\000\212\000\230\002\015\000\198\000\212\000\230\002\015\000\198\000\151\000\230\002\015\000\198\001\003\000\151\000\230\002\015\000\198\000F\000\151\000\230\002\015\000\198\000F\001\003\000\151\000@\001\207\001\243\001{\000\128\000%\000\176\001K\000\223\000P\000j\001\r\002a\000u\000\182\000\185\001\215\000\194\001\237\000\196\001\235\000\194\001\237\000\234\001\015\000\196\001\235\000\182\000\185\001A\001\141\000\030\000\185\000o\000\146\001?\001\139\000:\000\020\000\185\000o\000\146\001?\001\139\000:\000\170\000\185\000\179\000u\000\170\000\185\000\179\000u\000\206\001\235\000\006\000\185\000\179\000u\000\184\000\185\000l\000\171\000\168\001\235\002\011\001\235\0004\000u\000l\000\232\0004\000l\001\235\000\226\001\235\0004\000\031\000\176\001\235\000\031\000\164\001\235\000\031\000\162\001\235\000\031\000\160\001\235\000\031\000\158\001\235\000\031\000&\001\235\000\031\000\156\001\235\000\031\000P\001\235\000\031\000N\001\235\000\031\000j\001\235\000\031\000h\001\235\000\031\000$\001\235\000\031\000\128\001\235\000\031\000T\001\235\000\031\000\244\001\235\000\031\001\004\001\235\000\031\001\006\001\235\000\031\000\230\001\235\000\031\000L\001\235\000\031\000R\001\235\000\031\000\174\001\235\000\031\000~\001\235\000\031\000\176\000\176\001\235\000j\001\235\000h\001\235\000P\001\235\000N\001\235\000\248\001\235\000u\000\214\001\187\000\198\001\235\000u\000\142\001\235\0008\000\198\001\235\000u\000\214\000\142\001\235\0008\000\198\001\235\000u\000\214\000\146\001m\000\223\000:\000\198\001\235\000n\000\198\001\235\000\252\000u\000\148\000u\000\031\000B\001\235\000\234\001\235\000\027\001\245\000n\000l\000\231\0004\000\025\0011\000\214\000\025\000\183\000b\000\n\000n\000\234\002\015\000\183\000b\000\n\000n\000E\000\198\001\235\000\n\001\019\000n\000\234\002\015\000\n\001\019\000n\000E\000\198\001\235\000\183\001\019\000n\000\198\001\235\000\183\001\019\000n\000E\000\198\001\235\001\017\000n\000\234\002\015\000\n\000\018\001\187\000'\000\198\001\239\002\015\000\018\001\187\000'\000\198\001\239\002\015\000\249\000\018\001\187\000'\000\230\002\015\000d\0011\000\198\0015\000d\000\016\000\230\0015\000d\000\018\001\021\000\198\001\029\000d\000\018\001\021\000\230\001\029"
    
    let[@inline] rhs_data =
      fun i ->
        MenhirLib.PackedIntArray.get16 rhs_data i
    
    let rhs_entry =
      "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\t\000\012\000\017\000\021\000\023\000\026\000\028\000\031\000!\000$\000'\000+\000.\0002\0002\0004\0007\0007\000;\000@\000A\000E\000F\000J\000N\000Q\000T\000U\000X\000\\\000]\000_\000`\000b\000c\000e\000h\000j\000m\000o\000r\000t\000v\000w\000x\000y\000|\000\127\000\130\000\134\000\135\000\135\000\136\000\139\000\144\000\149\000\152\000\155\000\158\000\159\000\162\000\164\000\167\000\172\000\179\000\185\000\193\000\200\000\209\000\220\000\230\000\242\000\247\000\250\000\254\000\255\001\004\001\011\001\017\001\025\001\027\001\029\001 \001!\001\"\001%\001&\001,\0010\0015\0017\001:\001<\001?\001A\001D\001F\001I\001J\001L\001M\001O\001Q\001R\001S\001T\001W\001Y\001[\001\\\001_\001`\001a\001g\001h\001j\001l\001o\001q\001t\001y\001\127\001\132\001\138\001\140\001\143\001\144\001\146\001\147\001\148\001\151\001\156\001\159\001\161\001\164\001\168\001\172\001\176\001\181\001\182\001\185\001\186\001\187\001\188\001\189\001\190\001\192\001\194\001\195\001\196\001\199\001\202\001\203\001\204\001\207\001\210\001\212\001\214\001\217\001\220\001\222\001\224\001\226\001\229\001\233\001\237\001\240\001\243\001\246\001\248\001\250\001\252\001\253\001\255\002\000\002\004\002\005\002\007\002\b\002\t\002\n\002\011\002\012\002\r\002\014\002\015\002\016\002\017\002\020\002\021\002\023\002\026\002\028\002\029\002\031\002 \002\"\002#\002$\002&\002(\002)\002,\002/\0021\0023\0025\0026\0029\002;\002>\002@\002@\002A\002B\002C\002D\002E\002F\002F\002G\002I\002M\002P\002U\002V\002W\002X\002[\002_\002e\002i\002p\002w\002{\002\129\002\133\002\143\002\151\002\154\002\157\002\160\002\163\002\166\002\169\002\172\002\175\002\178\002\181\002\184\002\187\002\190\002\193\002\196\002\199\002\202\002\205\002\208\002\211\002\214\002\217\002\221\002\223\002\225\002\227\002\229\002\231\002\236\002\242\002\249\003\001\003\004\003\006\003\b\003\r\003\015\003\017\003\019\003\020\003\021\003\022\003\024\003\028\003\029\003\031\003\"\003%\003'\003)\003+\003.\0032\0036\0039\003<\003?\003B\003C\003G\003M\003R\003Y\003]\003c\003h\003o\003q\003t\003x\003~\003\128\003\129\003\131\003\132\003\133\003\135\003\137\003\141\003\142\003\144\003\147\003\149\003\153\003\157\003\157\003\162\003\165\003\169\003\171\003\172\003\174\003\177\003\180\003\182\003\184\003\186\003\189\003\191\003\195\003\199\003\200\003\203\003\204\003\207\003\211\003\214\003\215\003\217\003\220\003\225\003\230\003\231\003\232\003\233\003\236\003\241\003\246\003\247\003\249\003\251\003\252\004\002\004\005\004\006\004\t\004\r\004\018\004\022\004\024\004\031\004'\004*\004/\0041\0043\0048\004;\004<\004?\004?\004A\004A\004C\004C\004E\004E\004H\004L\004L\004N\004N\004P\004P\004S\004W\004[\004`\004`\004c\004g\004k\004p\004p\004r\004r\004t\004t\004v\004v\004x\004x\004~\004\130\004\132\004\132\004\136\004\136\004\137\004\137\004\138\004\138\004\139\004\139\004\142\004\142\004\145\004\145\004\147\004\147\004\148\004\148\004\150\004\150\004\151\004\152\004\155\004\156\004\159\004\160\004\163\004\164\004\167\004\168\004\171\004\172\004\175\004\176\004\179\004\180\004\183\004\184\004\187\004\188\004\191\004\193\004\197\004\201\004\203\004\209\004\213\004\215\004\219\004\220\004\223\004\224\004\227\004\228\004\231\004\232\004\235\004\236\004\239\004\240\004\243\004\244\004\247\004\249\004\253\004\255\005\003\005\004\005\007\005\b\005\011\005\015\005\021\005\025\005\029\005#\005'\005,\005/\0053\005;\005?\005E\005I\005M\005S\005W\005X\005[\005\\\005]\005`\005a\005b\005c\005d\005g\005h\005k\005l\005n\005p\005t\005u\005x\005z\005\127\005\135\005\140\005\142\005\143\005\144\005\147\005\149\005\150\005\155\005\157\005\159\005\161\005\162\005\165\005\167\005\170\005\171\005\174\005\175\005\177\005\180\005\182\005\183\005\185\005\186\005\189\005\190\005\193\005\193\005\194\005\194\005\196\005\198\005\199\005\201\005\202\005\203\005\204\005\208\005\210\005\211\005\213\005\214\005\216\005\217\005\219\005\221\005\224\005\226\005\229\005\232\005\236\005\239\005\243\005\247\005\252\005\254\006\001\006\004\006\b\006\011\006\015\006\019\006\024\006\026\006\029\006\031\006\"\006\"\006#\006%\006)\006*\006+\006-\006.\0060\0063\0067\0069\006;\006=\006A\006E\006I\006M\006Q\006V\006Z\006_\006`\006a\006b\006c\006d\006e\006f\006g\006h\006i\006j\006k\006l\006m\006n\006o\006p\006q\006r\006s\006t\006u\006v\006w\006x\006z\006{\006|\006}\006\127\006\131\006\135\006\138\006\140\006\143\006\143\006\144\006\144\006\145\006\145\006\146\006\146\006\147\006\147\006\148\006\148\006\149\006\149\006\150\006\150\006\152\006\152\006\153\006\153\006\154\006\154\006\156\006\156\006\158\006\158\006\160\006\160\006\162\006\162\006\164\006\164\006\166\006\166\006\168\006\168\006\169\006\169\006\170\006\170\006\171\006\171\006\172\006\173\006\174\006\177\006\180\006\182\006\184\006\186\006\187\006\190\006\192\006\193\006\197\006\198\006\201\006\206\006\207\006\210\006\212\006\215\006\218\006\226\006\228\006\230\006\232\006\233\006\235\006\237\006\239\006\243\006\246\006\247\006\250\006\251\006\253\006\254\006\254\006\255\007\003\007\012\007\019\007\024\007!\007(\007,\0070\007:\007B\007J\007P\007Z\007b\007j\007p\007t\007x\007z\007|\007\127\007\131\007\136\007\137\007\138\007\140\007\142\007\143\007\146\007\147\007\149\007\152\007\156\007\157\007\159\007\162\007\166\007\168\007\172\007\178\007\185\007\191\007\198\007\201\007\204\007\206\007\210\007\215\007\217\007\221\007\227\007\234\007\240\007\247\007\250\007\253\007\255\b\003\b\b\b\n\b\r\b\020\b\029\b%\b/\b7\bA\bJ\bU\bU\bV\bY\b^\bd\bk\bs\by\b\128\b\129\b\130\b\131\b\132\b\134\b\137\b\140\b\144\b\148\b\153\b\156\b\160\b\163\b\167\b\171\b\176\b\181\b\187\b\188\b\190\b\193\b\194\b\195\b\196\b\198\b\199\b\200\b\201\b\203\b\205\b\207\b\209\b\210\b\211\b\212\b\213\b\216\b\220\b\221\b\223\b\226\b\228\b\233\b\236\b\240\b\244\b\249\b\255\t\004\t\t\t\014\t\019\t\023\t\028\t\030\t \t&\t)\t,\t/\t2\t3\t5\t8\t9\t:\t?\tB\tF\tJ\tL\tP\tV\tW\tX\tY\tZ\t]\ta\tb\td\tg\ti\tn\tq\tu\ty\t~\t\132\t\137\t\142\t\147\t\152\t\156\t\161\t\163\t\165\t\171\t\174\t\177\t\180\t\183\t\184\t\185\t\186\t\187\t\188\t\189\t\192\t\196\t\197\t\199\t\202\t\204\t\209\t\212\t\216\t\220\t\225\t\231\t\236\t\241\t\246\t\251\t\255\n\004\n\006\n\b\n\014\n\017\n\020\n\023\n\026\n\027\n\029\n\031\n\"\n%\n(\n)\n*\n+\n1\n2\n3\n4\n7\n:\n=\n>\n?\n@\nC\nF\nG\nI\nK\nO\nS\nT\nU\nX\n[\n^\nc\nh\nm\nr\nv\nz\n{\n|\n}\n~\n\127\n\128\n\129\n\130\n\131\n\132\n\133\n\134\n\135\n\136\n\137\n\138\n\139\n\140\n\141\n\142\n\143\n\144\n\145\n\146\n\147\n\148\n\149\n\150\n\151\n\152\n\153\n\154\n\155\n\156\n\157\n\158\n\159\n\160\n\161\n\162\n\163\n\164\n\165\n\166\n\167\n\168\n\169\n\170\n\171\n\172\n\174\n\177\n\184\n\193\n\201\n\211\n\219\n\229\n\238\n\249\n\251\n\253\011\001\011\003\011\006\011\n\011\012\011\012\011\r\011\016\011\017\011\019\011\021\011\024\011\031\011'\011-\0114\0115\0116\0117\0119\011<\011?\011C\011G\011L\011Q\011W\011X\011[\011_\011`\011b\011e\011f\011h\011i\011j\011n\011s\011u\011x\011{\011|\011\127\011\129\011\132\011\135\011\138\011\140\011\143\011\147\011\152\011\154\011\157\011\160\011\164\011\168\011\173\011\174\011\177\011\177\011\179\011\182\011\184\011\187\011\190\011\194\011\196\011\199\011\203\011\207\011\212\011\217\011\223\011\225\011\229\011\233\011\236\011\240\011\245\011\251\011\253\011\255\012\000\012\002\012\007\012\r\012\015\012\018\012\022\012\027\012\029\012 \012\"\012%\012'\012*\012-\0121\0123\0126\012:\012>\012C\012H\012N\012P\012Q\012R\012U\012W\012W\012X\012Y\012Z\012[\012\\\012_\012c\012i\012m\012t\012{\012\127\012\133\012\137\012\147\012\155\012\158\012\161\012\164\012\167\012\170\012\173\012\176\012\179\012\182\012\185\012\188\012\191\012\194\012\197\012\200\012\203\012\206\012\209\012\212\012\215\012\218\012\221\012\225\012\227\012\229\012\231\012\233\012\235\012\240\012\246\012\253\r\005\r\b\r\n\r\012\r\017\r\018\r\019\r\020\r\023\r\024\r\027\r!\r(\r-\r3\r8\r>\rB\rB\rC\rI\rP\rU\rY\r]\rb\rg"
    
    let[@inline] rhs_entry =
      fun i ->
        MenhirLib.PackedIntArray.get16 rhs_entry i
    
    let[@inline] rhs =
      fun i ->
        MenhirLib.LinearizedArray.read_row_via rhs_data rhs_entry i
    
    let lr0_core =
      "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0008\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000X\000Y\000Z\000[\000\\\000]\000^\000_\000`\000a\000b\000c\000d\000e\000f\000g\000h\000i\000j\000k\000l\000m\000n\000o\000p\000q\000r\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\144\000\145\000\146\000\147\000\148\000\149\000\150\000\151\000\152\000\153\000\154\000\155\000\156\000\157\000\158\000\159\000\160\000\161\000\162\000\163\000\164\000\165\000\166\000\167\000\168\000\169\000\170\000\171\000\172\000\173\000\174\000\175\000\176\000\177\000\178\000\179\000\180\000\181\000\182\000\183\000\184\000\185\000\186\000\187\000\188\000\189\000\190\000\191\000\192\000\193\000\194\000\195\000\196\000\197\000\198\000\199\000\200\000\201\000\202\000\203\000\204\000\205\000\206\000\207\000\208\000\209\000\210\000\211\000\212\000\213\000\214\000\215\000\216\000\217\000\218\000\219\000\220\000\221\000\222\000\223\000\224\000\225\000\226\000\227\000\228\000\229\000\230\000\231\000\232\000\233\000\234\000\235\000\236\000\237\000\238\000\239\000\240\000\241\000\242\000\243\000\244\000\245\000\246\000\247\000\248\000\249\000\250\000\251\000\252\000\253\000\254\000\255\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\004\006\004\007\004\b\004\t\003\181\002\227\003\182\003\183\001\023\001\024\001\025\001\011\001\012\001\r\001\026\001\015\001\016\003\184\003\185\003\186\003\187\003\188\003\189\003\190\003\191\003\192\003\193\003\194\003\195\003\196\003\197\003\198\003\199\003\200\001\b\001\t\0052\0053\0054\003\253\003\254\0055\001\n\001\014\001\031\001 \001!\003\148\003\149\003\150\003\151\003\152\003\153\003\154\002\223\002\224\002\225\002\226\002\228\002\229\002\222\002\230\002\231\002\232\002\233\002\234\002\235\002\236\002\237\002\238\002\239\002\240\002\241\002\242\002\243\002\244\002\245\002\246\002\247\002\248\003\155\003\156\003\157\001\193\001\194\001\195\001\196\001\197\001\198\001\199\001\200\001\201\001\202\001\203\001.\001/\0010\0011\0012\0013\0014\0015\0016\0017\0018\0019\001:\001;\001<\001=\001>\001?\001@\001A\001B\001C\001D\001E\001F\001G\001H\001I\001J\001K\001L\001M\001N\001O\001P\001Q\001R\001S\001T\001U\001V\001W\001X\001Y\001Z\001[\001\\\001]\001^\001_\001`\001a\001b\001c\001d\001e\001f\001g\001h\001i\001j\001k\001l\001m\001n\001o\001p\001q\001r\001s\001t\001u\001v\001w\001x\001y\001z\001{\001|\001}\001~\001\127\001\128\001\129\001\130\001\131\001\132\001\133\001\134\001\135\001\136\001\137\001\138\001\139\001\140\001\141\001\142\001\143\001\144\001\145\001\146\001\147\001\148\001\149\001\150\001\151\001\152\001\153\001\154\001\155\001\156\001\157\001\158\001\159\001\160\001\161\001\162\001\163\001\164\001\165\001\166\001\167\001\168\001\169\001\170\001\171\001\172\001\173\001\174\001\175\001\176\001\177\001\178\001\179\001\204\001\205\001\206\001\207\001\208\001\209\001\210\001\211\001\212\001\213\001\214\001\215\001\216\001\217\001\218\001\219\001\220\001\221\001\222\001\223\001\224\001\225\001\226\001\227\001\228\001\229\001\230\001-\001\180\001\231\001\232\001\233\001\234\001\235\001\236\001\237\001\238\001\239\001\240\001\241\001\242\001\243\001\244\001\245\001\246\001\247\001\248\001\249\001\250\001\251\001\252\001\253\001\254\001\255\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\b\002\t\002\n\002\011\002\012\002\r\002\014\002\015\002\016\002\017\002\018\002\019\002\020\002\021\002\022\002\023\002\024\002\025\002\026\002\027\002\028\002\029\002\030\002\031\002 \002!\002\"\002#\002$\002%\002&\002'\002(\002)\002*\002+\002,\002-\002.\002/\0020\0021\0022\0023\0024\0025\0026\0027\0028\0029\002:\002;\002<\002=\002>\002?\002@\002A\002B\002C\002D\002E\002F\002G\002H\002I\002J\002K\002L\002M\002N\002O\002P\002Q\002R\002S\002T\002U\002V\002W\002X\002Y\002Z\002[\002\\\002]\002^\002_\002`\002a\002b\002c\002d\002e\002f\002g\002h\002i\002j\002k\002l\002m\002n\002o\002p\002q\002r\002s\002t\002u\002v\002w\002x\002y\002z\002{\002|\002}\002~\002\127\002\128\002\129\002\130\002\131\002\132\002\133\002\134\002\135\002\136\002\137\002\138\002\139\002\140\002\141\002\142\002\143\002\144\002\145\002\146\002\147\002\148\002\149\002\150\002\151\002\152\002\153\002\154\002\155\002\156\002\157\002\158\002\159\002\160\002\161\002\162\002\163\002\164\002\165\002\166\002\167\002\168\002\169\002\170\002\171\002\172\002\173\002\174\002\175\001#\002\176\002\177\002\178\002\179\002\180\002\181\002\182\002\183\002\184\002\185\002\186\002\187\002\188\002\189\002\190\002\191\002\192\002\193\002\194\002\195\002\196\002\197\002\198\002\199\002\200\002\201\002\202\002\203\002\204\002\205\002\206\002\207\002\208\002\209\002\210\002\211\002\212\002\213\002\214\002\215\002\216\002\217\002\218\002\219\002\220\002\221\002\249\002\250\002\251\002\252\002\253\002\254\001(\001\182\001\183\001\184\001\185\001\186\002\255\003\000\003\001\003\002\003\003\003\004\001\188\003\005\003\006\001\190\001\191\001\192\b\224\003\159\003\007\003\b\003\t\003\n\003\011\003\012\003\r\003\014\003\015\003\016\003\017\003\018\003\019\003\020\003\021\003\022\003\023\003\024\003\025\003\026\003\027\003\028\003\029\003\030\003\031\003 \003!\003\"\003#\003$\003%\003&\003'\003(\003)\003*\003+\003,\003-\003.\003/\0030\0031\0032\0035\0036\0037\001\187\001\189\0038\0039\003:\003;\003<\003=\003>\003?\003@\003A\003B\003C\003D\003E\003F\003G\003H\003I\003J\003K\003L\003M\003N\003O\003P\003Q\003R\003S\0033\0034\003T\003U\003V\003W\003X\003Y\003Z\003[\003\\\003]\003^\003_\003`\003a\003b\003c\003d\003e\003f\003g\003h\003i\003j\003k\003l\003m\003n\003o\003p\003q\003r\003s\003t\003u\003v\003w\003x\001%\001&\001'\001)\001*\001+\001,\001\181\b\225\b\226\b\227\b\228\b\229\003y\003z\003{\003|\003}\003~\003\127\003\128\003\129\003\130\003\131\003\132\003\133\003\134\003\135\003\136\003\137\003\138\003\139\003\140\003\141\003\142\003\143\003\144\003\145\003\146\003\147\001\027\001\028\005\221\003\176\001\029\001\030\003\177\003\178\003\179\003\180\004\n\003\202\003\203\004\011\003\252\003\255\004\000\004\001\004\012\004\r\004\014\003\205\003\206\003\229\003\230\003\207\003\208\003\209\003\210\003\211\003\212\003\217\003\218\003\231\003\232\003\213\003\214\003\215\003\216\003\219\003\220\003\221\003\222\003\223\003\224\003\225\003\226\003\233\003\234\003\235\003\236\003\227\003\228\003\237\003\238\003\239\003\240\003\241\003\242\003\243\004\002\003\246\003\247\003\248\003\249\003\250\003\251\003\244\003\245\004\003\004\004\004\015\004\016\004\017\004\018\004\019\004\020\004\021\004\022\004\023\004\024\004\025\004\026\004\027\004\028\004\029\004\030\004\031\004 \004!\004\"\004#\004$\004%\004&\004'\004(\004)\004*\004+\004,\004-\004.\004/\0040\0041\0042\0043\0044\0045\0046\0047\0048\0049\004:\004;\004<\004=\004>\004?\004@\004A\004B\004C\004D\004E\004F\004G\004H\003\160\003\161\003\162\003\163\004I\004J\004K\004L\004M\004N\004O\004P\004Q\004R\004S\004T\004U\004V\004W\004X\004Y\004Z\004[\004\\\004]\004^\004_\004`\004a\004b\004c\004d\004e\004f\004g\004h\004i\004j\004k\004l\004m\004n\004o\004p\004q\004r\004s\004t\004u\004v\004w\004x\004y\004z\004{\004|\004}\004~\004\127\004\128\004\129\004\130\004\131\004\132\004\133\004\134\004\135\004\136\004\137\004\138\004\139\004\140\004\141\004\142\004\143\004\144\004\145\004\146\004\147\004\148\004\149\004\150\004\151\004\152\004\153\004\154\004\155\004\156\004\157\004\158\004\159\004\160\004\161\004\162\004\163\004\164\004\165\004\166\004\167\004\168\004\169\004\170\004\171\004\172\004\173\004\174\004\175\004\176\004\177\004\178\004\179\004\180\004\181\004\182\004\183\004\184\004\185\004\186\004\187\004\188\004\189\004\190\004\191\004\192\004\193\004\194\004\195\004\196\004\197\004\198\004\199\004\200\004\201\004\202\004\203\004\204\004\205\004\206\004\207\004\208\004\209\004\210\004\211\004\212\004\213\004\214\004\215\004\216\004\217\004\218\004\219\004\220\004\221\004\222\004\223\004\224\004\225\004\226\004\227\004\228\004\229\004\230\004\231\004\232\004\233\004\234\004\235\004\236\004\237\004\238\004\239\004\240\004\241\004\242\004\243\004\244\004\245\004\246\004\247\004\248\004\249\004\250\004\251\004\252\004\253\004\254\004\255\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\b\005\t\005\n\005\011\005\012\005\r\005\014\005\015\005\016\005\017\005\018\005\019\005\020\005\021\005\022\005\023\005\024\005\025\005\026\005\027\005\028\005\029\005\030\005\031\005 \005!\005\159\005\160\005$\005%\005&\005'\005\161\005)\005*\005\162\005\163\005-\005.\005/\0050\0051\0056\0057\001\017\001\018\001\019\001\020\001\021\0058\001\022\003\204\004\005\001\"\001$\t\000\t\001\t\002\t\003\005\193\005\194\t\004\t\005\005\199\t\006\005\164\005\165\005\166\005\167\005\168\005\169\005\170\005\171\005\172\005B\005C\005\173\005\174\005F\005\175\005H\005I\005J\005K\005L\005M\005\176\005O\005P\005Q\005R\005S\005T\005U\005V\005W\005X\005Y\005Z\005[\005\\\005]\005^\005_\005`\005a\005b\005c\005d\005e\005f\005g\005h\005i\005j\005k\005l\005m\005n\005o\005p\005q\005r\005s\005t\005u\005v\005w\005x\005\177\005\178\005\179\005\180\005}\005~\005\127\005\128\005\129\005\130\005\131\005\132\005\133\005\134\005\135\005\136\005\137\005\138\005\139\005\140\005\141\005\142\005\143\005\144\005\145\005\146\005\147\005\148\005\149\005\150\005\151\003\168\005\181\005\182\005\183\005\184\005\185\005\186\005\187\005\188\005\189\005\190\005\191\005\192\005\195\005\196\005\197\005\198\005\200\005\201\005\202\005\203\005\204\005\222\005\223\005\224\005\225\005\226\005\227\005\228\005\229\005\230\005\231\005\232\005\233\005\234\005\235\005\236\005\237\005\238\005\239\005\240\005\241\005\242\005\243\005\244\005\245\005\246\b\230\b\231\b\232\b\233\b\234\b\235\b\236\b\237\b\238\b\239\b\240\b\241\b\242\b\243\b\244\b\245\b\246\b\247\b\248\b\249\b\250\b\251\b\252\006%\006&\006'\006(\006)\006*\006+\006,\006-\b\253\b\254\0060\b\255\005\247\005\248\005\249\005\250\005\251\005\252\005\253\005\254\005\255\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\b\006\t\006\n\006\011\006\012\006\r\006\014\006\015\006\016\006\017\006\018\006\019\006\020\006\021\006\022\006\023\006\024\006\025\006\026\006\027\006\028\006\029\006\030\006\031\006 \006!\006\"\006#\006$\006.\006/\0061\0062\0063\0064\0065\0066\0067\0068\0069\006:\006;\006<\006=\006>\006?\006@\006A\006B\006C\006D\006E\006F\006G\006H\006I\006J\006K\006L\006M\006N\006O\006P\006Q\006R\006S\006T\006U\006V\006W\006X\006Y\006Z\006[\006\\\006]\006^\006_\006`\006a\006b\006c\006d\006e\006f\006g\006h\006i\006j\006k\006l\006m\006n\006o\006p\006q\006r\006s\006t\006u\006v\006w\006x\006y\006z\006{\006|\006}\006~\006\127\006\128\006\129\006\130\006\131\006\132\006\133\006\134\006\135\006\136\006\137\006\138\006\139\006\140\006\141\006\142\006\143\006\144\006\145\006\146\006\147\006\148\006\149\006\150\006\151\006\152\006\153\006\154\006\155\006\156\006\157\006\158\006\159\006\160\006\161\006\162\006\163\006\164\006\165\006\166\006\167\006\168\006\169\006\170\006\171\006\172\006\173\006\174\006\175\006\176\006\177\006\178\006\179\006\180\006\181\006\182\006\183\006\184\006\185\006\186\006\187\006\188\006\189\006\190\006\191\006\192\006\193\006\194\006\195\006\196\006\197\006\198\006\199\006\200\006\201\006\202\006\203\006\204\006\205\006\206\006\207\006\208\006\209\006\210\006\211\006\212\006\213\006\214\006\215\006\216\006\217\006\218\006\219\006\220\006\221\006\222\006\223\006\224\006\225\006\226\006\227\006\228\006\229\006\230\006\231\006\232\006\233\006\234\006\235\006\236\006\237\006\238\006\239\006\240\006\241\006\242\006\243\006\244\006\245\006\246\006\247\006\248\006\249\006\250\006\251\006\252\006\253\006\254\006\255\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\b\007\t\007\n\007\011\007\012\007\r\007\014\007\015\007\016\007\017\007\018\007\019\007\020\007\021\007\022\007\023\007\024\007\025\007\026\007\027\007\028\007\029\007\030\007\031\007 \007!\007\"\007#\007$\007%\007&\007'\007(\007)\007*\007+\007,\007-\007.\007/\0070\0071\0072\0073\0074\0075\0076\0077\0078\0079\007:\007;\007<\007=\007>\007?\007@\007A\007B\007C\007D\007E\007F\007G\007H\007I\007J\007K\007L\007M\007N\007O\007P\007Q\007R\007S\007T\007U\007V\007W\007X\007Y\007Z\007[\007\\\007]\007^\007_\007`\007a\007b\007c\007d\007e\007f\007g\007h\007i\007j\007k\007l\007m\007n\007o\007p\007q\007r\007s\007t\007u\007v\007w\007x\007y\007z\007{\007|\007}\007~\007\127\007\128\007\129\007\130\007\131\007\132\007\133\007\134\007\135\007\136\007\137\007\138\007\139\007\140\007\141\007\142\007\143\007\144\007\145\007\146\007\147\007\148\007\149\007\150\007\151\007\152\007\153\007\154\007\155\007\156\007\157\007\158\007\159\007\160\007\161\007\162\007\163\007\164\007\165\007\166\007\167\007\168\007\169\007\170\007\171\007\172\007\173\007\174\007\175\007\176\007\177\007\178\007\179\007\180\007\181\007\182\007\183\007\184\007\185\007\186\007\187\007\188\007\189\007\190\007\191\007\192\007\193\007\194\007\195\007\196\007\197\007\198\007\199\007\200\007\201\007\202\007\203\007\204\007\205\007\206\007\207\007\208\007\209\007\210\007\211\007\212\007\213\007\214\007\215\007\216\007\217\007\218\007\219\007\220\007\221\007\222\007\223\007\224\007\225\007\226\007\227\007\228\007\229\007\230\007\231\007\232\007\233\007\234\007\235\007\236\007\237\007\238\007\239\007\240\007\241\007\242\007\243\007\244\007\245\007\246\007\247\007\248\007\249\007\250\007\251\007\252\007\253\007\254\007\255\b\000\b\001\b\002\b\003\b\004\b\005\b\006\b\007\b\b\b\t\b\n\b\011\b\012\b\r\b\014\b\015\b\016\b\017\b\018\b\019\b\020\b\021\b\022\b\023\b\024\b\025\b\026\b\027\b\028\b\029\b\030\b\031\b \b!\b\"\b#\b$\b%\b&\b'\b(\b)\b*\b+\b,\b-\b.\b/\b0\b1\b2\b3\b4\b5\b6\b7\b8\b9\b:\b;\b<\b=\b>\b?\b@\bA\bB\bC\bD\bE\bF\bG\bH\bI\bJ\bK\bL\bM\bN\bO\bP\bQ\bR\bS\bT\bU\bV\bW\bX\bY\bZ\b[\b\\\b]\b^\b_\b`\ba\bb\bc\bd\be\bf\bg\bh\bi\bj\bk\bl\bm\bn\bo\bp\bq\br\bs\bt\bu\bv\bw\bx\by\bz\b{\b|\b}\b~\b\127\b\128\b\129\b\130\b\131\b\132\b\133\b\134\b\135\b\136\b\137\b\138\b\139\b\140\b\141\b\142\b\143\b\144\b\145\b\146\b\147\b\148\b\149\b\150\b\151\b\152\b\153\b\154\b\155\b\156\b\157\b\158\b\159\b\160\b\161\b\162\b\163\b\164\b\165\b\166\b\167\b\168\b\169\b\170\b\171\b\172\b\173\b\174\b\175\b\176\b\177\b\178\b\179\b\180\b\181\b\182\b\183\b\184\b\185\b\186\b\187\b\188\b\189\b\190\b\191\b\192\b\193\b\194\b\195\b\196\b\197\b\198\b\199\b\200\b\201\b\202\b\203\b\204\b\205\b\206\b\207\b\208\b\209\b\210\b\211\b\212\b\213\b\214\b\215\b\216\b\217\b\218\b\219\b\220\b\221\b\222\b\223\003\158\003\164\003\165\003\166\003\167\003\169\003\170\003\171\003\172\003\173\003\174\003\175\005\205\005\206\005\207\005\208\005\209\005\210\005\211\005\212\005\213\005\214\005\215\005\216\005\217\005\218\005\219\005\220\003\201\005\152\005\153\005\154\005\155\005\156\005\157\t\007\t\b\005\158\005\"\005#\005(\005+\005,\0059\005:\005;\005<\005=\005>\005?\005@\005A\005D\005E\005G\005N\005y\005z\005{\005|\t\t\t\n\t\011\t\012\t\r\t\014\t\015\t\016\t\017\t\018\t\019\t\020\t\021\t\022\t\023\t\024\t\025\t\026\t\027\t\028\t\029\t\030\t\031\t \t!\t\"\t#\t$\t%\t&\t'\t(\t)\t*\t+\t,\t-\t.\t/\t0\t1\t2\t3\t4\t5\t6\t7\t8\t9\t:\t;\t<\t=\t>\t?\t@\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\tK\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tY\tZ\t[\t\\\t]\t^\t_\t`\ta\tb\tc\td\te\tf\tg\th\ti\tj\tk\tl\tm\tn\to\tp\tq\tr\ts\tt\tu\tv\tw\tx\ty\tz\t{\t|\t}\t~\t\127\t\128\t\129\t\130\t\131\t\132\t\133\t\134\t\135\t\136\t\137\t\138\t\139\t\140\t\141\t\142\t\143\t\144\t\145\t\146\t\147\t\148\t\149\t\150\t\151\t\152\t\153\t\154\t\155\t\156\t\157\t\158\t\159\t\160\t\161\t\162\t\163\t\164\t\165\t\166\t\167\t\168\t\169\t\170\t\171\t\172\t\173\t\174\t\175\t\176\t\177\t\178\t\179\t\180\t\181\t\182\t\183\t\184\t\185\t\186\t\187\t\188\t\189\t\190\t\191\t\192\t\193\t\194\t\195\t\196\t\197\t\198\t\199\t\200\t\201\t\202\t\203\t\204\t\205\t\206\t\207\t\208\t\209\t\210\t\211\t\212\t\213\t\214\t\215\t\216\t\217\t\218\t\219\t\220\t\221\t\222\t\223\t\224\t\225\t\226\t\227\t\228\t\229\t\230\t\231\t\232\t\233\t\234\t\235\t\236\t\237\t\238\t\239\t\240\t\241\t\242\t\243\t\244\t\245\t\246\t\247\t\248\t\249\t\250\t\251\t\252\t\253\t\254\t\255\n\000\n\001\n\002\n\003\n\004\n\005\n\006\n\007\n\b\n\t\n\n\n\011\n\012\n\r\n\014\n\015\n\016\n\017\n\018\n\019\n\020\n\021\n\022\n\023\n\024\n\025\n\026\n\027\n\028\n\029\n\030\n\031\n \n!\n\"\n#\n$\n%\n&\n'\n(\n)\n*\n+\n,\n-\n.\n/\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n:\n;\n<\n=\n>\n?\n@\nA\nB\nC\nD\nE\nF\nG\nH\nI\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nS\nT\nU\nV\nW\nX"
    
    let[@inline] lr0_core =
      fun i ->
        MenhirLib.PackedIntArray.get16 lr0_core i
    
    let lr0_items_data =
      "\000\000\000\000\000\0188\001\000\005\024\001\000\016\016\001\000\016\012\001\000\016\b\001\000\016\004\001\000\016\000\001\000\015P\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\184\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\015\216\001\000\015\212\001\000\015\208\001\000\015\204\001\000\015\200\001\000\015\196\001\000\015\192\001\000\015\188\001\000\015L\001\000\015\180\001\000\015\176\001\000\015\172\001\000\015\168\001\000\015\164\001\000\015\160\001\000\015\156\001\000\015\152\001\000\015\148\001\000\015\144\001\000\015\140\001\000\015\136\001\000\015\132\001\000\015\128\001\000\015|\001\000\015x\001\000\015t\001\000\015p\001\000\015l\001\000\015h\001\000\015d\001\000\015`\001\000\015\\\001\000\015X\001\000\015T\001\000\000\140\001\000\000\136\001\000\000\140\002\000\000\140\003\000\005\024\002\000\0188\002\000\n\228\001\000\n\224\001\000\003\204\001\000\003\204\002\000\001\004\001\000\001\000\001\000\000\252\001\000\000\248\001\000\000\244\001\000\000\240\001\000\001\132\001\000\018\248\001\000\018\244\001\000\b\176\001\000\018\248\002\000\018\244\002\000\018\248\003\000\018\244\003\000\016\244\001\000\000\200\001\000\007\248\001\000\007\212\001\000\007\212\002\000\007\252\001\000\007\216\001\000\007\020\001\000\007\252\002\000\007\216\002\000\007\252\003\000\007\216\003\000\007\216\004\000\b\000\001\000\007\220\001\000\007\220\002\000\007\220\003\000\007\024\001\000\007\220\004\000\007\024\002\000\007\252\001\000\007\216\001\000\007\024\003\000\007\216\005\000\007\024\001\000\007\216\006\000\007\212\003\000\007\024\001\000\007\212\004\000\005\192\001\000\005\192\002\000\005\192\003\000\000\196\001\000\000\188\001\000\b\012\001\000\001\192\001\000\b\016\001\000\001\196\001\000\b\016\002\000\001\196\002\000\b\016\003\000\001\196\003\000\000\196\002\000\000\188\002\000\017p\001\000\004\136\001\000\000\192\001\000\005\000\001\000\005\004\001\000\000\192\002\000\011\\\001\000\007\248\001\000\007\212\001\000\005\000\001\000\014\220\001\000\014\204\001\000\004\240\001\000\004\236\001\000\004\232\001\000\004\228\001\000\b\b\001\000\b\004\001\000\007\248\001\000\007\212\001\000\005\000\001\000\004\228\002\000\014\220\002\000\014\220\003\000\014\220\004\000\bT\001\000\bP\001\000\b@\001\000\b<\001\000\b8\001\000\b4\001\000\003\192\001\000\003\192\002\000\002p\001\000\002\\\001\000\014\156\001\000\014\160\001\000\014\160\002\000\018\224\001\000\014d\001\000\r\196\001\000\r\192\001\000\002h\001\000\003\188\001\000\003\188\002\000\018\220\001\000\007\236\001\000\007\224\001\000\007\224\002\000\007\224\003\000\007\024\001\000\007\224\004\000\005D\001\000\0054\001\000\0054\002\000\005<\001\000\0058\001\000\0050\001\000\005@\001\000\0058\002\000\0050\002\000\0050\003\000\r|\001\000\r\128\001\000\r\128\002\000\018\224\001\000\r\196\001\000\r\192\001\000\rD\001\000\002h\001\000\t\220\001\000\t\196\001\000\002h\002\000\r|\001\000\t\164\001\000\005\028\001\000\014 \001\000\014$\001\000\014$\002\000\018\224\001\000\r\232\001\000\r\196\001\000\r\192\001\000\002h\001\000\t\168\001\000\t\248\001\000\t\208\001\000\004@\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\018\224\001\000\r\196\001\000\r\192\001\000\rD\001\000\003\212\001\000\002h\001\000\t\204\001\000\004<\001\000\018\220\001\000\004X\001\000\004X\002\000\005L\001\000\005H\001\000\005H\002\000\005H\003\000\007\252\001\000\007\216\001\000\005L\002\000\005L\003\000\004\132\001\000\004\132\002\000\017$\001\000\017\028\001\000\0160\001\000\016,\001\000\016 \001\000\016\028\001\000\tP\001\000\017\028\002\000\016 \002\000\016\028\002\000\016\252\001\000\007\248\001\000\007\212\001\000\007\212\002\000\006\192\001\000\003X\001\000\003T\001\000\003T\002\000\003`\001\000\003\\\001\000\003`\002\000\003\\\002\000\003\\\003\000\003h\001\000\003d\001\000\003h\002\000\003d\002\000\003d\003\000\006\192\002\000\006\192\003\000\007\132\001\000\017\252\001\000\007\136\001\000\n4\001\000\007\136\002\000\007\136\003\000\017\240\001\000\017\252\002\000\017\248\001\000\017\248\002\000\017\248\003\000\016\252\002\000\017h\001\000\017d\001\000\017`\001\000\017\\\001\000\017X\001\000\017T\001\000\017P\001\000\017L\001\000\017H\001\000\017D\001\000\017@\001\000\017<\001\000\0178\001\000\017\016\001\000\017\012\001\000\017\b\001\000\017\004\001\000\007\248\001\000\007\212\001\000\002\144\001\000\007\212\002\000\002\136\001\000\002\132\001\000\017,\001\000\017\132\001\000\017\128\001\000\017|\001\000\017x\001\000\017t\001\000\000\224\001\000\000\220\001\000\000\212\001\000\000\144\001\000\000\144\002\000\018,\001\000\018,\002\000\r\180\001\000\r\176\001\000\r\172\001\000\005X\001\000\005X\002\000\005\\\001\000\r\220\001\000\r\216\001\000\nD\001\000\n4\001\000\0074\001\000\r8\001\000\r4\001\000\r4\002\000\r4\003\000\r8\002\000\0078\001\000\n4\001\000\0078\002\000\0078\003\000\r\160\001\000\002d\001\000\002d\002\000\0078\001\000\004l\001\000\004l\002\000\r\160\002\000\r\160\003\000\r\188\001\000\r\184\001\000\004\192\001\000\004\188\001\000\004\188\002\000\004`\001\000\002P\001\000\002X\001\000\002l\001\000\002T\001\000\014\200\001\000\014\196\001\000\r@\001\000\014\200\002\000\014\196\002\000\r@\002\000\r\196\001\000\r\192\001\000\b\216\001\000\b\212\001\000\b\216\002\000\r\196\002\000\r\192\002\000\bp\001\000\018(\001\000\018(\002\000\014X\001\000\014T\001\000\014T\002\000\014T\003\000\014X\002\000\0078\001\000\014X\003\000\014X\004\000\002d\001\000\014`\001\000\014`\002\000\014D\001\000\018\228\001\000\018(\003\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\128\001\000\014|\001\000\014x\001\000\014p\001\000\014h\001\000\014\172\002\000\014\200\001\000\014\196\001\000\r\228\001\000\014\200\002\000\014\196\002\000\r\228\002\000\014\200\003\000\014\196\003\000\r\168\001\000\r\200\001\000\014@\001\000\014\172\003\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014\004\001\000\014\000\001\000\r\252\001\000\r\244\001\000\r\236\001\000\0140\002\000\0148\001\000\0144\001\000\0140\003\000\0140\001\000\014,\001\000\014\004\001\000\014\000\001\000\r\252\001\000\r\244\001\000\r\236\001\000\0144\002\000\r$\001\000\r\164\001\000\r0\001\000\0144\003\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\r\140\002\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014\004\001\000\014\000\001\000\r\252\001\000\r\244\001\000\r\236\001\000\r\140\003\000\014,\002\000\014,\003\000\r\236\002\000\0148\002\000\0148\003\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014\004\001\000\014\000\001\000\r\252\001\000\r\244\001\000\r\236\001\000\r\252\002\000\003\200\001\000\003\196\001\000\003\200\002\000\003\196\002\000\003\200\003\000\003\196\003\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\003\200\004\000\003\196\004\000\r\144\002\000\r\156\001\000\r\148\001\000\r\144\003\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\r\136\002\000\r\136\003\000\rH\002\000\r\148\002\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014\004\001\000\014\000\001\000\r\252\001\000\r\244\001\000\r\236\001\000\r\148\003\000\014\004\002\000\014\000\002\000\r\244\002\000\005l\001\000\014\000\003\000\003\184\001\000\003\172\001\000\003\184\002\000\003\172\002\000\004\224\001\000\004\220\001\000\004\216\001\000\004\212\001\000\014\252\001\000\005\180\001\000\005\180\002\000\005\172\001\000\005\168\001\000\005\164\001\000\005\172\002\000\005\168\002\000\005\164\002\000\n\140\001\000\000\216\001\000\t\144\001\000\t\140\001\000\t\136\001\000\t\132\001\000\t\128\001\000\t\128\002\000\t\144\002\000\t\136\002\000\016L\001\000\016L\002\000\b\248\001\000\b\244\001\000\000\192\001\000\b\248\002\000\b\244\002\000\000\192\002\000\b\248\001\000\b\244\001\000\b\248\002\000\b\244\002\000\b\248\003\000\000|\001\000\000x\001\000\n<\001\000\007\140\001\000\005\192\001\000\000p\001\000\005\192\002\000\000p\002\000\005\192\003\000\000p\003\000\000\148\001\000\002\220\001\000\b\208\001\000\000\204\001\000\000\184\001\000\000\184\002\000\005\192\004\000\000p\004\000\005\192\005\000\n\196\001\000\005\192\006\000\000\208\001\000\002\224\001\000\002\224\002\000\b\200\001\000\018\012\001\000\0170\001\000\007\252\001\000\007\216\001\000\0170\002\000\007\252\002\000\007\216\002\000\0170\003\000\000\128\001\000\000\128\002\000\000\228\001\000\000\128\003\000\b\204\001\000\000\132\001\000\000\132\002\000\000\132\003\000\b\240\001\000\b\236\001\000\b\240\002\000\018\016\001\000\002\216\001\000\002\212\001\000\002\216\002\000\002\216\003\000\002\216\004\000\011`\001\000\000l\001\000\000\128\001\000\000t\001\000\007\140\002\000\007\144\001\000\000x\002\000\n4\001\000\007\144\002\000\007\144\003\000\007\144\004\000\000x\003\000\000x\004\000\000|\002\000\000|\003\000\000|\004\000\016L\003\000\011T\001\000\011T\002\000\011T\003\000\011P\001\000\tp\001\000\th\001\000\tp\002\000\tp\003\000\tx\001\000\tx\002\000\t\136\003\000\t\136\004\000\007t\001\000\006\176\001\000\007,\001\000\016P\001\000\tt\001\000\tl\001\000\016P\002\000\016P\003\000\016P\004\000\tt\002\000\tl\002\000\tt\003\000\tt\004\000\016T\001\000\007x\001\000\n4\001\000\007x\002\000\007x\003\000\016P\001\000\016T\002\000\t|\001\000\0070\001\000\n4\001\000\0070\002\000\0070\003\000\tt\001\000\tl\001\000\t|\002\000\t\144\003\000\t\144\004\000\t\140\002\000\t\132\002\000\t\132\003\000\t\132\004\000\t\140\003\000\t\140\004\000\000\176\001\000\016\224\001\000\016\216\001\000\016\224\002\000\016\216\002\000\000\236\001\000\016\216\003\000\016\216\004\000\011\220\001\000\011\216\001\000\011\220\002\000\011\220\003\000\011\200\001\000\000\176\002\000\016\228\001\000\016\220\001\000\016\228\002\000\016\220\002\000\016\228\003\000\016\220\003\000\016\220\004\000\016\220\005\000\b\192\001\000\011\204\001\000\b\204\001\000\b\240\001\000\b\236\001\000\b\196\001\000\b\196\002\000\000\216\002\000\000\216\003\000\011\208\001\000\000\180\001\000\000\180\002\000\000\180\003\000\011\208\002\000\006h\001\000\006h\002\000\016\228\001\000\016\220\001\000\000\180\001\000\011\212\001\000\011\212\002\000\n\140\002\000\005\184\001\000\015\020\001\000\015\020\002\000\r \001\000\r\028\001\000\r\028\002\000\r \002\000\011\016\001\000\b\004\001\000\011\016\002\000\011\016\003\000\nT\001\000\011\016\004\000\b\160\001\000\017\152\001\000\017$\001\000\017\028\001\000\012t\001\000\012p\001\000\012d\001\000\012`\001\000\017\152\002\000\017\028\002\000\012d\002\000\012`\002\000\017\152\003\000\017\000\001\000\012`\003\000\006\192\001\000\017\152\004\000\017\000\002\000\012`\004\000\012`\005\000\003\140\001\000\012`\006\000\004\140\001\000\002\136\001\000\002\132\001\000\011l\001\000\t\144\001\000\t\140\001\000\t\136\001\000\t\132\001\000\t\128\001\000\007d\001\000\011\196\001\000\011\188\001\000\011\196\002\000\011\188\002\000\011\196\003\000\011\188\003\000\011\196\004\000\011\196\005\000\011\192\001\000\011\184\001\000\011\192\002\000\011\184\002\000\011\192\003\000\011\192\004\000\011l\002\000\007h\001\000\n4\001\000\007h\002\000\007h\003\000\011l\003\000\011l\004\000\002\132\002\000\002\132\003\000\006\240\001\000\002\140\001\000\n4\001\000\006\240\002\000\006\240\003\000\002\140\002\000\006\236\001\000\002\136\002\000\002\136\003\000\002\128\001\000\004\244\001\000\004\244\002\000\002|\001\000\004\140\002\000\nt\001\000\004\160\001\000\004\160\002\000\004\148\001\000\004\148\002\000\004\148\003\000\004\144\001\000\004\144\002\000\004\144\003\000\004\156\001\000\004\156\002\000\004\152\001\000\004\152\002\000\t0\001\000\t,\001\000\t \001\000\t\028\001\000\t0\002\000\t \002\000\t0\003\000\t \003\000\t0\004\000\t8\001\000\t4\001\000\t(\001\000\t$\001\000\t8\002\000\t4\002\000\t(\002\000\t$\002\000\t8\003\000\t(\003\000\t8\004\000\t(\004\000\t8\005\000\t4\003\000\t$\003\000\t4\004\000\t,\002\000\t\028\002\000\t,\003\000\000\164\001\000\000\160\001\000\006X\001\000\006T\001\000\006X\002\000\006X\003\000\006`\001\000\006\\\001\000\006`\002\000\006\\\002\000\006`\003\000\006`\004\000\006`\005\000\006\\\003\000\006\\\004\000\006X\004\000\006T\002\000\006T\003\000\000\160\002\000\012`\007\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\172\001\000\017\168\001\000\017\164\001\000\017\160\001\000\002\164\001\000\002\164\002\000\017\212\002\000\017\204\002\000\017\200\002\000\017\188\002\000\017\164\002\000\017p\001\000\002\152\001\000\002\152\002\000\002\152\003\000\007\\\001\000\017p\002\000\007`\001\000\n4\001\000\007`\002\000\007`\003\000\017p\003\000\017p\004\000\002\148\001\000\000\216\001\000\002\148\002\000\002\148\003\000\002\160\001\000\002\160\002\000\017\212\003\000\002\156\001\000\002\156\002\000\000\168\001\000\002\144\001\000\002\144\002\000\002\152\001\000\002\148\001\000\002\188\001\000\002\184\001\000\002\180\001\000\002\176\001\000\002\172\001\000\002\168\001\000\002\168\002\000\002\168\003\000\002\188\002\000\002\188\003\000\002\176\002\000\002\176\003\000\002\176\004\000\002\172\002\000\002\172\003\000\002\172\004\000\002\184\002\000\002\184\003\000\002\180\002\000\002\180\003\000\000\168\002\000\017\164\003\000\017\200\003\000\017\204\003\000\002\224\001\000\002\188\001\000\002\184\001\000\002\180\001\000\002\176\001\000\002\172\001\000\002\168\001\000\000\172\001\000\007\248\001\000\007\212\001\000\002\168\002\000\017p\001\000\002\176\002\000\002\172\002\000\000\216\001\000\000\172\002\000\000\172\003\000\017\204\004\000\017\136\001\000\tH\001\000\tD\001\000\002t\001\000\002t\002\000\002t\003\000\tH\002\000\tD\002\000\tH\003\000\000d\001\000\000d\002\000\000d\003\000\017\180\001\000\017\176\001\000\017\180\002\000\000h\001\000\000h\002\000\000h\003\000\000h\004\000\000h\005\000\017\244\001\000\017\180\003\000\017\176\002\000\000d\004\000\017\136\002\000\017\148\001\000\017\148\002\000\000\172\001\000\000h\001\000\017\140\001\000\017\140\002\000\017\144\001\000\017\188\003\000\002\252\001\000\003\000\001\000\017\208\002\000\017\160\002\000\017\192\002\000\017\196\002\000\002\224\001\000\002\188\001\000\002\184\001\000\002\180\001\000\002\176\001\000\002\172\001\000\002\168\001\000\000\172\001\000\017\196\003\000\017\232\002\000\017\228\002\000\017\224\002\000\017\220\002\000\017\216\002\000\017\184\002\000\017\172\002\000\017\168\002\000\017\232\003\000\017\228\003\000\017\224\003\000\017\220\003\000\017\216\003\000\017\172\003\000\017\168\003\000\017\232\004\000\017\228\004\000\017\172\004\000\011l\001\000\017\172\005\000\017\228\005\000\017\232\005\000\002\188\001\000\002\184\001\000\002\180\001\000\002\176\001\000\002\172\001\000\002\168\001\000\000\172\001\000\017\232\006\000\017\216\004\000\017\168\004\000\017\220\004\000\017\224\004\000\002\188\001\000\002\184\001\000\002\180\001\000\002\176\001\000\002\172\001\000\002\168\001\000\000\172\001\000\017\224\005\000\017\152\005\000\017\024\001\000\017\020\001\000\000X\001\000\016\252\001\000\017\000\001\000\017\000\002\000\017\000\003\000\000X\002\000\017\024\002\000\000\\\001\000\000\\\002\000\000\\\003\000\017\024\003\000\017\020\002\000\017\028\003\000\012d\003\000\007\252\001\000\007\216\001\000\012d\004\000\007\252\002\000\007\216\002\000\012d\005\000\012d\006\000\012d\007\000\012d\b\000\012d\t\000\017$\002\000\012t\002\000\012p\002\000\017$\003\000\012t\003\000\012p\003\000\017\000\001\000\012p\004\000\017\000\002\000\012p\005\000\012p\006\000\012p\007\000\012p\b\000\017$\004\000\012t\004\000\007\252\001\000\007\216\001\000\012t\005\000\007\252\002\000\007\216\002\000\012t\006\000\012t\007\000\012t\b\000\012t\t\000\012t\n\000\005\020\001\000\t\156\001\000\n\212\001\000\t\156\002\000\t\156\003\000\t\156\004\000\b\016\001\000\b\016\002\000\n|\001\000\012\228\001\000\012\220\001\000\012\212\001\000\n\020\001\000\012\228\002\000\012\220\002\000\012\212\002\000\012\228\003\000\012\220\003\000\012\212\003\000\b\152\001\000\b\132\001\000\014\212\001\000\014\208\001\000\b\152\002\000\b\128\001\000\b\128\002\000\019\024\001\000\019\020\001\000\019\016\001\000\b\016\001\000\005p\001\000\b\016\002\000\005p\002\000\005p\003\000\019\024\002\000\019\020\002\000\019\016\002\000\019\024\003\000\019\020\003\000\019\016\003\000\019\020\004\000\019\016\004\000\019\020\005\000\019\016\005\000\019\020\006\000\019\016\006\000\019\020\007\000\019\024\004\000\019\024\005\000\019(\001\000\019$\001\000\019 \001\000\019\028\001\000\019 \002\000\b\012\001\000\019 \003\000\019 \004\000\007\252\001\000\007\216\001\000\019(\002\000\019$\002\000\019(\003\000\019$\003\000\019$\004\000\019$\005\000\b\128\001\000\b\168\001\000\007\252\001\000\007\216\001\000\b\168\002\000\007\252\002\000\007\216\002\000\007\252\003\000\007\216\003\000\005\000\001\000\b\168\003\000\b\164\001\000\b\140\001\000\b\140\002\000\b\140\003\000\b\128\001\000\014\216\001\000\b\136\001\000\b\136\002\000\b\128\001\000\019(\004\000\019(\005\000\b\128\001\000\019\028\002\000\b\016\001\000\019\028\003\000\019\028\004\000\007\252\001\000\007\216\001\000\006\228\001\000\b\128\003\000\006\232\001\000\006\232\002\000\006\232\003\000\012\228\004\000\012\228\005\000\b\128\001\000\b\156\001\000\012\220\004\000\012\140\001\000\n\024\001\000\n\024\002\000\012\140\002\000\018\224\001\000\t\164\001\000\t\208\001\000\t\204\001\000\t\252\001\000\t\228\001\000\t\216\001\000\t\212\001\000\n\012\001\000\n\004\001\000\t\224\001\000\t\200\001\000\t\192\001\000\t\188\001\000\t\184\001\000\t\180\001\000\n\000\001\000\n\b\001\000\t\176\001\000\n\b\002\000\t\244\001\000\t\232\001\000\t\172\001\000\n\016\001\000\t\236\001\000\t\240\001\000\018\224\002\000\018\224\003\000\012\140\003\000\012\140\004\000\012\140\005\000\005\016\001\000\005\016\002\000\011H\001\000\011D\001\000\r\024\001\000\r\020\001\000\r\020\002\000\r\024\002\000\018\224\001\000\015\028\001\000\015\024\001\000\011(\001\000\002h\001\000\r \001\000\r\028\001\000\t\204\001\000\015\028\002\000\011\016\001\000\015\028\003\000\011\016\002\000\015\028\004\000\r\024\001\000\r\020\001\000\t\212\001\000\0150\001\000\007L\001\000\015,\001\000\002d\001\000\015,\002\000\015,\003\000\n\252\001\000\007P\001\000\n4\001\000\007P\002\000\007P\003\000\015(\001\000\000(\001\000\000$\001\000\000 \001\000\000\028\001\000\000(\002\000\000$\002\000\000 \002\000\000\028\002\000\000(\003\000\000$\003\000\000 \003\000\000$\004\000\000$\005\000\000(\004\000\005\204\001\000\005\200\001\000\005\196\001\000\005\196\002\000\0110\001\000\018\224\001\000\015\028\001\000\015\024\001\000\002h\001\000\011,\001\000\015\016\001\000\011 \001\000\015\016\002\000\011 \002\000\015\016\001\000\015\016\002\000\014\248\001\000\015 \001\000\014\228\001\000\014\224\001\000\011 \003\000\015\b\001\000\015\004\001\000\015\000\001\000\015\004\002\000\015\004\003\000\r\016\001\000\015\b\002\000\015\b\003\000\015H\001\000\015D\001\000\015@\001\000\015<\001\000\0158\001\000\0154\001\000\b\016\001\000\002`\001\000\015H\002\000\015D\002\000\015@\002\000\015<\002\000\0158\002\000\0154\002\000\b\016\002\000\015H\003\000\015@\003\000\015H\004\000\011\020\001\000\011$\001\000\011\024\001\000\n\244\001\000\011$\002\000\011$\003\000\011$\001\000\011\024\001\000\011\024\002\000\011\024\003\000\015$\001\000\015\012\001\000\011\028\001\000\011\004\001\000\002h\001\000\007T\001\000\011\012\001\000\011\b\001\000\n\248\001\000\011\012\002\000\011\012\003\000\n\248\002\000\n\248\003\000\n\248\001\000\0114\001\000\0114\002\000\011$\001\000\011\024\001\000\011\004\002\000\007X\001\000\n4\001\000\007X\002\000\007X\003\000\011\004\003\000\011\004\004\000\014\244\001\000\007P\001\000\006\216\001\000\006\216\002\000\014\244\002\000\014\244\003\000\014\240\001\000\002d\001\000\014\240\002\000\014\240\003\000\014\236\001\000\014\236\002\000\014\236\003\000\011\000\001\000\011\028\002\000\b\016\001\000\002`\001\000\014\232\001\000\015@\004\000\n\248\001\000\015@\005\000\015<\003\000\015<\004\000\015<\005\000\015D\003\000\0158\003\000\015D\004\000\0158\004\000\0158\005\000\0154\003\000\0154\004\000\0154\005\000\015\012\001\000\011,\002\000\011$\001\000\011\024\001\000\015\024\002\000\007X\001\000\015\024\003\000\015\024\004\000\0110\002\000\n\248\001\000\005\196\003\000\005\204\002\000\005\204\003\000\015(\002\000\015(\003\000\n\248\001\000\007P\004\000\n\252\002\000\n\248\001\000\007L\002\000\0150\002\000\0150\003\000\011(\002\000\011(\003\000\011(\004\000\011(\005\000\011$\001\000\011\024\001\000\011(\006\000\011(\007\000\011$\001\000\011\024\001\000\011(\b\000\011H\002\000\011D\002\000\n\248\001\000\011H\003\000\003\208\001\000\003\208\002\000\003\208\003\000\n\248\001\000\003\208\004\000\003\208\005\000\003\180\001\000\003\176\001\000\003\160\001\000\018\224\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\144\002\000\003\156\002\000\003\152\002\000\003\152\003\000\005\176\001\000\007\016\001\000\003\156\003\000\n4\001\000\007\016\002\000\007\016\003\000\003\156\004\000\003\156\005\000\007\012\001\000\007\016\001\000\003\148\002\000\003\148\003\000\003\148\004\000\003\164\001\000\003\180\002\000\003\176\002\000\003\176\003\000\004D\001\000\004\\\001\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\004\\\002\000\r\196\001\000\r\192\001\000\005\128\001\000\005|\001\000\005x\001\000\n<\001\000\005\128\002\000\005\128\003\000\007\148\001\000\005\152\001\000\005\148\001\000\005\144\001\000\005\140\001\000\005\136\001\000\018\224\001\000\003\012\001\000\006\144\001\000\016\248\001\000\016\240\001\000\016\248\002\000\016\248\003\000\n\216\001\000\b\128\001\000\016\240\002\000\n\180\001\000\n\180\002\000\016\240\003\000\n\188\001\000\006\144\002\000\018\232\001\000\b\016\001\000\018\232\002\000\b\016\002\000\018\232\003\000\003\012\002\000\003\012\003\000\018\220\001\000\005\148\002\000\005\144\002\000\005\148\003\000\005\144\003\000\005\148\004\000\005\144\004\000\005\148\005\000\005\160\001\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\003\168\001\000\rX\002\000\004L\002\000\018\232\001\000\r\132\001\000\rx\001\000\rt\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\rT\001\000\rL\001\000\b\016\001\000\002`\001\000\018\232\002\000\r\132\002\000\rx\002\000\rt\002\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\rT\002\000\rL\002\000\b\016\002\000\018\224\001\000\rL\003\000\t\252\001\000\005\024\001\000\n\020\001\000\t\216\001\000\0048\001\000\007\240\001\000\007\228\001\000\005P\001\000\007\240\002\000\007\228\002\000\007\240\003\000\007\228\003\000\007\228\004\000\007\228\005\000\007\024\001\000\007\228\006\000\005P\002\000\007\244\001\000\007\232\001\000\007\232\002\000\007\232\003\000\007\024\001\000\007\232\004\000\005(\001\000\005$\001\000\005 \001\000\005 \002\000\004\248\001\000\005$\002\000\004\252\001\000\004\252\002\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014\004\001\000\014\000\001\000\r\252\001\000\r\244\001\000\r\236\001\000\006p\001\000\r\252\002\000\002d\001\000\r,\001\000\r\152\001\000\r\252\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004\004\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\003\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\236\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\003\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004d\002\000\004d\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004 \002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \003\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\248\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\003\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\244\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\003\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004$\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\003\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004\012\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\003\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004\000\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\003\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\252\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\003\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004,\002\000\004d\001\000\0040\001\000\004,\003\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004\b\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\003\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\240\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\003\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\232\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\003\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\228\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\003\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\224\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\003\000\003\224\001\000\003\220\001\000\003\216\001\000\003\220\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\003\000\003\220\001\000\003\216\001\000\004(\002\000\004d\001\000\0040\001\000\004,\001\000\004(\003\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\0040\002\000\003\216\002\000\0040\003\000\004d\001\000\0040\004\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004\028\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\003\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004\016\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\003\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004\020\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\003\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004\024\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\003\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\014\192\001\000\014\188\001\000\r<\001\000\014\192\002\000\014\188\002\000\r(\001\000\004h\001\000\004h\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\003\000\003\216\001\000\004d\004\000\004d\005\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\r\252\004\000\r\212\001\000\018\232\001\000\014(\001\000\014\028\001\000\014\024\001\000\014\020\001\000\014\016\001\000\014\012\001\000\014\b\001\000\r\248\001\000\r\240\001\000\b\016\001\000\002`\001\000\018\232\002\000\014(\002\000\014\028\002\000\014\024\002\000\014\020\002\000\014\016\002\000\014\012\002\000\014\b\002\000\r\248\002\000\r\240\002\000\b\016\002\000\018\224\001\000\r\240\003\000\t\212\001\000\0044\001\000\004d\001\000\0044\002\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\012$\001\000\n\012\001\000\014\224\001\000\005\244\001\000\005\244\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\011\020\001\000\005\248\001\000\005\248\002\000\005\248\003\000\005\248\004\000\005\248\005\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\n\248\001\000\005\252\001\000\005\252\002\000\005\252\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\012$\002\000\006\004\001\000\012$\003\000\012P\001\000\012P\002\000\006\004\001\000\012P\003\000\nL\001\000\n\024\001\000\005\208\001\000\005\208\002\000\011h\001\000\005\208\003\000\014\228\001\000\005\236\001\000\005\236\002\000\005\236\003\000\005\236\004\000\005\236\005\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\014\224\001\000\005\228\001\000\005\224\001\000\005\220\001\000\005\216\001\000\004\208\001\000\004\204\001\000\004\200\001\000\004\196\001\000\004\196\002\000\004\196\003\000\003$\001\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003$\002\000\004\196\004\000\003(\001\000\004\208\002\000\004\204\002\000\004\204\003\000\004\204\004\000\004\204\005\000\007\016\001\000\004\208\003\000\004\208\004\000\004\208\005\000\004\208\006\000\004\208\007\000\007\016\001\000\004\200\002\000\004\200\003\000\004\200\004\000\004\200\005\000\004\200\006\000\016\248\001\000\016\240\001\000\005\228\002\000\005\224\002\000\005\228\003\000\b\232\001\000\b\228\001\000\b\232\002\000\005\228\004\000\005\228\005\000\005\228\006\000\005\228\007\000\005\228\b\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\005\224\003\000\005\224\004\000\005\224\005\000\005\224\006\000\005\224\007\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\005\216\002\000\005\216\003\000\005\216\004\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\005\220\002\000\n\248\001\000\005\232\001\000\005\232\002\000\005\232\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\005\208\004\000\016\020\001\000\004\164\001\000\004\140\001\000\004\164\002\000\002h\001\000\004\164\003\000\004\184\001\000\004\160\001\000\004\184\002\000\004\184\003\000\004\172\001\000\004\148\001\000\004\172\002\000\004\148\002\000\004\172\003\000\004\172\004\000\004\168\001\000\004\144\001\000\004\168\002\000\004\144\002\000\004\168\003\000\004\168\004\000\004\180\001\000\004\156\001\000\004\180\002\000\004\180\003\000\004\176\001\000\004\152\001\000\004\176\002\000\004\176\003\000\003\b\001\000\003\004\001\000\016\020\002\000\012D\001\000\012D\002\000\011\240\001\000\012D\003\000\012<\001\000\0124\001\000\012<\002\000\0124\002\000\0124\003\000\002\240\001\000\002\236\001\000\bL\001\000\0124\004\000\b`\001\000\0124\005\000\0124\006\000\0120\001\000\004\240\001\000\004\236\001\000\004\232\001\000\004\228\001\000\014\220\001\000\014\204\001\000\bt\001\000\004\240\001\000\004\236\001\000\004\232\001\000\004\228\001\000\bt\002\000\004\228\002\000\b\128\001\000\b|\001\000\014\204\002\000\004\240\002\000\004\236\002\000\004\232\002\000\014\204\003\000\004\232\003\000\004\240\003\000\004\236\003\000\004\236\004\000\007$\001\000\bx\001\000\bx\002\000\b\128\001\000\bx\003\000\007(\001\000\004\240\004\000\n4\001\000\007(\002\000\007(\003\000\004\240\005\000\004\240\006\000\004\240\002\000\004\236\002\000\004\232\002\000\004\232\003\000\0120\002\000\0120\003\000\0120\004\000\n,\001\000\n(\001\000\n$\001\000\n,\002\000\n,\003\000\n(\002\000\n|\001\000\n$\002\000\n$\003\000\016\024\001\000\012T\001\000\012@\001\000\0128\001\000\005\212\001\000\012T\002\000\012T\003\000\006\004\001\000\012T\004\000\012T\005\000\012L\001\000\012H\001\000\012H\002\000\nd\001\000\012H\003\000\005\240\001\000\006$\001\000\006$\002\000\006(\001\000\006(\002\000\006(\003\000\006(\004\000\006$\003\000\005\240\002\000\011\252\001\000\011\244\001\000\011\244\002\000\012,\001\000\011\252\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\011\252\003\000\nd\001\000\011\252\004\000\012,\001\000\011\248\001\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\011\248\002\000\nd\001\000\011\248\003\000\b\240\001\000\b\236\001\000\004h\001\000\012,\002\000\012L\002\000\006\004\002\000\006\004\003\000\006\000\001\000\nL\001\000\005\212\002\000\005\212\003\000\005\212\004\000\005\212\005\000\016\024\002\000\016\024\003\000\012@\002\000\0128\002\000\012@\003\000\0128\003\000\0128\004\000\0128\005\000\b`\001\000\0128\006\000\0128\007\000\b\024\001\000\b\028\001\000\b`\001\000\b0\001\000\b,\001\000\b0\002\000\b\128\001\000\b0\003\000\b\020\001\000\b`\002\000\007\028\001\000\b\024\002\000\b\024\003\000\bH\001\000\b\016\001\000\b \001\000\007 \001\000\n4\001\000\007 \002\000\007 \003\000\bX\001\000\b\\\001\000\b\\\002\000\n\172\001\000\014\220\001\000\014\204\001\000\014\204\002\000\014\204\003\000\n\172\002\000\b\\\003\000\b\\\004\000\b`\001\000\b\\\005\000\bd\001\000\bd\002\000\b`\001\000\b \002\000\012@\004\000\012@\005\000\b`\001\000\012@\006\000\012@\007\000\b(\001\000\b$\001\000\bh\001\000\bh\002\000\b`\001\000\b(\002\000\b\128\001\000\b(\003\000\bl\001\000\b(\004\000\b$\002\000\006\160\001\000\012<\003\000\012<\004\000\b`\001\000\012<\005\000\012<\006\000\012P\004\000\012$\004\000\t\224\001\000\005L\001\000\005H\001\000\t\172\001\000\004D\001\000\004d\001\000\004D\002\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\012\024\001\000\012\024\002\000\012\024\003\000\011\224\001\000\004x\001\000\012\016\001\000\012\b\001\000\012\016\002\000\012\b\002\000\012\b\003\000\012\b\004\000\b`\001\000\012\b\005\000\012\b\006\000\012\016\003\000\012\016\004\000\b`\001\000\012\016\005\000\012\016\006\000\012\004\001\000\012\004\002\000\012\004\003\000\012\004\004\000\016\024\001\000\012(\001\000\012\020\001\000\012\012\001\000\005\212\001\000\012(\002\000\012(\003\000\006\004\001\000\012(\004\000\012(\005\000\012\020\002\000\012\012\002\000\012\020\003\000\012\012\003\000\012\012\004\000\012\012\005\000\b`\001\000\012\012\006\000\012\012\007\000\012\020\004\000\012\020\005\000\b`\001\000\012\020\006\000\012\020\007\000\007\000\001\000\004p\001\000\n4\001\000\007\000\002\000\007\000\003\000\004\128\001\000\004|\001\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004\128\002\000\004p\002\000\012 \001\000\012\028\001\000\012 \002\000\012\028\002\000\012\028\003\000\011\236\001\000\011\228\001\000\011\228\002\000\012,\001\000\011\236\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\011\236\003\000\nd\001\000\011\236\004\000\006\252\001\000\r\240\004\000\r\240\005\000\004t\001\000\012\000\001\000\011\232\001\000\004\128\001\000\004|\001\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\012\000\002\000\011\232\002\000\011\232\003\000\014\020\003\000\007\252\001\000\007\216\001\000\005T\001\000\005T\002\000\014\020\004\000\014\020\005\000\005h\001\000\005d\001\000\005`\001\000\005`\002\000\005d\002\000\004\252\001\000\005d\003\000\005d\004\000\r\208\001\000\014<\001\000\014\192\001\000\014\188\001\000\r\224\001\000\r\204\001\000\005h\002\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014\004\001\000\014\000\001\000\r\252\001\000\r\244\001\000\r\236\001\000\005h\003\000\005h\004\000\014\016\003\000\014\016\004\000\014\016\005\000\014\028\003\000\014\024\003\000\014\024\004\000\014\028\004\000\014\028\005\000\014(\003\000\014(\004\000\007\b\001\000\n4\001\000\007\b\002\000\007\b\003\000\014(\005\000\014(\006\000\007\004\001\000\014\012\003\000\014\b\003\000\r\248\003\000\016D\001\000\016@\001\000\011\176\001\000\016@\002\000\016D\002\000\011\176\002\000\016D\003\000\011\176\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\016D\004\000\n4\001\000\011\176\004\000\r\248\004\000\011\172\001\000\011\128\001\000\011|\001\000\011x\001\000\011t\001\000\011p\001\000\011\172\002\000\011\128\002\000\011|\002\000\011x\002\000\011t\002\000\011p\002\000\011x\003\000\007@\001\000\007<\001\000\007@\002\000\007<\002\000\007<\003\000\007<\004\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\011x\004\000\007H\001\000\007D\001\000\n4\001\000\007H\002\000\007D\002\000\007H\003\000\007D\003\000\007H\004\000\007D\004\000\007D\005\000\007D\006\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\011x\005\000\011\172\003\000\011\128\003\000\011|\003\000\011t\003\000\011p\003\000\016<\001\000\n\148\001\000\n\148\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\016<\002\000\011\172\004\000\007l\001\000\011\128\004\000\011|\004\000\011t\004\000\011p\004\000\011\128\005\000\011|\005\000\011t\005\000\011p\005\000\011|\006\000\011p\006\000\011|\007\000\011p\007\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\011|\b\000\011p\b\000\006\140\001\000\006\136\001\000\011|\t\000\n4\001\000\006\140\002\000\006\136\002\000\006\140\003\000\006\136\003\000\006\140\004\000\006\136\004\000\006\136\005\000\006\136\006\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\011p\t\000\011\128\006\000\011t\006\000\006\140\001\000\006\136\001\000\011\128\007\000\011t\007\000\016H\001\000\007p\001\000\n4\001\000\007p\002\000\007p\003\000\016H\002\000\011\180\001\000\011\180\002\000\014\012\004\000\014\012\005\000\014\b\004\000\014\b\005\000\011\168\001\000\011\164\001\000\011\160\001\000\011\156\001\000\011\152\001\000\011\148\001\000\011\144\001\000\011\140\001\000\011\136\001\000\011\132\001\000\011\168\002\000\011\164\002\000\011\152\002\000\011\148\002\000\011\168\003\000\011\164\003\000\011\152\003\000\011\148\003\000\011\168\004\000\011\164\004\000\011\152\004\000\011\148\004\000\011\164\005\000\011\148\005\000\011\164\006\000\011\148\006\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\011\164\007\000\011\148\007\000\006\140\001\000\006\136\001\000\011\164\b\000\011\148\b\000\011\168\005\000\011\152\005\000\006\140\001\000\006\136\001\000\011\168\006\000\011\152\006\000\011\160\002\000\011\156\002\000\011\144\002\000\011\140\002\000\011\136\002\000\011\132\002\000\011\160\003\000\011\156\003\000\011\144\003\000\011\140\003\000\011\136\003\000\011\132\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\011\136\004\000\011\160\004\000\011\156\004\000\011\144\004\000\011\140\004\000\n4\001\000\011\160\005\000\011\156\005\000\011\144\005\000\011\140\005\000\011\160\006\000\011\156\006\000\011\144\006\000\011\140\006\000\011\156\007\000\011\140\007\000\011\156\b\000\011\140\b\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\011\156\t\000\011\140\t\000\006\140\001\000\006\136\001\000\011\156\n\000\011\140\n\000\011\160\007\000\011\144\007\000\006\140\001\000\006\136\001\000\011\160\b\000\011\144\b\000\011\132\004\000\006p\002\000\005$\003\000\005$\004\000\005(\002\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014\004\001\000\014\000\001\000\r\252\001\000\r\244\001\000\r\236\001\000\005(\003\000\005(\004\000\004d\001\000\0048\002\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\rL\004\000\rL\005\000\rp\003\000\rp\004\000\rp\005\000\rl\003\000\rl\004\000\rl\005\000\rx\003\000\rt\003\000\rt\004\000\rx\004\000\rx\005\000\r\132\003\000\r\132\004\000\007\b\001\000\r\132\005\000\r\132\006\000\rh\003\000\rd\003\000\rT\003\000\rT\004\000\rh\004\000\rh\005\000\rd\004\000\rd\005\000\rX\003\000\004d\001\000\004L\003\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\rX\004\000\004L\004\000\004L\005\000\004d\001\000\004L\006\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\r`\002\000\r\\\002\000\rP\002\000\004T\002\000\004P\002\000\004H\002\000\r\\\003\000\004P\003\000\r\\\004\000\004d\001\000\004P\004\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\r\\\005\000\004P\005\000\004P\006\000\004d\001\000\004P\007\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\r`\003\000\004T\003\000\r`\004\000\006\248\001\000\004T\004\000\n4\001\000\006\248\002\000\006\248\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\r`\005\000\004T\005\000\r`\006\000\004T\006\000\004T\007\000\004d\001\000\004T\b\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\006\244\001\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\rP\003\000\004H\003\000\004H\004\000\004d\001\000\004H\005\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\005t\001\000\r\156\002\000\005\144\005\000\005\156\001\000\006\144\001\000\005\140\002\000\005\140\003\000\003\016\001\000\005\136\002\000\007\148\002\000\005\132\001\000\005x\002\000\005x\003\000\007\152\001\000\005|\002\000\n4\001\000\007\152\002\000\007\152\003\000\007\152\004\000\005|\003\000\005|\004\000\rX\002\000\rX\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\rX\004\000\r`\002\000\r\\\002\000\rP\002\000\r\\\003\000\r\\\004\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\r\\\005\000\r`\003\000\r`\004\000\006\248\001\000\r`\005\000\r`\006\000\rP\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\176\004\000\003\180\003\000\003\180\004\000\003\180\005\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\180\006\000\b\196\001\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\208\006\000\002\228\001\000\002\232\001\000\003\208\007\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\208\b\000\003\208\t\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\003\208\n\000\n\204\001\000\011H\004\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\172\001\000\018\172\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\168\001\000\018\168\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\t\148\001\000\t\148\002\000\t\148\003\000\t\148\004\000\b`\001\000\016\168\001\000\016\160\001\000\n\020\001\000\016\168\002\000\016\160\002\000\n\\\001\000\016\168\003\000\016\160\003\000\016\168\004\000\016\160\004\000\016\168\005\000\018\164\001\000\018\164\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\160\001\000\018\160\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\224\001\000\018@\001\000\r\196\001\000\r\192\001\000\rD\001\000\002h\001\000\018@\002\000\018@\003\000\018@\004\000\018@\005\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018@\006\000\018@\007\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018@\b\000\rD\002\000\rD\003\000\018\220\001\000\018\196\001\000\018\196\002\000\018\196\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\n\024\001\000\005\208\001\000\018\204\001\000\018\204\002\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\016\192\001\000\016\192\002\000\b`\001\000\0184\001\000\0180\001\000\0184\002\000\0180\002\000\0184\003\000\0180\003\000\0184\004\000\0180\004\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\0184\005\000\0184\006\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\n\220\001\000\018$\001\000\018\024\001\000\018$\002\000\018\024\002\000\007\180\001\000\007\176\001\000\007\172\001\000\n\248\001\000\007\180\002\000\007\176\002\000\007\172\002\000\007\176\003\000\007\176\004\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\007\176\005\000\007\176\006\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\007\180\003\000\007\172\003\000\007\180\004\000\007\172\004\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018$\003\000\018$\004\000\006x\001\000\006x\002\000\018\024\003\000\018<\001\000\018<\002\000\018<\003\000\018<\004\000\n\248\001\000\018<\005\000\018<\006\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018<\007\000\018<\b\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018<\t\000\018<\n\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\016|\001\000\016t\001\000\016|\002\000\016t\002\000\016|\003\000\016t\003\000\016|\004\000\016t\004\000\016|\005\000\016t\005\000\016|\006\000\016t\006\000\b\224\001\000\b\220\001\000\b\224\002\000\016t\007\000\011X\001\000\018 \001\000\018\028\001\000\018 \002\000\018\028\002\000\018\028\003\000\018\028\004\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018 \003\000\018 \004\000\018 \005\000\018 \006\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\011@\001\000\011<\001\000\012\240\001\000\012\240\002\000\b\128\001\000\012\156\001\000\012\148\001\000\012\156\002\000\012\148\002\000\012\156\003\000\012\148\003\000\012\156\004\000\012\148\004\000\012\156\005\000\012\148\005\000\012\156\006\000\012\148\006\000\012\148\007\000\012X\001\000\012X\002\000\002@\001\000\001@\001\000\019\012\001\000\002@\002\000\002<\001\000\002<\002\000\006\152\001\000\018\004\001\000\018\b\001\000\017l\001\000\017\236\001\000\017\236\002\000\017l\002\000\007|\001\000\007\128\001\000\006\152\002\000\n4\001\000\007\128\002\000\007\128\003\000\006\152\003\000\006\152\004\000\002<\003\000\0028\001\000\0024\001\000\001\244\001\000\b\184\001\000\b\184\002\000\b\188\001\000\b\188\002\000\001\244\002\000\019\004\001\000\019\004\002\000\019\004\003\000\019\004\004\000\nd\001\000\002\004\001\000\002\004\002\000\002\004\003\000\002\004\004\000\002\004\005\000\001\252\001\000\001\252\002\000\001\252\003\000\001\252\004\000\001\252\005\000\nL\001\000\001\236\001\000\002H\001\000\007\252\001\000\007\216\001\000\002L\001\000\007\252\002\000\007\216\002\000\002L\002\000\002L\003\000\001\188\001\000\001\176\001\000\006\184\001\000\006\240\001\000\0020\001\000\0020\002\000\006\184\002\000\006\184\003\000\001\176\002\000\001\184\001\000\001\236\002\000\001\180\001\000\001\180\002\000\0028\002\000\002\012\001\000\002x\001\000\002x\002\000\002x\003\000\002\012\002\000\001\204\001\000\001\204\002\000\001\228\001\000\001\224\001\000\001\224\002\000\001\224\003\000\b\016\001\000\001\224\004\000\001\224\005\000\002\028\001\000\002\024\001\000\002\016\001\000\002\b\001\000\002\000\001\000\001\248\001\000\001\240\001\000\001\248\002\000\001\248\003\000\002\b\002\000\002\b\003\000\002\b\004\000\002\b\005\000\002\b\006\000\002\000\002\000\002\000\003\000\002\000\004\000\002\000\005\000\002\000\006\000\001\240\002\000\001\240\003\000\002\016\002\000\002\016\003\000\002\024\002\000\007\168\001\000\001\232\001\000\nd\001\000\007\168\002\000\002\020\001\000\007\168\003\000\001\232\002\000\007\164\001\000\001\216\001\000\001\224\006\000\001\220\001\000\001\212\001\000\001\208\001\000\001\212\002\000\001\212\003\000\0028\003\000\0028\004\000\0024\002\000\0024\003\000\003\028\001\000\003\028\002\000\002<\004\000\003 \001\000\002@\003\000\000<\001\000\000<\002\000\000@\001\000\000@\002\000\000@\003\000\002@\004\000\006\028\001\000\006\028\002\000\001<\001\000\001<\002\000\001<\003\000\001<\004\000\001\b\001\000\001<\005\000\001\012\001\000\001\012\002\000\001\012\003\000\001@\002\000\0004\001\000\0004\002\000\0008\001\000\0008\002\000\0008\003\000\001@\003\000\006\020\001\000\006\020\002\000\012\168\001\000\012\164\001\000\012\136\001\000\012\132\001\000\012\136\002\000\r\b\001\000\012\136\003\000\012\172\001\000\012\176\001\000\012\188\001\000\012\180\001\000\012\188\002\000\012\188\003\000\b\016\001\000\012\180\002\000\bD\001\000\b\144\001\000\b\144\002\000\b\128\001\000\b\148\001\000\bD\002\000\012\204\001\000\012\204\002\000\000L\001\000\000L\002\000\000L\003\000\000P\001\000\000P\002\000\000P\003\000\000P\004\000\012\204\003\000\0068\001\000\0068\002\000\012\196\001\000\n,\001\000\n(\001\000\n$\001\000\n \001\000\n\028\001\000\012\196\002\000\b\004\001\000\012\196\003\000\012\196\004\000\007\252\001\000\007\216\001\000\n,\002\000\n \002\000\n\028\002\000\n \003\000\n\028\003\000\n \004\000\n\028\004\000\012\236\001\000\017\156\001\000\017(\001\000\017 \001\000\r\012\001\000\r\004\001\000\012\244\001\000\012\232\001\000\012\224\001\000\012\216\001\000\012\208\001\000\012\200\001\000\012\192\001\000\012\184\001\000\012\160\001\000\012\152\001\000\012\144\001\000\012|\001\000\012x\001\000\012l\001\000\012h\001\000\012\\\001\000\t\160\001\000\002D\001\000\001D\001\000\017\156\002\000\017(\002\000\017 \002\000\012|\002\000\012x\002\000\012l\002\000\012h\002\000\017\156\003\000\017 \003\000\012l\003\000\012h\003\000\017\156\004\000\017\000\001\000\012h\004\000\017\156\005\000\017\000\002\000\012h\005\000\012h\006\000\012h\007\000\012h\b\000\017\156\006\000\017 \004\000\012l\004\000\007\252\001\000\007\216\001\000\012l\005\000\007\252\002\000\007\216\002\000\012l\006\000\012l\007\000\012l\b\000\012l\t\000\012l\n\000\017(\003\000\012|\003\000\012x\003\000\017(\004\000\012|\004\000\012x\004\000\017\000\001\000\012x\005\000\017\000\002\000\012x\006\000\012x\007\000\012x\b\000\012x\t\000\017(\005\000\012|\005\000\007\252\001\000\007\216\001\000\012|\006\000\007\252\002\000\007\216\002\000\012|\007\000\012|\b\000\012|\t\000\012|\n\000\012|\011\000\t\160\002\000\t\160\003\000\t\160\004\000\t\160\005\000\b\016\001\000\012\232\002\000\012\224\002\000\012\216\002\000\n\020\001\000\012\232\003\000\012\224\003\000\012\216\003\000\012\232\004\000\012\224\004\000\012\216\004\000\012\232\005\000\012\232\006\000\b\128\001\000\012\224\005\000\012\144\002\000\n\024\001\000\012\144\003\000\012\144\004\000\012\144\005\000\012\144\006\000\012\244\002\000\012\244\003\000\b\128\001\000\012\160\002\000\012\152\002\000\012\160\003\000\012\152\003\000\012\160\004\000\012\152\004\000\012\160\005\000\012\152\005\000\012\160\006\000\012\152\006\000\012\160\007\000\012\152\007\000\012\152\b\000\012\\\002\000\012\\\003\000\002D\002\000\001D\002\000\002D\003\000\002D\004\000\002D\005\000\001D\003\000\001D\004\000\012\192\002\000\012\184\002\000\012\192\003\000\012\192\004\000\b\016\001\000\012\184\003\000\012\208\002\000\012\208\003\000\012\208\004\000\012\200\002\000\n,\001\000\n(\001\000\n$\001\000\n \001\000\n\028\001\000\012\200\003\000\b\004\001\000\012\200\004\000\012\200\005\000\007\252\001\000\007\216\001\000\r\004\002\000\r\000\001\000\012\252\001\000\012\248\001\000\011<\002\000\017\156\001\000\017(\001\000\017 \001\000\r\012\001\000\r\004\001\000\012\244\001\000\012\232\001\000\012\224\001\000\012\216\001\000\012\208\001\000\012\200\001\000\012\192\001\000\012\184\001\000\012\160\001\000\012\152\001\000\012\144\001\000\012|\001\000\012x\001\000\012l\001\000\012h\001\000\012\\\001\000\t\160\001\000\002\224\001\000\002D\001\000\001D\001\000\011@\002\000\016\180\001\000\002@\001\000\0018\001\000\0014\001\000\0010\001\000\001,\001\000\001(\001\000\001$\001\000\001 \001\000\001\028\001\000\001\024\001\000\001\020\001\000\0018\002\000\0014\002\000\0010\002\000\001,\002\000\001(\002\000\001$\002\000\001 \002\000\001\028\002\000\001\024\002\000\001\020\002\000\0018\003\000\0014\003\000\0010\003\000\001,\003\000\001(\003\000\001$\003\000\001 \003\000\001\028\003\000\001\024\003\000\001\024\004\000\n\132\001\000\n\132\002\000\001\016\001\000\003\024\001\000\002\244\001\000\002\248\001\000\002,\001\000\002(\001\000\002$\001\000\nL\001\000\005\208\001\000\001\156\001\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\001\156\002\000\001|\001\000\001|\002\000\001d\001\000\001d\002\000\006\224\001\000\001d\003\000\001h\001\000\001X\001\000\001T\001\000\001P\001\000\001L\001\000\001X\002\000\001T\002\000\001P\002\000\001L\002\000\001L\003\000\001L\004\000\001\\\001\000\001H\001\000\001\\\002\000\002 \001\000\001L\005\000\001`\001\000\001`\002\000\001X\003\000\001T\003\000\001T\004\000\001T\005\000\001T\006\000\007\016\001\000\001X\004\000\001X\005\000\001X\006\000\001X\007\000\001X\b\000\007\016\001\000\001P\003\000\001P\004\000\001P\005\000\001P\006\000\001P\007\000\001|\003\000\nl\001\000\nl\002\000\001|\004\000\001\148\001\000\001\148\002\000\t`\001\000\001x\001\000\001x\002\000\001x\003\000\b\016\001\000\001x\004\000\001x\005\000\t\\\001\000\001t\001\000\006\168\001\000\005\212\001\000\001\172\001\000\001\168\001\000\001\160\001\000\001\152\001\000\001\144\001\000\001\136\001\000\001\128\001\000\001\136\002\000\001\136\003\000\019\000\001\000\018\252\001\000\018\240\001\000\018\236\001\000\018\240\002\000\018\236\002\000\b\176\001\000\018\240\003\000\018\236\003\000\018\240\004\000\018\236\004\000\018\236\005\000\016\248\001\000\016\240\001\000\018\236\006\000\016\240\002\000\018\240\005\000\018\240\006\000\018\240\007\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\019\000\002\000\018\252\002\000\019\000\003\000\018\252\003\000\018\252\004\000\018\252\005\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\019\000\004\000\019\000\005\000\019\000\006\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\005\212\002\000\001\160\002\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\001\160\003\000\001\128\002\000\001\128\003\000\001\128\004\000\001\128\005\000\001\152\002\000\001\152\003\000\001\168\002\000\001\144\002\000\007\208\001\000\007\204\001\000\007\200\001\000\007\196\001\000\007\196\002\000\007\196\003\000\007\196\004\000\007\196\005\000\007\208\002\000\007\204\002\000\007\200\002\000\n\164\001\000\007\208\003\000\007\208\004\000\007\208\005\000\007\208\006\000\007\208\007\000\007\208\b\000\n\164\002\000\007\204\003\000\007\204\004\000\007\200\003\000\001\144\003\000\td\001\000\007\160\001\000\nd\001\000\007\160\002\000\001\172\001\000\001\168\001\000\001\160\001\000\001\152\001\000\001\144\001\000\001\136\001\000\001\128\001\000\001\164\001\000\001\140\001\000\001\140\002\000\007\160\003\000\td\002\000\tX\001\000\tT\001\000\001\200\001\000\n\248\001\000\001\200\002\000\tX\002\000\tT\002\000\tX\003\000\tX\004\000\007\156\001\000\001p\001\000\001p\002\000\001p\003\000\001l\001\000\b\240\001\000\b\236\001\000\001`\001\000\001x\006\000\002$\002\000\002$\003\000\002,\002\000\002(\002\000\002,\003\000\002(\003\000\002(\004\000\002(\005\000\003\024\002\000\003\024\003\000\003\020\001\000\003\020\002\000\001\016\002\000\001\024\005\000\018\004\001\000\r \001\000\r\028\001\000\018\b\001\000\r\024\001\000\r\020\001\000\001$\004\000\001 \004\000\001 \005\000\001 \006\000\007\016\001\000\001$\005\000\001$\006\000\001$\007\000\001$\b\000\007\128\001\000\0018\004\000\0014\004\000\0010\004\000\001,\004\000\001(\004\000\0018\005\000\0014\005\000\0010\005\000\001,\005\000\001(\005\000\0018\006\000\0014\006\000\0010\006\000\001,\006\000\001(\006\000\0018\007\000\0014\007\000\0010\007\000\001,\007\000\001,\b\000\001,\t\000\0018\b\000\0014\b\000\0014\t\000\0014\n\000\007\016\001\000\0018\t\000\0018\n\000\0018\011\000\0018\012\000\007\016\001\000\0010\b\000\0010\t\000\0010\n\000\0010\011\000\001(\007\000\007\016\001\000\001\028\004\000\001\028\005\000\001\028\006\000\001\028\007\000\001\020\003\000\016\180\002\000\000,\001\000\000,\002\000\0000\001\000\0000\002\000\0000\003\000\016\180\003\000\006\012\001\000\006\012\002\000\018\176\001\000\018\176\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\200\001\000\018\200\002\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\018\228\001\000\014\248\001\000\018\208\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\016d\001\000\018p\002\000\018p\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018X\002\000\018X\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\208\002\000\018\208\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\208\004\000\018\208\005\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\140\002\000\018\140\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018d\002\000\018d\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018`\002\000\018`\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\144\002\000\018\144\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018x\002\000\018x\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018l\002\000\018l\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018h\002\000\018h\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\152\002\000\018\152\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018t\002\000\018t\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\\\002\000\018\\\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018T\002\000\018T\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018P\002\000\018P\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018L\002\000\018L\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018H\002\000\018H\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\148\002\000\018\148\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\156\002\000\018D\002\000\018\156\003\000\018\156\004\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018D\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\136\002\000\018\136\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018|\002\000\018|\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\128\002\000\018\128\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\132\002\000\018\132\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\016\132\001\000\016`\001\000\016\\\001\000\016`\002\000\016`\003\000\016\136\001\000\016\140\001\000\018\192\001\000\018\188\001\000\018\184\001\000\018\180\001\000\018\020\001\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\018\184\002\000\rX\002\000\018\184\003\000\rX\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\184\004\000\rX\004\000\018\184\005\000\018\184\006\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\192\002\000\018\188\002\000\018\180\002\000\r`\002\000\r\\\002\000\rP\002\000\018\188\003\000\r\\\003\000\018\188\004\000\r\\\004\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\188\005\000\r\\\005\000\018\188\006\000\018\188\007\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\192\003\000\r`\003\000\018\192\004\000\r`\004\000\006\248\001\000\018\192\005\000\r`\005\000\018\192\006\000\r`\006\000\018\192\007\000\018\192\b\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\018\180\003\000\rP\003\000\018\180\004\000\018\180\005\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\016\144\001\000\016\144\002\000\016\152\001\000\016\152\002\000\000D\001\000\000D\002\000\000D\003\000\000H\001\000\000H\002\000\000H\003\000\000H\004\000\016\152\003\000\0060\001\000\0060\002\000\n,\001\000\n(\001\000\n$\001\000\n \001\000\n\028\001\000\016\176\001\000\017(\001\000\017 \001\000\016\212\001\000\016\204\001\000\016\196\001\000\016\184\001\000\016\172\001\000\016\164\001\000\016\156\001\000\016\148\001\000\016\128\001\000\016x\001\000\016p\001\000\016h\001\000\0168\001\000\0164\001\000\016(\001\000\016$\001\000\016\024\001\000\t\152\001\000\005\212\001\000\002D\001\000\017(\002\000\017 \002\000\0168\002\000\0164\002\000\016(\002\000\016$\002\000\017 \003\000\016(\003\000\016$\003\000\017\000\001\000\016$\004\000\017\000\002\000\016$\005\000\016$\006\000\016$\007\000\t\016\001\000\t\012\001\000\t\000\001\000\b\252\001\000\t\016\002\000\t\000\002\000\t\016\003\000\t\000\003\000\t\016\004\000\t\024\001\000\t\020\001\000\t\b\001\000\t\004\001\000\t\024\002\000\t\020\002\000\t\b\002\000\t\004\002\000\t\024\003\000\t\b\003\000\t\024\004\000\t\b\004\000\t\024\005\000\t\020\003\000\t\004\003\000\t\020\004\000\t\012\002\000\b\252\002\000\t\012\003\000\000\156\001\000\000\152\001\000\006D\001\000\006@\001\000\006D\002\000\006D\003\000\006L\001\000\006H\001\000\006L\002\000\006H\002\000\006L\003\000\006L\004\000\006L\005\000\006H\003\000\006H\004\000\006D\004\000\006@\002\000\006@\003\000\000\152\002\000\016$\b\000\016(\004\000\007\252\001\000\007\216\001\000\016(\005\000\007\252\002\000\007\216\002\000\016(\006\000\016(\007\000\016(\b\000\016(\t\000\016(\n\000\017(\003\000\0168\003\000\0164\003\000\017(\004\000\0168\004\000\0164\004\000\017\000\001\000\0164\005\000\017\000\002\000\0164\006\000\0164\007\000\0164\b\000\0164\t\000\0168\005\000\007\252\001\000\007\216\001\000\0168\006\000\007\252\002\000\007\216\002\000\0168\007\000\0168\b\000\0168\t\000\0168\n\000\0168\011\000\t\152\002\000\t\152\003\000\t\152\004\000\t\152\005\000\b`\001\000\016\172\002\000\016\164\002\000\n\020\001\000\016\172\003\000\016\164\003\000\016\172\004\000\016\164\004\000\016\172\005\000\016\164\005\000\016\172\006\000\n\024\001\000\005\212\002\000\016\196\002\000\016\196\003\000\b`\001\000\016\128\002\000\016x\002\000\016\128\003\000\016x\003\000\016\128\004\000\016x\004\000\016\128\005\000\016x\005\000\016\128\006\000\016x\006\000\016\128\007\000\016x\007\000\016x\b\000\016\184\002\000\002D\002\000\016\184\003\000\016\184\004\000\018\208\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\018`\001\000\018\\\001\000\018X\001\000\018T\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\016h\002\000\016\148\002\000\016\148\003\000\016\156\002\000\016\156\003\000\016\156\004\000\016p\002\000\016p\003\000\016\208\001\000\016l\001\000\016l\002\000\016\200\001\000\016\188\001\000\016\204\002\000\0118\001\000\011L\001\000\011L\002\000\011L\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\005\016\003\000\005\016\004\000\b\160\002\000\b\160\003\000\011\016\005\000\005\184\002\000\005\188\001\000\005\172\003\000\005\168\003\000\005\164\003\000\005\172\004\000\005\168\004\000\005\172\005\000\005\168\005\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004\212\002\000\n\156\001\000\n\156\002\000\004\212\003\000\003,\001\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003,\002\000\004\212\004\000\0030\001\000\004\224\002\000\004\220\002\000\004\220\003\000\004\220\004\000\004\220\005\000\007\016\001\000\004\224\003\000\004\224\004\000\004\224\005\000\004\224\006\000\004\224\007\000\007\016\001\000\004\216\002\000\004\216\003\000\004\216\004\000\004\216\005\000\004\216\006\000\003\184\003\000\006x\001\000\003\184\004\000\003\172\003\000\014\000\004\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\014\000\005\000\014\004\003\000\014\004\004\000\006\248\001\000\014\004\005\000\014\004\006\000\r\244\003\000\003\200\005\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\200\006\000\014\176\002\000\014\176\003\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\014\168\002\000\014\168\003\000\014h\002\000\014\180\002\000\014\180\003\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014\004\001\000\014\000\001\000\r\252\001\000\r\244\001\000\r\236\001\000\014x\002\000\014x\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\014x\004\000\018(\004\000\007\192\001\000\007\188\001\000\007\184\001\000\n\248\001\000\007\192\002\000\007\188\002\000\007\184\002\000\007\188\003\000\007\188\004\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\007\188\005\000\007\188\006\000\007\192\003\000\007\184\003\000\007\192\004\000\007\184\004\000\018(\005\000\018(\006\000\006\128\001\000\018(\007\000\006\128\002\000\014\128\002\000\014|\002\000\014p\002\000\014|\003\000\014|\004\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\014|\005\000\014\128\003\000\014\128\004\000\006\248\001\000\014\128\005\000\014\128\006\000\014p\003\000\014P\001\000\018\232\001\000\014\164\001\000\014\152\001\000\014\148\001\000\014\144\001\000\014\140\001\000\014\136\001\000\014\132\001\000\014t\001\000\014l\001\000\b\016\001\000\002`\001\000\018\232\002\000\014\164\002\000\014\152\002\000\014\148\002\000\014\144\002\000\014\140\002\000\014\136\002\000\014\132\002\000\014t\002\000\014l\002\000\b\016\002\000\018\224\001\000\014l\003\000\014l\004\000\014l\005\000\014\144\003\000\014\144\004\000\014\144\005\000\014\140\003\000\014\140\004\000\014\140\005\000\014\152\003\000\014\148\003\000\014\148\004\000\014\152\004\000\014\152\005\000\014\164\003\000\014\164\004\000\007\b\001\000\014\164\005\000\014\164\006\000\014\136\003\000\014\132\003\000\014t\003\000\014t\004\000\014\136\004\000\014\136\005\000\014\132\004\000\014\132\005\000\014L\001\000\014\184\001\000\014\\\001\000\014H\001\000\bp\002\000\bp\003\000\r\196\003\000\r\192\003\000\b`\001\000\r\192\004\000\r\196\004\000\r\196\005\000\r\196\006\000\b\212\002\000\007\000\001\000\b\212\003\000\b\212\004\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\004`\002\000\004\188\003\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\r\188\002\000\r\184\002\000\007\b\001\000\r\184\003\000\r\184\004\000\0078\004\000\r8\003\000\r8\004\000\0074\002\000\r\216\002\000\r\216\003\000\r\220\002\000\0078\001\000\r\220\003\000\r\220\004\000\005\\\002\000\005\\\003\000\r\180\002\000\r\176\002\000\r\172\002\000\r\176\003\000\r\180\003\000\r\172\003\000\r\180\004\000\r\172\004\000\r\172\005\000\018,\003\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\128\001\000\014|\001\000\014x\001\000\014p\001\000\014h\001\000\018,\004\000\018,\005\000\018,\006\000\006\128\001\000\018,\007\000\000\144\003\000\000\144\004\000\000\212\002\000\000\212\003\000\006\208\001\000\000\220\002\000\000\220\003\000\000\224\002\000\006\200\001\000\t@\001\000\t<\001\000\t@\002\000\t<\002\000\t@\003\000\006\200\002\000\000\224\003\000\000\224\004\000\017t\002\000\007`\001\000\017t\003\000\017t\004\000\017\128\002\000\n4\001\000\017\128\003\000\007`\001\000\017\128\004\000\017\128\005\000\017\132\002\000\017|\002\000\017\132\003\000\n4\001\000\017\132\004\000\007`\001\000\017\132\005\000\017\132\006\000\017|\003\000\017|\004\000\017x\002\000\017x\003\000\0170\001\000\007\252\001\000\007\216\001\000\007\020\001\000\017T\002\000\017L\002\000\017H\002\000\017<\002\000\017\b\002\000\017T\003\000\002\192\001\000\000\168\001\000\002\188\001\000\002\184\001\000\002\180\001\000\002\176\001\000\002\172\001\000\002\168\001\000\000\\\001\000\002\192\002\000\017H\003\000\017L\003\000\002\224\001\000\002\188\001\000\002\184\001\000\002\180\001\000\002\176\001\000\002\172\001\000\002\168\001\000\000\172\001\000\017L\004\000\002\196\001\000\002\208\001\000\002\208\002\000\000\172\001\000\000\\\001\000\002\196\002\000\002\200\001\000\002\200\002\000\002\204\001\000\017<\003\000\017\b\003\000\017P\002\000\017@\002\000\017D\002\000\002\224\001\000\002\188\001\000\002\184\001\000\002\180\001\000\002\176\001\000\002\172\001\000\002\168\001\000\000\172\001\000\017D\003\000\017h\002\000\017d\002\000\017`\002\000\017\\\002\000\017X\002\000\0178\002\000\017\016\002\000\017\012\002\000\017h\003\000\017d\003\000\017`\003\000\017\\\003\000\017X\003\000\017\016\003\000\017\012\003\000\017h\004\000\017d\004\000\017\016\004\000\017d\005\000\017h\005\000\002\188\001\000\002\184\001\000\002\180\001\000\002\176\001\000\002\172\001\000\002\168\001\000\000\172\001\000\017h\006\000\017\016\005\000\017X\004\000\017\\\004\000\017`\004\000\002\188\001\000\002\184\001\000\002\180\001\000\002\176\001\000\002\172\001\000\002\168\001\000\000\172\001\000\017`\005\000\017\012\004\000\017\004\002\000\016\252\003\000\017\000\001\000\016\028\003\000\017\000\002\000\016\028\004\000\016\028\005\000\016\028\006\000\016\028\007\000\016 \003\000\007\252\001\000\007\216\001\000\016 \004\000\007\252\002\000\007\216\002\000\016 \005\000\016 \006\000\016 \007\000\016 \b\000\016 \t\000\017$\002\000\0160\002\000\016,\002\000\017$\003\000\0160\003\000\016,\003\000\017\000\001\000\016,\004\000\017\000\002\000\016,\005\000\016,\006\000\016,\007\000\016,\b\000\0160\004\000\007\252\001\000\007\216\001\000\0160\005\000\007\252\002\000\007\216\002\000\0160\006\000\0160\007\000\0160\b\000\0160\t\000\0160\n\000\004\132\003\000\004\132\004\000\004d\001\000\004X\003\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\004d\001\000\004<\002\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\002\000\003\212\003\000\003\212\004\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\005\000\003\212\006\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\007\000\003\212\b\000\004d\001\000\004@\002\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\r\232\002\000\r\232\003\000\0148\001\000\0144\001\000\0140\001\000\014,\001\000\014 \002\000\014\004\001\000\014\000\001\000\r\252\001\000\r\244\001\000\r\236\001\000\005\028\002\000\005\028\003\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r|\002\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\0050\004\000\0050\005\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\0058\003\000\0058\004\000\005<\002\000\0054\003\000\005D\002\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\128\001\000\014|\001\000\014x\001\000\014p\001\000\014h\001\000\003\188\003\000\003\188\004\000\003\188\005\000\006\128\001\000\003\188\006\000\003\188\007\000\014d\002\000\014d\003\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\156\002\000\014\128\001\000\014|\001\000\014x\001\000\014p\001\000\014h\001\000\014\180\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\128\001\000\014|\001\000\014x\001\000\014p\001\000\014h\001\000\003\192\003\000\003\192\004\000\003\192\005\000\006\128\001\000\003\192\006\000\003\192\007\000\b@\002\000\b<\002\000\b8\002\000\b4\002\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\b@\003\000\b@\004\000\b@\005\000\b<\003\000\b8\003\000\b<\004\000\b8\004\000\b<\005\000\b8\005\000\b<\006\000\b<\007\000\b<\b\000\bT\002\000\bP\002\000\bP\003\000\014\220\005\000\b`\001\000\014\220\006\000\011\\\002\000\000\188\003\000\005\192\004\000\016\244\002\000\018\244\004\000\016\248\001\000\016\240\001\000\018\244\005\000\016\240\002\000\018\248\004\000\018\248\005\000\018\248\006\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\001\132\002\000\016D\001\000\016@\001\000\011\176\001\000\002\\\001\000\018\220\001\000\005l\001\000\004X\001\000\011\172\001\000\011\128\001\000\011|\001\000\011x\001\000\011t\001\000\011p\001\000\000\248\002\000\000\244\002\000\011\172\002\000\011\128\002\000\011|\002\000\011x\002\000\011t\002\000\011p\002\000\000\248\003\000\000\244\003\000\011x\003\000\000\248\004\000\000\248\005\000\011\172\003\000\011\128\003\000\011|\003\000\011t\003\000\011p\003\000\n4\001\000\000\244\004\000\000\244\005\000\000\240\002\000\000\240\003\000\001\000\002\000\001\000\003\000\000\252\002\000\000\252\003\000\001\004\002\000\001\004\003\000\016\024\001\000\012T\001\000\012@\001\000\0128\001\000\006\168\001\000\005\212\001\000\001\172\001\000\001\168\001\000\001\160\001\000\001\152\001\000\001\144\001\000\001\136\001\000\001\128\001\000\018\232\001\000\r\132\001\000\rx\001\000\rt\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\rT\001\000\rL\001\000\b\016\001\000\005p\001\000\002`\001\000\018\232\002\000\r\132\002\000\rx\002\000\rt\002\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\rT\002\000\rL\002\000\b\016\002\000\005p\002\000\018\220\001\000\005p\003\000\003\204\003\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\003\204\004\000\n\224\002\000\n\224\003\000\n\228\002\000\n\228\003\000\0188\003\000\0188\004\000\r\156\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\001\000\r`\001\000\r\\\001\000\rX\001\000\rP\001\000\rH\001\000\005\b\001\000\005\b\002\000\000\000\001\000\000\004\000\000\005\012\001\000\005\012\002\000\000\004\001\000\000\b\000\000\000\b\001\000\n\232\001\000\n\232\002\000\000\012\000\000\000\012\001\000\n\236\001\000\004d\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\n\236\002\000\000\016\000\000\n\248\001\000\n\240\001\000\n\240\002\000\000\016\001\000\000\020\000\000\016\232\001\000\016\232\002\000\003\132\001\000\003p\001\000\003t\001\000\003\128\001\000\003x\001\000\018\232\001\000\b\016\001\000\003|\001\000\016\232\003\000\0034\001\000\000\020\001\000\003<\001\000\003<\002\000\0038\001\000\0038\002\000\016\236\001\000\000\024\000\000\003@\001\000\018\212\001\000\000\024\001\000\003P\001\000\003H\001\000\003H\002\000\003H\003\000\003L\001\000\003D\001\000\003D\002\000\003D\003\000\018\216\001\000\003L\002\000\003P\002"
    
    let[@inline] lr0_items_data =
      fun i ->
        MenhirLib.PackedIntArray.get32 lr0_items_data i
    
    let lr0_items_entry =
      "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0007\0008\0009\000:\000;\000=\000>\000?\000E\000F\000H\000I\000K\000M\000N\000O\000Q\000R\000U\000W\000Y\000Z\000\\\000]\000_\000`\000a\000d\000f\000g\000i\000j\000k\000l\000m\000o\000p\000q\000s\000u\000v\000w\000y\000z\000{\000|\000}\000~\000\127\000\128\000\131\000\137\000\138\000\142\000\143\000\144\000\145\000\146\000\148\000\152\000\153\000\154\000\155\000\156\000\157\000\158\000\159\000\164\000\165\000\166\000\167\000\169\000\170\000\172\000\173\000\174\000\175\000\176\000\179\000\180\000\182\000\183\000\184\000\185\000\186\000\191\000\192\000\193\000\194\000\196\000\197\000\198\000\199\000\200\000\205\000\206\000\207\000\209\000\210\000\211\000\212\000\213\000\219\000\221\000\223\000\224\000\226\000\227\000\228\000\231\000\232\000\233\000\234\000\240\000\241\000\244\000\247\000\249\000\250\000\251\000\252\000\254\000\255\001\000\001\001\001\003\001\004\001\005\001\006\001\007\001\b\001\t\001\011\001\r\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001%\001(\001+\001,\0010\0011\0012\0013\0014\0015\0016\0017\0018\001;\001<\001=\001>\001@\001A\001B\001C\001E\001F\001G\001I\001K\001L\001N\001O\001Q\001R\001S\001T\001V\001X\001Y\001Z\001[\001\\\001]\001^\001a\001d\001h\001i\001k\001l\001m\001n\001p\001q\001r\001t\001u\001v\001w\001x\001y\001z\001{\001\133\001\134\001\137\001\140\001\141\001\142\001\143\001\144\001\145\001\155\001\156\001\166\001\167\001\168\001\169\001\170\001\181\001\182\001\192\001\193\001\194\001\195\001\196\001\206\001\207\001\209\001\211\001\213\001\225\001\226\001\237\001\238\001\239\001\240\001\241\001\251\001\254\001\255\002\000\002\002\002\004\002\b\002\t\002\n\002\011\002\014\002\017\002\018\002\019\002\024\002\025\002\027\002\028\002\029\002 \002#\002%\002'\002(\002)\002*\002+\002,\002.\0020\0022\0023\0024\0025\0027\0028\002:\002;\002<\002=\002>\002?\002@\002A\002B\002E\002H\002I\002J\002K\002L\002M\002O\002P\002Q\002S\002T\002U\002W\002X\002Y\002Z\002[\002\\\002^\002_\002a\002c\002d\002e\002f\002g\002h\002i\002j\002k\002l\002m\002n\002o\002q\002r\002s\002t\002u\002v\002w\002x\002y\002z\002}\002~\002\127\002\128\002\130\002\131\002\132\002\134\002\136\002\137\002\138\002\139\002\141\002\143\002\144\002\146\002\147\002\148\002\149\002\151\002\152\002\153\002\154\002\155\002\156\002\158\002\160\002\161\002\162\002\163\002\165\002\166\002\167\002\168\002\169\002\171\002\173\002\175\002\176\002\177\002\178\002\179\002\180\002\183\002\184\002\185\002\186\002\187\002\188\002\189\002\190\002\191\002\192\002\193\002\196\002\197\002\198\002\199\002\200\002\201\002\202\002\204\002\205\002\206\002\207\002\208\002\209\002\210\002\211\002\212\002\213\002\220\002\224\002\227\002\228\002\231\002\232\002\233\002\234\002\235\002\237\002\243\002\244\002\246\002\248\002\250\002\251\002\252\002\254\003\000\003\001\003\002\003\004\003\006\003\007\003\b\003\t\003\n\003\011\003\r\003\015\003\016\003\017\003\018\003\019\003\020\003\021\003\022\003\023\003\024\003\025\003\026\003\027\003\028\003\029\003\030\003\031\003 \003!\003\"\003#\003$\003%\003&\003*\003,\003.\003/\0033\0037\0039\003;\003<\003>\003?\003A\003B\003C\003D\003F\003G\003H\003J\003L\003M\003N\003O\003P\003Q\003R\003S\003T\003U\003V\003g\003h\003i\003n\003p\003q\003r\003s\003u\003w\003x\003y\003z\003|\003}\003~\003\127\003\128\003\129\003\130\003\131\003\132\003\133\003\134\003\135\003\136\003\142\003\143\003\144\003\145\003\146\003\147\003\148\003\149\003\150\003\151\003\152\003\153\003\154\003\155\003\156\003\157\003\158\003\159\003\168\003\171\003\173\003\175\003\176\003\177\003\178\003\179\003\181\003\182\003\183\003\184\003\186\003\187\003\188\003\189\003\190\003\192\003\193\003\194\003\195\003\196\003\197\003\198\003\199\003\200\003\201\003\202\003\203\003\204\003\205\003\207\003\208\003\209\003\210\003\211\003\212\003\213\003\214\003\215\003\216\003\225\003\226\003\234\003\241\003\244\003\245\003\246\003\247\003\255\004\000\004\001\004\002\004\003\004\011\004\012\004\r\004\015\004\016\004\017\004\018\004\019\004\020\004\021\004\022\004\023\004\024\004\025\004\026\004\027\004\028\004\031\004\"\004#\004$\004%\004&\004'\004*\004-\004/\0041\0042\0043\0044\0045\0048\004;\004<\004=\004>\004?\004@\004A\004B\004C\004D\004E\004G\004H\004I\004M\004P\004S\004T\004U\004V\004W\004Y\004Z\004]\004_\004a\004b\004e\004h\004j\004l\004n\004o\004p\004q\004u\004w\004x\004{\004}\004\127\004\128\004\130\004\133\004\136\004\139\004\140\004\141\004\142\004\143\004\145\004\146\004\147\004\149\004\150\004\152\004\154\004\155\004\158\004\159\004\161\004\162\004\163\004\164\004\166\004\167\004\168\004\170\004\171\004\172\004\173\004\174\004\175\004\176\004\177\004\178\004\179\004\180\004\181\004\182\004\183\004\184\004\185\004\186\004\187\004\188\004\189\004\191\004\192\004\193\004\194\004\195\004\196\004\197\004\198\004\199\004\200\004\201\004\202\004\203\004\204\004\205\004\207\004\209\004\210\004\211\004\216\004\219\004\221\004\223\004\224\004\227\004\228\004\229\004\231\004\232\004\233\004\235\004\237\004\238\004\239\004\243\004\247\004\250\004\251\004\252\004\253\005\000\005\001\005\002\005\006\005\007\005\t\005\011\005\012\005\r\005\014\005\015\005\016\005\017\005\018\005\021\005\022\005\023\005\024\005\025\005\026\005\"\005)\005+\005,\005-\0050\0051\0054\0055\0056\0057\0059\005;\005<\005?\005@\005A\005B\005D\005E\005H\005J\005L\005M\005N\005O\005P\005R\005S\005T\005U\005W\005X\005Y\005Z\005[\005\\\005]\005^\005`\005a\005c\005d\005e\005f\005g\005i\005j\005k\005l\005m\005n\005o\005p\005s\005u\005v\005w\005x\005z\005{\005|\005}\005~\005\128\005\129\005\131\005\132\005\133\005\134\005\135\005\136\005\139\005\140\005\143\005\144\005\147\005\148\005\149\005\150\005\151\005\153\005\154\005\156\005\157\005\162\005\163\005\165\005\166\005\167\005\169\005\171\005\172\005\173\005\174\005\175\005\177\005\178\005\179\005\180\005\182\005\183\005\184\005\185\005\196\005\201\005\203\005\204\005\205\005\206\005\210\005\212\005\213\005\215\005\216\005\217\005\219\005\220\005\221\005\222\005\223\005\224\005\225\005\227\005\229\005\230\005\231\005\232\005\235\005\237\005\239\005\240\005\241\006\000\006\002\006\014\006\025\006\027\006\029\006\030\006 \006#\006%\006'\006(\006*\006+\006,\006.\006/\0061\0062\0065\0066\0067\0069\006:\006D\006F\006G\006H\006a\006b\006{\006|\006\149\006\150\006\175\006\176\006\201\006\202\006\227\006\228\006\253\006\254\007\023\007\024\0071\0072\007K\007L\007e\007f\007\127\007\128\007\153\007\154\007\179\007\180\007\205\007\206\007\231\007\232\b\001\b\002\b\027\b\028\b5\b7\b8\bQ\bR\bk\bl\b\133\b\134\b\159\b\160\b\185\b\188\b\189\b\190\b\191\b\192\b\217\b\242\b\243\t\012\t\r\t\014\t\026\t%\t'\t)\tB\tD\tF\t_\ta\tb\tc\td\t}\t\127\t\128\t\153\t\155\t\156\t\157\t\159\t\160\t\163\t\164\t\165\t\166\t\168\t\169\t\170\t\171\t\196\t\201\t\205\t\206\t\207\t\208\t\233\t\234\t\235\t\237\t\238\t\239\t\240\t\242\t\243\t\244\t\245\t\246\t\248\t\249\t\250\t\251\t\252\n\000\n\001\n\003\n\004\n\005\n\006\n\007\n\b\n!\n\"\n#\n$\n%\n>\n?\n@\nY\nZ\n\\\n]\nv\nw\nx\nz\n{\n|\n}\n\127\n\128\n\129\n\131\n\133\n\134\n\135\n\137\n\139\n\140\n\141\n\143\n\144\n\145\n\147\n\148\n\149\n\150\n\151\n\152\n\153\n\154\n\155\n\156\n\158\n\160\n\161\n\162\n\163\n\164\n\166\n\167\n\168\n\169\n\173\n\180\n\182\n\184\n\188\n\190\n\192\n\193\n\194\n\195\n\196\n\198\n\200\n\202\n\203\n\204\n\205\n\208\n\209\n\210\n\211\n\212\n\215\n\216\n\217\n\218\n\220\n\221\n\226\n\227\n\229\n\230\n\231\n\233\n\235\n\236\n\237\n\238\n\239\n\240\n\241\n\242\n\243\n\244\n\245\n\247\n\248\011\018\011\020\011\021\011/\0111\0112\0115\0116\0117\0118\0119\011:\011<\011=\011>\011?\011@\011A\011C\011E\011F\011H\011I\011J\011K\011L\011O\011P\011R\011S\011T\011U\011V\011W\011Y\011[\011]\011^\011_\011`\011a\011b\011d\011e\011f\011g\011h\011i\011k\011l\011n\011o\011p\011r\011s\011t\011v\011w\011y\011z\011|\011}\011~\011\127\011\128\011\129\011\131\011\132\011\133\011\134\011\135\011\138\011\140\011\165\011\166\011\167\011\168\011\169\011\170\011\172\011\174\011\175\011\177\011\178\011\179\011\180\011\182\011\183\011\184\011\185\011\186\011\187\011\188\011\193\011\194\011\196\011\197\011\198\011\200\011\202\011\203\011\205\011\206\011\207\011\208\011\210\011\211\011\212\011\214\011\216\011\217\011\243\011\244\011\245\011\247\011\249\011\250\011\252\011\253\012\023\012\025\012\026\012\027\012\028\012\029\012\030\012:\012<\012=\012>\012A\012B\012C\012D\012G\012H\012J\012K\012L\012M\012N\012Q\012R\012S\012]\012^\012_\012`\012a\012c\012d\012e\012f\012g\012i\012k\012l\012m\012n\012o\012r\012u\012v\012x\012\146\012\148\012\149\012\150\012\156\012\162\012\163\012\165\012\167\012\168\012\193\012\196\012\199\012\201\012\203\012\204\012\229\012\230\012\235\012\236\012\237\r\006\r\007\r\b\r\t\r\r\r\017\r\019\r-\r1\r2\r5\r7\r9\r:\rS\rT\rX\rY\rZ\r\\\r^\r_\r`\ra\rb\rc\rd\re\rf\rp\rt\rx\r|\r~\r\152\r\156\r\157\r\158\r\162\r\163\r\164\r\170\r\200\r\201\r\206\r\210\r\214\r\216\r\242\r\246\r\247\r\248\r\252\r\253\r\254\r\255\014\000\014\001\014\002\014\003\014\r\014\014\014'\014(\014)\014*\014+\014,\014-\014.\014/\0141\0142\0143\0144\0145\0147\0148\0149\014<\014=\014>\014?\014@\014A\014[\014]\014^\014w\014}\014\127\014\153\014\155\014\156\014\181\014\183\014\186\014\188\014\213\014\215\014\217\014\218\014\243\015\012\015\014\015\015\015(\015)\015*\015+\015,\015.\015/\0150\0151\0152\0153\0154\0155\0157\0159\015:\015;\015<\015=\015>\015W\015X\015[\015\\\015u\015v\015w\015y\015z\015{\015|\015\149\015\150\015\151\015\152\015\177\015\178\015\203\015\204\015\205\015\206\015\231\015\232\015\243\015\244\016\r\016\014\016'\016(\016A\016B\016C\016D\016F\016I\016K\016L\016N\016P\016Q\016R\016k\016l\016\133\016\139\016\140\016\141\016\142\016\167\016\168\016\193\016\194\016\195\016\196\016\198\016\199\016\224\016\226\016\227\016\238\016\239\016\241\016\243\016\245\016\247\017\003\017\004\017\029\017\030\017 \017\"\017%\017)\017*\017C\017D\017]\017_\017`\017y\017z\017|\017}\017~\017\127\017\128\017\129\017\131\017\132\017\157\017\158\017\183\017\184\017\195\017\197\017\199\017\201\017\203\017\205\017\206\017\207\017\209\017\210\017\211\017\212\017\214\017\216\017\217\017\242\017\243\017\244\017\245\018\014\018\016\018\017\018\019\018\021\018\023\018\025\018\027\018\029\018\030\018\031\018 \018!\018\"\018$\018%\018&\018'\018(\018)\018*\018+\018,\018-\018.\018/\0180\0182\0184\0185\0186\0187\0188\018:\018;\018<\018=\018>\018?\018@\018A\018B\018C\018D\018E\018F\018G\018H\018I\018J\018K\018L\018M\018N\018O\018P\018Q\018R\018U\018X\018Y\018Z\018[\018\\\018^\018_\018`\018a\018b\018c\018d\018e\018f\018g\018h\018i\018j\018k\018l\018m\018n\018o\018p\018q\018r\018t\018u\018|\018}\018~\018\127\018\128\018\129\018\130\018\131\018\132\018\133\018\134\018\135\018\136\018\137\018\138\018\139\018\140\018\141\018\143\018\145\018\146\018\147\018\148\018\149\018\150\018\151\018\152\018\154\018\155\018\156\018\157\018\158\018\159\018\160\018\161\018\162\018\163\018\164\018\165\018\166\018\167\018\168\018\169\018\170\018\171\018\172\018\173\018\174\018\175\018\176\018\177\018\178\018\179\018\180\018\181\018\182\018\183\018\184\018\185\018\186\018\187\018\188\018\189\018\190\018\191\018\192\018\193\018\195\018\196\018\197\018\198\018\199\018\200\018\202\018\203\018\205\018\206\018\207\018\208\018\210\018\211\018\212\018\213\018\214\018\215\018\216\018\217\018\218\018\219\018\220\018\221\018\222\018\223\018\224\018\230\018\232\018\233\018\236\018\239\018\241\018\242\018\243\018\244\019\012\019\019\019\023\019\026\019\029\019\030\019\031\019 \019!\019\"\019%\019(\019)\019*\019+\019,\019-\0190\0193\0195\0197\0198\0199\019:\019;\019>\019A\019B\019C\019D\019E\019F\019G\019H\019I\019K\019O\019R\019U\019V\019X\019Y\019[\019\\\019]\019^\019_\019`\019b\019d\019f\019h\019j\019l\019m\019n\019o\019p\019q\019s\019t\019u\019v\019w\019x\019z\019{\019}\019~\019\127\019\128\019\129\019\135\019\137\019\138\019\141\019\142\019\143\019\144\019\145\019\146\019\171\019\172\019\174\019\184\019\194\019\203\019\204\019\205\019\206\019\207\019\208\019\209\019\210\019\212\019\213\019\215\019\216\019\227\019\228\019\229\019\230\019\231\019\232\019\233\019\234\019\238\019\242\019\243\019\244\019\246\019\247\019\248\019\249\019\250\019\251\019\253\019\254\019\255\020\000\020\002\020\003\020\004\020\005\020\006\020\b\020\t\020\n\020\011\020\012\020\r\020\014\020\015\020\016\020\017\020\018\020\019\020\020\020\021\020\022\020\024\020\025\020\026\020\027\020$\020%\020&\020*\020-\020/\0201\0204\0206\0207\0208\020Q\020S\020U\020V\020o\020p\020q\020\138\020\139\020\140\020\151\020\152\020\153\020\154\020\155\020\156\020\157\020\158\020\159\020\163\020\164\020\165\020\166\020\167\020\170\020\172\020\173\020\174\020\175\020\176\020\177\020\178\020\179\020\180\020\181\020\182\020\184\020\186\020\193\020\194\020\195\020\196\020\197\020\198\020\200\020\201\020\203\020\205\020\206\020\207\020\208\020\209\020\210\020\211\020\212\020\215\020\216\020\217\020\218\020\220\020\221\020\222\020\223\020\224\020\225\020\226\020\227\020\228\020\229\020\230\020\233\020\236\020\238\020\239\020\240\020\242\020\243\020\244\020\245\020\251\021\000\021\005\021\t\021\n\021\011\021\r\021\014\021\015\021\017\021\018\021\019\021\020\021\022\021\023\021\024\021\025\021\026\021\028\021\029\021\030\021\031\021 \021!\021\"\021#\021$\021%\021&\021'\021(\021)\021*\021C\021D\021O\021Q\021j\021k\021\132\021\133\021\158\021\159\021\184\021\185\021\210\021\211\021\236\021\237\022\006\022\007\022 \022!\022:\022;\022T\022U\022n\022o\022\136\022\137\022\162\022\163\022\188\022\189\022\214\022\215\022\240\022\241\023\n\023\011\023$\023%\023>\023?\023X\023Z\023[\023t\023\141\023\142\023\167\023\168\023\193\023\194\023\219\023\220\023\245\023\246\023\248\023\249\023\250\023\251\023\252\024\011\024\r\024'\024)\024*\024C\024I\024K\024e\024g\024h\024\129\024\131\024\134\024\136\024\138\024\139\024\164\024\166\024\167\024\192\024\193\024\194\024\195\024\196\024\197\024\198\024\199\024\200\024\201\024\202\024\203\024\204\024\205\024\206\024\211\024\212\024\234\024\240\024\243\024\245\024\247\024\248\024\249\024\253\024\255\025\001\025\002\025\006\025\n\025\012\025\014\025\015\025\017\025\018\025\020\025\021\025\022\025\023\025\025\025\026\025\027\025\029\025\031\025 \025!\025\"\025#\025$\025%\025&\025'\025(\025)\025,\025/\0250\0251\0252\0253\0254\0257\025:\025<\025>\025?\025@\025A\025D\025G\025H\025I\025J\025K\025L\025M\025N\025O\025Q\025T\025V\025X\025Z\025[\025]\025^\025`\025b\025d\025f\025h\025j\025k\025l\025m\025o\025p\025q\025\138\025\139\025\140\025\141\025\142\025\143\025\144\025\145\025\146\025\147\025\148\025\149\025\150\025\151\025\152\025\153\025\154\025\179\025\180\025\181\025\182\025\183\025\184\025\185\025\186\025\189\025\191\025\192\025\217\025\218\025\219\025\220\025\221\025\222\025\247\025\248\025\249\025\251\025\252\025\253\025\254\026\000\026\001\026\002\026\003\026\004\026\006\026\007\026\b\026\t\026\n\026\011\026\r\026\014\026'\026(\026)\026+\026,\026-\026.\026/\026H\026I\026T\026U\026V\026W\026X\026b\026c\026|\026}\026~\026\129\026\133\026\134\026\159\026\160\026\161\026\163\026\164\026\165\026\166\026\168\026\169\026\170\026\173\026\174\026\199\026\200\026\201\026\203\026\204\026\205\026\206\026\207\026\219\026\230\026\232\026\233\026\234\026\235\026\236\026\237\026\238\026\239\026\240\026\242\026\243\026\244\026\245\026\246\026\248\026\249\026\250\026\253\026\254\026\255\027\000\027\001\027\002\027\003\027\004\027\005\027\006\027\007\027\b\027\011\027\012\027\r\027\014\027\015\027\017\027\018\027\019\027\030\0277\0278\027:\027;\027<\027=\027>\027?\027@\027A\027B\027D\027E\027F\027G\027H\027K\027L\027N\027O\027P\027Q\027[\027\\\027]\027_\027`\027a\027b\027c\027d\027e\027f\027g\027h\027i\027k\027m\027n\027o\027p\027q\027s\027t\027u\027w\027y\027z\027{\027}\027\127\027\129\027\130\027\131\027\132\027\133\027\134\027\135\027\139\027\144\027\145\027\147\027\154\027\155\027\156\027\165\027\166\027\167\027\168\027\169\027\171\027\172\027\173\027\174\027\175\027\176\027\177\027\178\027\179\027\188\027\189\027\197\027\204\027\207\027\208\027\216\027\217\027\218\027\219\027\220\027\228\027\229\027\230\027\231\027\232\027\234\027\236\027\237\027\238\027\239\027\242\027\245\027\246\027\247\027\248\027\249\027\250\027\253\028\000\028\002\028\004\028\005\028\006\028\007\028\n\028\r\028\014\028\015\028\016\028\017\028\018\028\019\028\020\028-\028F\028G\028H\028I\028b\028c\028|\028}\028\150\028\151\028\152\028\162\028\163\028\164\028\175\028\186\028\187\028\198\028\199\028\200\028\201\028\202\028\212\028\213\028\214\028\216\028\217\028\218\028\219\028\229\028\239\028\240\028\241\028\243\028\244\029\016\029\017\029\018\029\019\029\021\029\023\029\025\029\026\029\027\029\028\029\029\029\030\029\031\029!\029\"\029#\029$\029%\029&\029)\029+\029,\029-\029F\029G\029K\029N\029V\029^\029`\029a\029g\029h\029i\029j\029k\029l\029m\029n\029o\029p\029q\029~\029\139\029\151\029\153\029\154\029\165\029\166\029\167\029\168\029\169\029\170\029\181\029\182\029\183\029\184\029\185\029\186\029\187\029\188\029\189\029\190\029\191\029\192\029\193\029\194\029\219\029\220\029\221\029\223\029\224\029\225\029\226\029\227\029\228\029\229\029\230\029\231\029\232\029\233\029\236\029\237\029\238\029\239\029\240\029\241\029\242\029\243\029\244\029\245\029\246\029\247\029\248\029\250\029\251\029\252\029\254\029\255\030\000\030\001\030\002\030\003"
    
    let[@inline] lr0_items_entry =
      fun i ->
        MenhirLib.PackedIntArray.get16 lr0_items_entry i
    
    let[@inline] lr0_items =
      fun i ->
        MenhirLib.LinearizedArray.read_row_via lr0_items_data lr0_items_entry i
    
    let nullable =
      "\000\128PD\129\000\000\002\000\b\128\031\255\255\000p\000\192\002\000\000\000\000\127\239\255\128\128@@\001\128\000\128\000\224\128\128\024\000"
    
    let[@inline] nullable =
      fun i ->
        MenhirLib.PackedIntArray.get1 nullable i
    
    let first =
      "!\226\130\006\019\162^\205\239\224(?\136\b\006\028\004<P@\194tK\217\189\252\005\007\241\001\000\195\128\012\130\b\b\004\0008\001;\128\0004\000 \b \016\177@\001\t\129\015&\183\240\004\030@\004\001\014\0000\128 0\000\000`\151\232\000\000\b\000\128\000\000\001\000\000\b\000@\129\001\b\000@\006\016\016\b\000\bx\160\001\132\232\151\179{\248\n\015\226\002\001\135\000\004\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016@\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\b\000\000\000\000\000\000\000\000@\000\128\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\000\000\000\000\000C\197\004\012'D\189\155\223\192P\127\016\016\0128\bx\160\129\132\232\151\179{\248\n\015\226\002\001\135\001\011\020\000\016\152\016\242k_\000A\228\000\000\016\224\003\b\002\003\000\000\006\tz\128\000\000\128\000\000\000\000\000\000\000\000 \001\000\000\000\000\000\000\000\000\000\000\b\000\000\004\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\128\000\000\000\000\000\000\000\000 \000\000\016\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\004\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\001@\004\016\004\128\000\000\000\000\016\000\024\000\000\016\000 @\128\000\000\000\000\000\000\002\004\128\000\000\000\000\000\000\000\000\000\000\000\016\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000 \000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\000\000\000 \n\000\000\128 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\016\241A\003\t\209/f\247\240\020\031\196\004\003\014\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\016\000\016\bx\160\001\132\232\151\179{\248\n\015\224\002\001\135\001\015\020\0000\157\018\246o\127\001A\252\000@0\224\000\000\128\000\000\000\000\000\004\000\000\000\000\b\000\000\000\000\016\000\000\000\000\000\000\128\000\000\000\001\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\b\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\001\000\000\000@\002\000\000\003\239\184\129\001\003\246\020\000\002\193\199\1848\176(4\001\000\000\000\000\000\000\000\n\128\000\000\000\000\000\000\000d\016@@ \001\128\tT\000\001\128\000\000A\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000\002\000\005@\000\002\000\000\000\000\0002\b  \016\000\224\004\170\000\000\192\000\000 \128\002\000\000\004\000\000\012\000\129\000\000\000\000\000\000\000\000H\000\000\000\000\001\000\000\128\000\001\000\000\000\002\000\t\004\000\016\128\0162k]\000\000`\000\000\016@\001 \128\002\016\002\006Mk\160\000\012\000\000\002\b\000\000\000\000\000\000\000\128\0040\000\000\000\000\000\000\000\004\130\000\b@\b\0255\174\128\0000\000\000\b \000\000@\000\000\128\004\000\000\016\000\004\000\000\001\000\000\b\000\000@\002\004\b\b@\002\0000\000\128@\000\001\000\000\b\000@\129\001\b\000@\006\000\016\b\000\000 \000\001\000\b\016 !\000\b\000\192\002\001\000\000\004\000\000\000\000\000\000\000 \000\000\000\000@\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\b\000\000\004,P\000BdK\249\173\252\001\007\176\001\000C\128\133\138\000\bL\137\1275\191\128 \246\000 \bp\016\177@\001\t\209/\230\183\240\004\030\192\004\001\014\002\022(\000!:%\252\214\254\000\131\216\000\128!\192\000\000\000\000\000\000\b\018\000\000\000\000\000\000\000\000\000\192\000\128\192\000\001\130_\160\000\000\000\002\000\n\000\024\000\016\024\000\0000K\244\000\000\000\000@\000@\000\000\000\000\000\000\130\000\004\000\000\000\000\b\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\016\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\006\016\004\006\000\000\140\018\253\000\000\001\000\016\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\024@\016\024\000\0000K\244\000\000\004\000@\000\000!\226\128\006\147\162^\205\239\224(?\128\b\014\028\000d\016@@ \001\192\t\220\000\001\160\001\000A\000\012\130\b\b\004\0018\001;\128\0004\000 \b \000\144\000\000\000\000\002\000\005@\000\002\000\000\000\000\0002\b  \016\000\224\004\238\000\000\208\b\128 \128\006A\004\004\002\000\028\000\157\192\000\026\000\016\004\016\000\200 \128\128@\003\128\019\184\000\003@\002\000\130\001\011\020\000\016\152\016\242k\127\000A\228\000@\016\224\003\b\002\003\000\000\006\t~\128\000\000\128\b\000\000\000\000\000\000\000\000\000\128\000\016\000\000\000\000\000\000\000\004\000\000\b\000\000\024\001\018\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000@\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\0000\000\015\224\012\129\128\003\225\128\000\000\016(\176\000\000\000\000\002\000\000\000@\000\000\000\000\128\000\000\000\000\000\000\000@\000\000\b\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\016\000 \000\000\000\004@\000\000\000\000\000\000\000\000\002\000\004\000\000\000\000\136\000\000\000\128\000\016\140\000\000\000\016\131\000\000\000\001@\000\000\016\000\002\017\128\000\000\002\016`\000\000\000(\000\b\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\001\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000 \000\000\000\000@\001\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\001\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\018\000\000\000\000\000\000\000\000\000\192\000\128\192\000\001\130^\160\000\000\000\000\000\000\000\024\000\016\024\000\0000K\244\000\000\000\000@\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000@\000\000\128\000\001\128\017 \000\000\000\002\000\000\000\024\000\000\016\000\0000\002$\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000\000\000\000\004\000\000\b\000\000\016\001\018\000\000\130\000 \000\000\000\000\000\000\000\000\002\000\000@\000\000\000\000\004\000\000P\000\000 \000\000@\004H\000\002\b\000\128\000\000\000\000\000\000\000\000\b\000\001\000\000\000@\000\016\000\001@\000\000\128\000\001\000\017 \000\b \002 \000\000\000\000\000\000\000\000 \000\004\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\128\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\128\000\000\140\000\000\000\016\129\000\000\000\001@\000\000\016\000\000\017\128\000\000\002\016`\000\000\000(\000\000\017\181@\001\t\129\015&\183\240\004\030@\020\001\014\0000\128 0\000\004`\151\232\000\000\b\002\128\000\000\004\000\000\002\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000@@\002\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000 \000\000\000\000@\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016@\000\128\000\000\000\001\000\000\000\012 \b\012\000\001\024%\250\000\000\002\000 \000\000\001\144A\001\000\128'\000'p\000\006\128\004\001\004\0002\b  \016\000\224\004\238\000\000\208\b\128 \128\002\000\000\000\000\000\004\000\000\000\000\000\001\000\000\000\bX\160\000\132\192\135\147[\248\002\015 \"\000\135\000\000\000\000\000\000\000\016\000 \000\000\000\004@\000\000\003\000\000\002\000\000\006\000D\128\000\000\000\b\000\000\000\160\000\000@\000\000\128\b\144\000\004\016\001\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\212A\001\000\128'\000'p\000\006\128\004\001\004\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000B\197\000\004&\004<\154\223\192\016y\000\016\0048\bX\160\000\132\192\135\147[\248\002\015 \002\000\135\000\024@\016\024\000\0000K\244\000\000\004\000@\000\000\000\128\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129 \000\000\000\000\000\000\000\000\012\130\b\b\004\0008\001;\128\0004\002 \b \001\128\001\001\128\000\003\004\191@\000\000\000\004\000\020\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000 \000\000\000\004@\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\b\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\t\004\000\016\128\0162k]\000\000`\000\000\016@\000\000\000\000\000\000\000\000\004\000\000\000\000\b\000 \000\000\000\000\000\000\000\000\000\128\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\002\000\000\000\000\004\000\000@\000\000\000\000\000\000\000\000@\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\b\000\000\000\000\016\000\001\000\000\000\000\000\000\000\000\001\000\000\000\000\002\000\000 \000\000\000\000\000\000\000\000 \000\000\000\000@\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\b\000\000\128d\016@@ \001\192\t\220\000\001\160\001\000A\000\012\130\b\b\004\0008\001;\128\0004\000 \b \000\000\000\000\000\000\000@\002\000\000\000\000\004\000\000\0002\b  \016\000\224\004\238\000\000\208\000\128 \128\000\000\000\000\000\000\001\000\b\000\000\000\000\016\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\000u\016@@ \t\192\t\220\000\001\160\001\000A\000\133\138\000\bL\by5\191\128 \242\000!(p\017\181@\001\t\129\015&\183\240\004\030@\004\001\014\000\000\000\000\000\000\000@\002\024\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000@\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000I\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\0014\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\b\000\000\000\000\000\000\000\000\001\000\000\b\000@\129\001\b\000@\006\016\016\b\000\bx\160\001\132\232\151\179{\248\n\015\226\002\001\135\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\001\000\000\128\000\001\000\000\004\000\000\t\000\000\000\000\000 \000\016\000\000 \000\000\128\000\000\000\000\002\000\000\000\000@\000\000\000\000\000\000\000\004,P\000B`C\201\173\252\001\007\144\001\000C\128\133\138\000\bN\137\1275\191\128 \246\000 \bp\016\177@\001\t\129\015&\183\240\004\030@\004\001\014\002\022(\000!0!\228\214\254\000\131\200\b\128!\192B\197\000\004&\004<\154\223\192\016y\000\016\0048\000\128\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001 \128\000\000\000\006\000\000 \000\004\000\000\000\000\000@\000\000  \001\000\000\000\000\000\000\000\000\000\000\135\138\b\024N\137{7\191\128\160\254  \024p\016\241A\003\t\209/f\247\240\020\031\196\004\003\014\000\000\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\000\000\000\001\000\000\000\000\000\006\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\000\128\000@\000\000\128\000\002\000\000\004\128\000\000\000\000\016\000\024\000\000\016\000 @\128\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\194\000\128\192\000\001\130_\160\000\000 \002\000\000\000\024@\016\024\000\0000K\244\000\000\004\000@\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\n\000 \128$\000\000\000\000\000\128\000\192\000\000\128\001\002\004\000\004\128\000\000\000\000\016\000\024\000\000\016\000 @\000\001\132\001\001\128\000\003\004\191@\000\000@\004\000\000\000\000\000\000\000\000\000@\000\b\000\000\000\000\000\000\000\006\016\004\006\000\000\012\018\253\000\000\001\000\016\000\000\000\194\000\128\192\000\001\130_\160\000\000 \002\000\000\000\t\000\000\000\000\000 \000\016\000\000 \000\000\000\000\000\000\128\000\000\000\000\000\000 \000\b\000\000\002\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \016\000\004\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\006\016\004\006\000\000\012\018\253\000\000\001\000\016\000\000\000@\000\000\000\000\001\128\000 \000\000\000\000\000\000\000 \000\000#\000\000\000\004 @\000\000\000P\000\000\004\000\000\132`\000\000\000\132\b\000\000\000\n\000\000\000\128\000\016\140\004\000\016\016\129\000\000\000\001@\000@\016\000\002\017\128\000\000\002\016 \000\000\000(\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\000\128\017 \000\000\000\002\000\000\000 \000\000#\000\000\000\004 \192\000\000\000P\000\000\005\000\000\134` \006\128\196\152\000 \128\n\004\002\000 \000\000@\000\000\192\b\144\000\004\016\001\000\128\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \016\000\004\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000@\000\016\000\000@\000\000\128\000\001\128\017 \000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@`\000@`\000\000@\015P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\002\000\000\000\000\004\000\016\000\018\000\000\000\000\000@\000`\000\000@\000\129\002\000\002@\000\000\000\000\b\000\012\000\000\b\000\016 @\000\000\000\000\000\000\000\000\001\000\000\000\000\002\000\000\003\239\184\129\001\003\246\020\000\002\193\199\1848\176(4\003\b\002\003\000\000\002\000z\128\000\000\128\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\012 \b\012\000\001\024%\250\000\000\002\000 \000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\004\000\000@\000\000\000\000\000\000\000\000@\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\b\000\000\000\000\016\000\001\000\000\000\000\000\000\000\000\001\000\000\000\000\002\000\000 \000\000\000\000\000\000\000\000 \000\000\000\000@\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\b\000\000\128\000\000\000\000\000\000\000\000\128\000\000\000\001\000\000\016\004\000\000\000\000\000\b\000\000\000\000\000\002\000\000\000\000"
    
    let[@inline] first =
      fun i ->
        MenhirLib.PackedIntArray.get1 first i
    
    let[@inline] first =
      fun i j ->
        first (131 * i + j)
    
  end) (ET) (TI)
  
end

let use_file =
  fun lexer lexbuf : ((Ppxlib.toplevel_phrase list)) ->
    Obj.magic (MenhirInterpreter.entry `Legacy 2636 lexer lexbuf)

and toplevel_phrase =
  fun lexer lexbuf : ((Ppxlib.toplevel_phrase)) ->
    Obj.magic (MenhirInterpreter.entry `Legacy 2619 lexer lexbuf)

and parse_pattern =
  fun lexer lexbuf : ((Ppxlib.pattern)) ->
    Obj.magic (MenhirInterpreter.entry `Legacy 2615 lexer lexbuf)

and parse_expression =
  fun lexer lexbuf : ((Ppxlib.expression)) ->
    Obj.magic (MenhirInterpreter.entry `Legacy 2611 lexer lexbuf)

and parse_core_type =
  fun lexer lexbuf : ((Ppxlib.core_type)) ->
    Obj.magic (MenhirInterpreter.entry `Legacy 2607 lexer lexbuf)

and interface =
  fun lexer lexbuf : ((Ppxlib.Parsetree.signature)) ->
    Obj.magic (MenhirInterpreter.entry `Legacy 2603 lexer lexbuf)

and implementation =
  fun lexer lexbuf : ((Ppxlib.Parsetree.structure)) ->
    Obj.magic (MenhirInterpreter.entry `Legacy 0 lexer lexbuf)

module Incremental = struct
  
  let use_file =
    fun initial_position : ((Ppxlib.toplevel_phrase list) MenhirInterpreter.checkpoint) ->
      Obj.magic (MenhirInterpreter.start 2636 initial_position)
  
  and toplevel_phrase =
    fun initial_position : ((Ppxlib.toplevel_phrase) MenhirInterpreter.checkpoint) ->
      Obj.magic (MenhirInterpreter.start 2619 initial_position)
  
  and parse_pattern =
    fun initial_position : ((Ppxlib.pattern) MenhirInterpreter.checkpoint) ->
      Obj.magic (MenhirInterpreter.start 2615 initial_position)
  
  and parse_expression =
    fun initial_position : ((Ppxlib.expression) MenhirInterpreter.checkpoint) ->
      Obj.magic (MenhirInterpreter.start 2611 initial_position)
  
  and parse_core_type =
    fun initial_position : ((Ppxlib.core_type) MenhirInterpreter.checkpoint) ->
      Obj.magic (MenhirInterpreter.start 2607 initial_position)
  
  and interface =
    fun initial_position : ((Ppxlib.Parsetree.signature) MenhirInterpreter.checkpoint) ->
      Obj.magic (MenhirInterpreter.start 2603 initial_position)
  
  and implementation =
    fun initial_position : ((Ppxlib.Parsetree.structure) MenhirInterpreter.checkpoint) ->
      Obj.magic (MenhirInterpreter.start 0 initial_position)
  
end

# 5410 "src/reason-parser/reason_parser.mly"
  

# 73595 "src/reason-parser/reason_parser.ml"
