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

let () =
  MenhirLib.StaticVersion.require_20210419

module MenhirBasics = struct
  
  exception Error = Parsing.Parse_error
  
  type token = 
    | WITH
    | WHILE
    | WHEN
    | VIRTUAL
    | VAL
    | UNDERSCORE
    | UIDENT of (
# 829 "parsing/parser.mly"
       (string)
# 22 "parsing/parser.ml"
  )
    | TYPE
    | TRY
    | TRUE
    | TO
    | TILDE
    | THEN
    | STRUCT
    | STRING of (
# 816 "parsing/parser.mly"
       (string * Location.t * string option)
# 34 "parsing/parser.ml"
  )
    | STAR
    | SIG
    | SEMISEMI
    | SEMI
    | RPAREN
    | REC
    | RBRACKET
    | RBRACE
    | QUOTED_STRING_ITEM of (
# 820 "parsing/parser.mly"
       (string * Location.t * string * Location.t * string option)
# 47 "parsing/parser.ml"
  )
    | QUOTED_STRING_EXPR of (
# 818 "parsing/parser.mly"
       (string * Location.t * string * Location.t * string option)
# 52 "parsing/parser.ml"
  )
    | QUOTE
    | QUESTION
    | PRIVATE
    | PREFIXOP of (
# 802 "parsing/parser.mly"
       (string)
# 60 "parsing/parser.ml"
  )
    | PLUSEQ
    | PLUSDOT
    | PLUS
    | PERCENT
    | OR
    | OPTLABEL of (
# 795 "parsing/parser.mly"
       (string)
# 70 "parsing/parser.ml"
  )
    | OPEN
    | OF
    | OBJECT
    | NONREC
    | NEW
    | MUTABLE
    | MODULE
    | MINUSGREATER
    | MINUSDOT
    | MINUS
    | METHOD
    | MATCH
    | LPAREN
    | LIDENT of (
# 778 "parsing/parser.mly"
       (string)
# 88 "parsing/parser.ml"
  )
    | LETOP of (
# 760 "parsing/parser.mly"
       (string)
# 93 "parsing/parser.ml"
  )
    | LET
    | LESSMINUS
    | LESS
    | LBRACKETPERCENTPERCENT
    | LBRACKETPERCENT
    | LBRACKETLESS
    | LBRACKETGREATER
    | LBRACKETBAR
    | LBRACKETATATAT
    | LBRACKETATAT
    | LBRACKETAT
    | LBRACKET
    | LBRACELESS
    | LBRACE
    | LAZY
    | LABEL of (
# 765 "parsing/parser.mly"
       (string)
# 113 "parsing/parser.ml"
  )
    | INT of (
# 764 "parsing/parser.mly"
       (string * char option)
# 118 "parsing/parser.ml"
  )
    | INITIALIZER
    | INHERIT
    | INFIXOP4 of (
# 758 "parsing/parser.mly"
       (string)
# 125 "parsing/parser.ml"
  )
    | INFIXOP3 of (
# 757 "parsing/parser.mly"
       (string)
# 130 "parsing/parser.ml"
  )
    | INFIXOP2 of (
# 756 "parsing/parser.mly"
       (string)
# 135 "parsing/parser.ml"
  )
    | INFIXOP1 of (
# 755 "parsing/parser.mly"
       (string)
# 140 "parsing/parser.ml"
  )
    | INFIXOP0 of (
# 754 "parsing/parser.mly"
       (string)
# 145 "parsing/parser.ml"
  )
    | INCLUDE
    | IN
    | IF
    | HASHOP of (
# 813 "parsing/parser.mly"
       (string)
# 153 "parsing/parser.ml"
  )
    | HASH
    | GREATERRBRACKET
    | GREATERRBRACE
    | GREATER
    | FUNCTOR
    | FUNCTION
    | FUN
    | FOR
    | FLOAT of (
# 743 "parsing/parser.mly"
       (string * char option)
# 166 "parsing/parser.ml"
  )
    | FALSE
    | EXTERNAL
    | EXCEPTION
    | EQUAL
    | EOL
    | EOF
    | END
    | ELSE
    | DOWNTO
    | DOTOP of (
# 759 "parsing/parser.mly"
       (string)
# 180 "parsing/parser.ml"
  )
    | DOTDOT
    | DOT
    | DONE
    | DOCSTRING of (
# 837 "parsing/parser.mly"
       (Docstrings.docstring)
# 188 "parsing/parser.ml"
  )
    | DO
    | CONSTRAINT
    | COMMENT of (
# 836 "parsing/parser.mly"
       (string * Location.t)
# 195 "parsing/parser.ml"
  )
    | COMMA
    | COLONGREATER
    | COLONEQUAL
    | COLONCOLON
    | COLON
    | CLASS
    | CHAR of (
# 723 "parsing/parser.mly"
       (char)
# 206 "parsing/parser.ml"
  )
    | BEGIN
    | BARRBRACKET
    | BARBAR
    | BAR
    | BANG
    | BACKQUOTE
    | ASSERT
    | AS
    | ANDOP of (
# 761 "parsing/parser.mly"
       (string)
# 219 "parsing/parser.ml"
  )
    | AND
    | AMPERSAND
    | AMPERAMPER
  
end

include MenhirBasics

let _eRR =
  MenhirBasics.Error

# 25 "parsing/parser.mly"
  

[@@@ocaml.warning "-60"] module Str = Ast_helper.Str (* For ocamldep *)
[@@@ocaml.warning "+60"]

open Asttypes
open Longident
open Parsetree
open Ast_helper
open Docstrings
open Docstrings.WithMenhir

let mkloc = Location.mkloc
let mknoloc = Location.mknoloc

let make_loc (startpos, endpos) = {
  Location.loc_start = startpos;
  Location.loc_end = endpos;
  Location.loc_ghost = false;
}

let ghost_loc (startpos, endpos) = {
  Location.loc_start = startpos;
  Location.loc_end = endpos;
  Location.loc_ghost = true;
}

let mktyp ~loc ?attrs d = Typ.mk ~loc:(make_loc loc) ?attrs d
let mkpat ~loc d = Pat.mk ~loc:(make_loc loc) d
let mkexp ~loc d = Exp.mk ~loc:(make_loc loc) d
let mkmty ~loc ?attrs d = Mty.mk ~loc:(make_loc loc) ?attrs d
let mksig ~loc d = Sig.mk ~loc:(make_loc loc) d
let mkmod ~loc ?attrs d = Mod.mk ~loc:(make_loc loc) ?attrs d
let mkstr ~loc d = Str.mk ~loc:(make_loc loc) d
let mkclass ~loc ?attrs d = Cl.mk ~loc:(make_loc loc) ?attrs d
let mkcty ~loc ?attrs d = Cty.mk ~loc:(make_loc loc) ?attrs d

let pstr_typext (te, ext) =
  (Pstr_typext te, ext)
let pstr_primitive (vd, ext) =
  (Pstr_primitive vd, ext)
let pstr_type ((nr, ext), tys) =
  (Pstr_type (nr, tys), ext)
let pstr_exception (te, ext) =
  (Pstr_exception te, ext)
let pstr_include (body, ext) =
  (Pstr_include body, ext)
let pstr_recmodule (ext, bindings) =
  (Pstr_recmodule bindings, ext)

let psig_typext (te, ext) =
  (Psig_typext te, ext)
let psig_value (vd, ext) =
  (Psig_value vd, ext)
let psig_type ((nr, ext), tys) =
  (Psig_type (nr, tys), ext)
let psig_typesubst ((nr, ext), tys) =
  assert (nr = Recursive); (* see [no_nonrec_flag] *)
  (Psig_typesubst tys, ext)
let psig_exception (te, ext) =
  (Psig_exception te, ext)
let psig_include (body, ext) =
  (Psig_include body, ext)

let mkctf ~loc ?attrs ?docs d =
  Ctf.mk ~loc:(make_loc loc) ?attrs ?docs d
let mkcf ~loc ?attrs ?docs d =
  Cf.mk ~loc:(make_loc loc) ?attrs ?docs d

let mkrhs rhs loc = mkloc rhs (make_loc loc)
let ghrhs rhs loc = mkloc rhs (ghost_loc loc)

let push_loc x acc =
  if x.Location.loc_ghost
  then acc
  else x :: acc

let reloc_pat ~loc x =
  { x with ppat_loc = make_loc loc;
           ppat_loc_stack = push_loc x.ppat_loc x.ppat_loc_stack }
let reloc_exp ~loc x =
  { x with pexp_loc = make_loc loc;
           pexp_loc_stack = push_loc x.pexp_loc x.pexp_loc_stack }
let reloc_typ ~loc x =
  { x with ptyp_loc = make_loc loc;
           ptyp_loc_stack = push_loc x.ptyp_loc x.ptyp_loc_stack }

let mkexpvar ~loc (name : string) =
  mkexp ~loc (Pexp_ident(mkrhs (Lident name) loc))

let mkoperator =
  mkexpvar

let mkpatvar ~loc name =
  mkpat ~loc (Ppat_var (mkrhs name 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.
*)
let ghexp ~loc d = Exp.mk ~loc:(ghost_loc loc) d
let ghpat ~loc d = Pat.mk ~loc:(ghost_loc loc) d
let ghtyp ~loc d = Typ.mk ~loc:(ghost_loc loc) d
let ghloc ~loc d = { txt = d; loc = ghost_loc loc }
let ghstr ~loc d = Str.mk ~loc:(ghost_loc loc) d
let ghsig ~loc d = Sig.mk ~loc:(ghost_loc loc) d

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

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

let mkuminus ~oploc name arg =
  match name, arg.pexp_desc with
  | "-", Pexp_constant(Pconst_integer (n,m)) ->
      Pexp_constant(Pconst_integer(neg_string n,m))
  | ("-" | "-."), Pexp_constant(Pconst_float (f, m)) ->
      Pexp_constant(Pconst_float(neg_string f, m))
  | _ ->
      Pexp_apply(mkoperator ~loc:oploc ("~" ^ name), [Nolabel, arg])

let mkuplus ~oploc name arg =
  let desc = arg.pexp_desc in
  match name, desc with
  | "+", Pexp_constant(Pconst_integer _)
  | ("+" | "+."), Pexp_constant(Pconst_float _) -> desc
  | _ ->
      Pexp_apply(mkoperator ~loc:oploc ("~" ^ name), [Nolabel, arg])

let mk_attr ~loc name payload =
  Builtin_attributes.(register_attr Parser name);
  Attr.mk ~loc name payload

(* TODO define an abstraction boundary between locations-as-pairs
   and locations-as-Location.t; it should be clear when we move from
   one world to the other *)

let mkexp_cons_desc consloc args =
  Pexp_construct(mkrhs (Lident "::") consloc, Some args)
let mkexp_cons ~loc consloc args =
  mkexp ~loc (mkexp_cons_desc consloc args)

let mkpat_cons_desc consloc args =
  Ppat_construct(mkrhs (Lident "::") consloc, Some ([], args))
let mkpat_cons ~loc consloc args =
  mkpat ~loc (mkpat_cons_desc consloc args)

let ghexp_cons_desc consloc args =
  Pexp_construct(ghrhs (Lident "::") consloc, Some args)
let ghpat_cons_desc consloc args =
  Ppat_construct(ghrhs (Lident "::") consloc, Some ([], args))

let rec mktailexp nilloc = let open Location in function
    [] ->
      let nil = ghloc ~loc:nilloc (Lident "[]") in
      Pexp_construct (nil, None), nilloc
  | e1 :: el ->
      let exp_el, el_loc = mktailexp nilloc el in
      let loc = (e1.pexp_loc.loc_start, snd el_loc) in
      let arg = ghexp ~loc (Pexp_tuple [e1; ghexp ~loc:el_loc exp_el]) in
      ghexp_cons_desc loc arg, loc

let rec mktailpat nilloc = let open Location in function
    [] ->
      let nil = ghloc ~loc:nilloc (Lident "[]") in
      Ppat_construct (nil, None), nilloc
  | p1 :: pl ->
      let pat_pl, el_loc = mktailpat nilloc pl in
      let loc = (p1.ppat_loc.loc_start, snd el_loc) in
      let arg = ghpat ~loc (Ppat_tuple [p1; ghpat ~loc:el_loc pat_pl]) in
      ghpat_cons_desc loc arg, loc

let mkstrexp e attrs =
  { pstr_desc = Pstr_eval (e, attrs); pstr_loc = e.pexp_loc }

let mkexp_desc_constraint e t =
  match t with
  | Pconstraint t -> Pexp_constraint(e, t)
  | Pcoerce(t1, t2)  -> Pexp_coerce(e, t1, t2)

let mkexp_constraint ~loc e t =
  mkexp ~loc (mkexp_desc_constraint e t)

let mkexp_opt_constraint ~loc e = function
  | None -> e
  | Some constraint_ -> mkexp_constraint ~loc e constraint_

let mkpat_opt_constraint ~loc p = function
  | None -> p
  | Some typ -> mkpat ~loc (Ppat_constraint(p, typ))

let syntax_error () =
  raise Syntaxerr.Escape_error

let unclosed opening_name opening_loc closing_name closing_loc =
  raise(Syntaxerr.Error(Syntaxerr.Unclosed(make_loc opening_loc, opening_name,
                                           make_loc closing_loc, closing_name)))

let expecting loc nonterm =
    raise Syntaxerr.(Error(Expecting(make_loc loc, nonterm)))

let removed_string_set loc =
  raise(Syntaxerr.Error(Syntaxerr.Removed_string_set(make_loc loc)))

(* Using the function [not_expecting] in a semantic action means that this
   syntactic form is recognized by the parser but is in fact incorrect. This
   idiom is used in a few places to produce ad hoc syntax error messages. *)

(* This idiom should be used as little as possible, because it confuses the
   analyses performed by Menhir. Because Menhir views the semantic action as
   opaque, it believes that this syntactic form is correct. This can lead
   [make generate-parse-errors] to produce sentences that cause an early
   (unexpected) syntax error and do not achieve the desired effect. This could
   also lead a completion system to propose completions which in fact are
   incorrect. In order to avoid these problems, the productions that use
   [not_expecting] should be marked with AVOID. *)

let not_expecting loc nonterm =
    raise Syntaxerr.(Error(Not_expecting(make_loc loc, nonterm)))

(* Helper functions for desugaring array indexing operators *)
type paren_kind = Paren | Brace | Bracket

(* We classify the dimension of indices: Bigarray distinguishes
   indices of dimension 1,2,3, or more. Similarly, user-defined
   indexing operator behave differently for indices of dimension 1
   or more.
*)
type index_dim =
  | One
  | Two
  | Three
  | Many
type ('dot,'index) array_family = {

  name:
    Lexing.position * Lexing.position -> 'dot -> assign:bool -> paren_kind
  -> index_dim -> Longident.t Location.loc
  (*
    This functions computes the name of the explicit indexing operator
    associated with a sugared array indexing expression.

    For instance, for builtin arrays, if Clflags.unsafe is set,
    * [ a.[index] ]     =>  [String.unsafe_get]
    * [ a.{x,y} <- 1 ]  =>  [ Bigarray.Array2.unsafe_set]

    User-defined indexing operator follows a more local convention:
    * [ a .%(index)]     => [ (.%()) ]
    * [ a.![1;2] <- 0 ]  => [(.![;..]<-)]
    * [ a.My.Map.?(0) => [My.Map.(.?())]
  *);

  index:
    Lexing.position * Lexing.position -> paren_kind -> 'index
    -> index_dim * (arg_label * expression) list
   (*
     [index (start,stop) paren index] computes the dimension of the
     index argument and how it should be desugared when transformed
     to a list of arguments for the indexing operator.
     In particular, in both the Bigarray case and the user-defined case,
     beyond a certain dimension, multiple indices are packed into a single
     array argument:
     * [ a.(x) ]       => [ [One, [Nolabel, <<x>>] ]
     * [ a.{1,2} ]     => [ [Two, [Nolabel, <<1>>; Nolabel, <<2>>] ]
     * [ a.{1,2,3,4} ] => [ [Many, [Nolabel, <<[|1;2;3;4|]>>] ] ]
   *);

}

let bigarray_untuplify = function
    { pexp_desc = Pexp_tuple explist; pexp_loc = _ } -> explist
  | exp -> [exp]

let builtin_arraylike_name loc _ ~assign paren_kind n =
  let opname = if assign then "set" else "get" in
  let opname = if !Clflags.unsafe then "unsafe_" ^ opname else opname in
  let prefix = match paren_kind with
    | Paren -> Lident "Array"
    | Bracket ->
        if assign then removed_string_set loc
        else Lident "String"
    | Brace ->
       let submodule_name = match n with
         | One -> "Array1"
         | Two -> "Array2"
         | Three -> "Array3"
         | Many -> "Genarray" in
       Ldot(Lident "Bigarray", submodule_name) in
   ghloc ~loc (Ldot(prefix,opname))

let builtin_arraylike_index loc paren_kind index = match paren_kind with
    | Paren | Bracket -> One, [Nolabel, index]
    | Brace ->
       (* Multi-indices for bigarray are comma-separated ([a.{1,2,3,4}]) *)
       match bigarray_untuplify index with
     | [x] -> One, [Nolabel, x]
     | [x;y] -> Two, [Nolabel, x; Nolabel, y]
     | [x;y;z] -> Three, [Nolabel, x; Nolabel, y; Nolabel, z]
     | coords -> Many, [Nolabel, ghexp ~loc (Pexp_array coords)]

let builtin_indexing_operators : (unit, expression) array_family  =
  { index = builtin_arraylike_index; name = builtin_arraylike_name }

let paren_to_strings = function
  | Paren -> "(", ")"
  | Bracket -> "[", "]"
  | Brace -> "{", "}"

let user_indexing_operator_name loc (prefix,ext) ~assign paren_kind n =
  let name =
    let assign = if assign then "<-" else "" in
    let mid = match n with
        | Many | Three | Two  -> ";.."
        | One -> "" in
    let left, right = paren_to_strings paren_kind in
    String.concat "" ["."; ext; left; mid; right; assign] in
  let lid = match prefix with
    | None -> Lident name
    | Some p -> Ldot(p,name) in
  ghloc ~loc lid

let user_index loc _ index =
  (* Multi-indices for user-defined operators are semicolon-separated
     ([a.%[1;2;3;4]]) *)
  match index with
    | [a] -> One, [Nolabel, a]
    | l -> Many, [Nolabel, mkexp ~loc (Pexp_array l)]

let user_indexing_operators:
      (Longident.t option * string, expression list) array_family
  = { index = user_index; name = user_indexing_operator_name }

let mk_indexop_expr array_indexing_operator ~loc
      (array,dot,paren,index,set_expr) =
  let assign = match set_expr with None -> false | Some _ -> true in
  let n, index = array_indexing_operator.index loc paren index in
  let fn = array_indexing_operator.name loc dot ~assign paren n in
  let set_arg = match set_expr with
    | None -> []
    | Some expr -> [Nolabel, expr] in
  let args = (Nolabel,array) :: index @ set_arg in
  mkexp ~loc (Pexp_apply(ghexp ~loc (Pexp_ident fn), args))

let indexop_unclosed_error loc_s s loc_e =
  let left, right = paren_to_strings s in
  unclosed left loc_s right loc_e

let lapply ~loc p1 p2 =
  if !Clflags.applicative_functors
  then Lapply(p1, p2)
  else raise (Syntaxerr.Error(
                  Syntaxerr.Applicative_path (make_loc loc)))

(* [loc_map] could be [Location.map]. *)
let loc_map (f : 'a -> 'b) (x : 'a Location.loc) : 'b Location.loc =
  { x with txt = f x.txt }

let make_ghost x = { x with loc = { x.loc with loc_ghost = true }}

let loc_last (id : Longident.t Location.loc) : string Location.loc =
  loc_map Longident.last id

let loc_lident (id : string Location.loc) : Longident.t Location.loc =
  loc_map (fun x -> Lident x) id

let exp_of_longident lid =
  let lid = loc_map (fun id -> Lident (Longident.last id)) lid in
  Exp.mk ~loc:lid.loc (Pexp_ident lid)

let exp_of_label lbl =
  Exp.mk ~loc:lbl.loc (Pexp_ident (loc_lident lbl))

let pat_of_label lbl =
  Pat.mk ~loc:lbl.loc  (Ppat_var (loc_last lbl))

let mk_newtypes ~loc newtypes exp =
  let mkexp = mkexp ~loc in
  List.fold_right (fun newtype exp -> mkexp (Pexp_newtype (newtype, exp)))
    newtypes exp

let wrap_type_annotation ~loc newtypes core_type body =
  let mkexp, ghtyp = mkexp ~loc, ghtyp ~loc in
  let mk_newtypes = mk_newtypes ~loc in
  let exp = mkexp(Pexp_constraint(body,core_type)) in
  let exp = mk_newtypes newtypes exp in
  (exp, ghtyp(Ptyp_poly(newtypes, Typ.varify_constructors newtypes core_type)))

let wrap_exp_attrs ~loc body (ext, attrs) =
  let ghexp = ghexp ~loc in
  (* 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 -> ghexp(Pexp_extension (id, PStr [mkstrexp body []]))

let mkexp_attrs ~loc d attrs =
  wrap_exp_attrs ~loc (mkexp ~loc d) attrs

let wrap_typ_attrs ~loc typ (ext, attrs) =
  (* todo: keep exact location for the entire attribute *)
  let typ = {typ with ptyp_attributes = attrs @ typ.ptyp_attributes} in
  match ext with
  | None -> typ
  | Some id -> ghtyp ~loc (Ptyp_extension (id, PTyp typ))

let wrap_pat_attrs ~loc pat (ext, attrs) =
  (* todo: keep exact location for the entire attribute *)
  let pat = {pat with ppat_attributes = attrs @ pat.ppat_attributes} in
  match ext with
  | None -> pat
  | Some id -> ghpat ~loc (Ppat_extension (id, PPat (pat, None)))

let mkpat_attrs ~loc d attrs =
  wrap_pat_attrs ~loc (mkpat ~loc d) attrs

let wrap_class_attrs ~loc:_ body attrs =
  {body with pcl_attributes = attrs @ body.pcl_attributes}
let wrap_mod_attrs ~loc:_ attrs body =
  {body with pmod_attributes = attrs @ body.pmod_attributes}
let wrap_mty_attrs ~loc:_ attrs body =
  {body with pmty_attributes = attrs @ body.pmty_attributes}

let wrap_str_ext ~loc body ext =
  match ext with
  | None -> body
  | Some id -> ghstr ~loc (Pstr_extension ((id, PStr [body]), []))

let wrap_mkstr_ext ~loc (item, ext) =
  wrap_str_ext ~loc (mkstr ~loc item) ext

let wrap_sig_ext ~loc body ext =
  match ext with
  | None -> body
  | Some id -> ghsig ~loc (Psig_extension ((id, PSig [body]), []))

let wrap_mksig_ext ~loc (item, ext) =
  wrap_sig_ext ~loc (mksig ~loc item) ext

let mk_quotedext ~loc (id, idloc, str, strloc, delim) =
  let exp_id = mkloc id idloc in
  let e = ghexp ~loc (Pexp_constant (Pconst_string (str, strloc, delim))) in
  (exp_id, PStr [mkstrexp e []])

let text_str pos = Str.text (rhs_text pos)
let text_sig pos = Sig.text (rhs_text pos)
let text_cstr pos = Cf.text (rhs_text pos)
let text_csig pos = Ctf.text (rhs_text pos)
let text_def pos =
  List.map (fun def -> Ptop_def [def]) (Str.text (rhs_text pos))

let extra_text startpos endpos text items =
  match items with
  | [] ->
      let post = rhs_post_text endpos in
      let post_extras = rhs_post_extra_text endpos in
      text post @ text post_extras
  | _ :: _ ->
      let pre_extras = rhs_pre_extra_text startpos in
      let post_extras = rhs_post_extra_text endpos in
        text pre_extras @ items @ text post_extras

let extra_str p1 p2 items = extra_text p1 p2 Str.text items
let extra_sig p1 p2 items = extra_text p1 p2 Sig.text items
let extra_cstr p1 p2 items = extra_text p1 p2 Cf.text items
let extra_csig p1 p2 items = extra_text p1 p2 Ctf.text  items
let extra_def p1 p2 items =
  extra_text p1 p2
    (fun txt -> List.map (fun def -> Ptop_def [def]) (Str.text txt))
    items

let extra_rhs_core_type ct ~pos =
  let docs = rhs_info pos in
  { ct with ptyp_attributes = add_info_attrs docs ct.ptyp_attributes }

type let_binding =
  { lb_pattern: pattern;
    lb_expression: expression;
    lb_constraint: value_constraint option;
    lb_is_pun: bool;
    lb_attributes: attributes;
    lb_docs: docs Lazy.t;
    lb_text: text Lazy.t;
    lb_loc: Location.t; }

type let_bindings =
  { lbs_bindings: let_binding list;
    lbs_rec: rec_flag;
    lbs_extension: string Asttypes.loc option }

let mklb first ~loc (p, e, typ, is_pun) attrs =
  {
    lb_pattern = p;
    lb_expression = e;
    lb_constraint=typ;
    lb_is_pun = is_pun;
    lb_attributes = attrs;
    lb_docs = symbol_docs_lazy loc;
    lb_text = (if first then empty_text_lazy
               else symbol_text_lazy (fst loc));
    lb_loc = make_loc loc;
  }

let addlb lbs lb =
  if lb.lb_is_pun && lbs.lbs_extension = None then syntax_error ();
  { lbs with lbs_bindings = lb :: lbs.lbs_bindings }

let mklbs ext rf lb =
  let lbs = {
    lbs_bindings = [];
    lbs_rec = rf;
    lbs_extension = ext;
  } in
  addlb lbs lb

let val_of_let_bindings ~loc lbs =
  let bindings =
    List.map
      (fun lb ->
         Vb.mk ~loc:lb.lb_loc ~attrs:lb.lb_attributes
           ~docs:(Lazy.force lb.lb_docs)
           ~text:(Lazy.force lb.lb_text)
           ?value_constraint:lb.lb_constraint lb.lb_pattern lb.lb_expression)
      lbs.lbs_bindings
  in
  let str = mkstr ~loc (Pstr_value(lbs.lbs_rec, List.rev bindings)) in
  match lbs.lbs_extension with
  | None -> str
  | Some id -> ghstr ~loc (Pstr_extension((id, PStr [str]), []))

let expr_of_let_bindings ~loc lbs body =
  let bindings =
    List.map
      (fun lb ->
         Vb.mk ~loc:lb.lb_loc ~attrs:lb.lb_attributes
          ?value_constraint:lb.lb_constraint  lb.lb_pattern lb.lb_expression)
      lbs.lbs_bindings
  in
    mkexp_attrs ~loc (Pexp_let(lbs.lbs_rec, List.rev bindings, body))
      (lbs.lbs_extension, [])

let class_of_let_bindings ~loc lbs body =
  let bindings =
    List.map
      (fun lb ->
         Vb.mk ~loc:lb.lb_loc ~attrs:lb.lb_attributes
          ?value_constraint:lb.lb_constraint lb.lb_pattern lb.lb_expression)
      lbs.lbs_bindings
  in
    (* Our use of let_bindings(no_ext) guarantees the following: *)
    assert (lbs.lbs_extension = None);
    mkclass ~loc (Pcl_let (lbs.lbs_rec, List.rev bindings, body))

(* If all the parameters are [Pparam_newtype x], then return [Some xs] where
   [xs] is the corresponding list of values [x]. This function is optimized for
   the common case, where a list of parameters contains at least one value
   parameter.
*)
let all_params_as_newtypes =
  let is_newtype { pparam_desc; _ } =
    match pparam_desc with
    | Pparam_newtype _ -> true
    | Pparam_val _ -> false
  in
  let as_newtype { pparam_desc; pparam_loc } =
    match pparam_desc with
    | Pparam_newtype x -> Some (x, pparam_loc)
    | Pparam_val _ -> None
  in
  fun params ->
    if List.for_all is_newtype params
    then Some (List.filter_map as_newtype params)
    else None

(* Given a construct [fun (type a b c) : t -> e], we construct
   [Pexp_newtype(a, Pexp_newtype(b, Pexp_newtype(c, Pexp_constraint(e, t))))]
   rather than a [Pexp_function].
*)
let mkghost_newtype_function_body newtypes body_constraint body =
  let wrapped_body =
    match body_constraint with
    | None -> body
    | Some body_constraint ->
        let loc = { body.pexp_loc with loc_ghost = true } in
        Exp.mk (mkexp_desc_constraint body body_constraint) ~loc
  in
  let expr =
    List.fold_right
      (fun (newtype, newtype_loc) e ->
         (* Mints a ghost location that approximates the newtype's "extent" as
            being from the start of the newtype param until the end of the
            function body.
         *)
         let loc = (newtype_loc.Location.loc_start, body.pexp_loc.loc_end) in
         ghexp (Pexp_newtype (newtype, e)) ~loc)
      newtypes
      wrapped_body
  in
  expr.pexp_desc

let mkfunction params body_constraint body =
  match body with
  | Pfunction_cases _ -> Pexp_function (params, body_constraint, body)
  | Pfunction_body body_exp ->
    (* If all the params are newtypes, then we don't create a function node;
       we create nested newtype nodes. *)
      match all_params_as_newtypes params with
      | None -> Pexp_function (params, body_constraint, body)
      | Some newtypes ->
          mkghost_newtype_function_body newtypes body_constraint body_exp

(* Alternatively, we could keep the generic module type in the Parsetree
   and extract the package type during type-checking. In that case,
   the assertions below should be turned into explicit checks. *)
let package_type_of_module_type pmty =
  let err loc s =
    raise (Syntaxerr.Error (Syntaxerr.Invalid_package_type (loc, s)))
  in
  let map_cstr = function
    | Pwith_type (lid, ptyp) ->
        let loc = ptyp.ptype_loc in
        if ptyp.ptype_params <> [] then
          err loc Syntaxerr.Parameterized_types;
        if ptyp.ptype_cstrs <> [] then
          err loc Syntaxerr.Constrained_types;
        if ptyp.ptype_private <> Public then
          err loc Syntaxerr.Private_types;

        (* 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)
    | _ ->
        err pmty.pmty_loc Not_with_type
  in
  match pmty with
  | {pmty_desc = Pmty_ident lid} -> (lid, [], pmty.pmty_attributes)
  | {pmty_desc = Pmty_with({pmty_desc = Pmty_ident lid}, cstrs)} ->
      (lid, List.map map_cstr cstrs, pmty.pmty_attributes)
  | _ ->
      err pmty.pmty_loc Neither_identifier_nor_with_type

let mk_directive_arg ~loc k =
  { pdira_desc = k;
    pdira_loc = make_loc loc;
  }

let mk_directive ~loc name arg =
  Ptop_dir {
      pdir_name = name;
      pdir_arg = arg;
      pdir_loc = make_loc loc;
    }


# 908 "parsing/parser.ml"

module Tables = struct
  
  include MenhirBasics
  
  let token2terminal : token -> int =
    fun _tok ->
      match _tok with
      | AMPERAMPER ->
          123
      | AMPERSAND ->
          122
      | AND ->
          121
      | ANDOP _ ->
          120
      | AS ->
          119
      | ASSERT ->
          118
      | BACKQUOTE ->
          117
      | BANG ->
          116
      | BAR ->
          115
      | BARBAR ->
          114
      | BARRBRACKET ->
          113
      | BEGIN ->
          112
      | CHAR _ ->
          111
      | CLASS ->
          110
      | COLON ->
          109
      | COLONCOLON ->
          108
      | COLONEQUAL ->
          107
      | COLONGREATER ->
          106
      | COMMA ->
          105
      | COMMENT _ ->
          104
      | CONSTRAINT ->
          103
      | DO ->
          102
      | DOCSTRING _ ->
          101
      | DONE ->
          100
      | DOT ->
          99
      | DOTDOT ->
          98
      | DOTOP _ ->
          97
      | DOWNTO ->
          96
      | ELSE ->
          95
      | END ->
          94
      | EOF ->
          93
      | EOL ->
          92
      | EQUAL ->
          91
      | EXCEPTION ->
          90
      | EXTERNAL ->
          89
      | FALSE ->
          88
      | FLOAT _ ->
          87
      | FOR ->
          86
      | FUN ->
          85
      | FUNCTION ->
          84
      | FUNCTOR ->
          83
      | GREATER ->
          82
      | GREATERRBRACE ->
          81
      | GREATERRBRACKET ->
          80
      | HASH ->
          79
      | HASHOP _ ->
          78
      | IF ->
          77
      | IN ->
          76
      | INCLUDE ->
          75
      | INFIXOP0 _ ->
          74
      | INFIXOP1 _ ->
          73
      | INFIXOP2 _ ->
          72
      | INFIXOP3 _ ->
          71
      | INFIXOP4 _ ->
          70
      | INHERIT ->
          69
      | INITIALIZER ->
          68
      | INT _ ->
          67
      | LABEL _ ->
          66
      | LAZY ->
          65
      | LBRACE ->
          64
      | LBRACELESS ->
          63
      | LBRACKET ->
          62
      | LBRACKETAT ->
          61
      | LBRACKETATAT ->
          60
      | LBRACKETATATAT ->
          59
      | LBRACKETBAR ->
          58
      | LBRACKETGREATER ->
          57
      | LBRACKETLESS ->
          56
      | LBRACKETPERCENT ->
          55
      | LBRACKETPERCENTPERCENT ->
          54
      | LESS ->
          53
      | LESSMINUS ->
          52
      | LET ->
          51
      | LETOP _ ->
          50
      | LIDENT _ ->
          49
      | LPAREN ->
          48
      | MATCH ->
          47
      | METHOD ->
          46
      | MINUS ->
          45
      | MINUSDOT ->
          44
      | MINUSGREATER ->
          43
      | MODULE ->
          42
      | MUTABLE ->
          41
      | NEW ->
          40
      | NONREC ->
          39
      | OBJECT ->
          38
      | OF ->
          37
      | OPEN ->
          36
      | OPTLABEL _ ->
          35
      | OR ->
          34
      | PERCENT ->
          33
      | PLUS ->
          32
      | PLUSDOT ->
          31
      | PLUSEQ ->
          30
      | PREFIXOP _ ->
          29
      | PRIVATE ->
          28
      | QUESTION ->
          27
      | QUOTE ->
          26
      | QUOTED_STRING_EXPR _ ->
          25
      | QUOTED_STRING_ITEM _ ->
          24
      | RBRACE ->
          23
      | RBRACKET ->
          22
      | REC ->
          21
      | RPAREN ->
          20
      | SEMI ->
          19
      | SEMISEMI ->
          18
      | SIG ->
          17
      | STAR ->
          16
      | STRING _ ->
          15
      | STRUCT ->
          14
      | THEN ->
          13
      | TILDE ->
          12
      | TO ->
          11
      | TRUE ->
          10
      | TRY ->
          9
      | TYPE ->
          8
      | UIDENT _ ->
          7
      | UNDERSCORE ->
          6
      | VAL ->
          5
      | VIRTUAL ->
          4
      | WHEN ->
          3
      | WHILE ->
          2
      | WITH ->
          1
  
  and error_terminal =
    0
  
  and token2value : token -> Obj.t =
    fun _tok ->
      match _tok with
      | AMPERAMPER ->
          Obj.repr ()
      | AMPERSAND ->
          Obj.repr ()
      | AND ->
          Obj.repr ()
      | ANDOP _v ->
          Obj.repr _v
      | AS ->
          Obj.repr ()
      | ASSERT ->
          Obj.repr ()
      | BACKQUOTE ->
          Obj.repr ()
      | BANG ->
          Obj.repr ()
      | BAR ->
          Obj.repr ()
      | BARBAR ->
          Obj.repr ()
      | BARRBRACKET ->
          Obj.repr ()
      | BEGIN ->
          Obj.repr ()
      | CHAR _v ->
          Obj.repr _v
      | CLASS ->
          Obj.repr ()
      | COLON ->
          Obj.repr ()
      | COLONCOLON ->
          Obj.repr ()
      | COLONEQUAL ->
          Obj.repr ()
      | COLONGREATER ->
          Obj.repr ()
      | COMMA ->
          Obj.repr ()
      | COMMENT _v ->
          Obj.repr _v
      | CONSTRAINT ->
          Obj.repr ()
      | DO ->
          Obj.repr ()
      | DOCSTRING _v ->
          Obj.repr _v
      | DONE ->
          Obj.repr ()
      | DOT ->
          Obj.repr ()
      | DOTDOT ->
          Obj.repr ()
      | DOTOP _v ->
          Obj.repr _v
      | DOWNTO ->
          Obj.repr ()
      | ELSE ->
          Obj.repr ()
      | END ->
          Obj.repr ()
      | EOF ->
          Obj.repr ()
      | EOL ->
          Obj.repr ()
      | EQUAL ->
          Obj.repr ()
      | EXCEPTION ->
          Obj.repr ()
      | EXTERNAL ->
          Obj.repr ()
      | FALSE ->
          Obj.repr ()
      | FLOAT _v ->
          Obj.repr _v
      | FOR ->
          Obj.repr ()
      | FUN ->
          Obj.repr ()
      | FUNCTION ->
          Obj.repr ()
      | FUNCTOR ->
          Obj.repr ()
      | GREATER ->
          Obj.repr ()
      | GREATERRBRACE ->
          Obj.repr ()
      | GREATERRBRACKET ->
          Obj.repr ()
      | HASH ->
          Obj.repr ()
      | HASHOP _v ->
          Obj.repr _v
      | IF ->
          Obj.repr ()
      | IN ->
          Obj.repr ()
      | INCLUDE ->
          Obj.repr ()
      | INFIXOP0 _v ->
          Obj.repr _v
      | INFIXOP1 _v ->
          Obj.repr _v
      | INFIXOP2 _v ->
          Obj.repr _v
      | INFIXOP3 _v ->
          Obj.repr _v
      | INFIXOP4 _v ->
          Obj.repr _v
      | INHERIT ->
          Obj.repr ()
      | INITIALIZER ->
          Obj.repr ()
      | INT _v ->
          Obj.repr _v
      | LABEL _v ->
          Obj.repr _v
      | LAZY ->
          Obj.repr ()
      | LBRACE ->
          Obj.repr ()
      | LBRACELESS ->
          Obj.repr ()
      | LBRACKET ->
          Obj.repr ()
      | LBRACKETAT ->
          Obj.repr ()
      | LBRACKETATAT ->
          Obj.repr ()
      | LBRACKETATATAT ->
          Obj.repr ()
      | LBRACKETBAR ->
          Obj.repr ()
      | LBRACKETGREATER ->
          Obj.repr ()
      | LBRACKETLESS ->
          Obj.repr ()
      | LBRACKETPERCENT ->
          Obj.repr ()
      | LBRACKETPERCENTPERCENT ->
          Obj.repr ()
      | LESS ->
          Obj.repr ()
      | LESSMINUS ->
          Obj.repr ()
      | LET ->
          Obj.repr ()
      | LETOP _v ->
          Obj.repr _v
      | LIDENT _v ->
          Obj.repr _v
      | LPAREN ->
          Obj.repr ()
      | MATCH ->
          Obj.repr ()
      | METHOD ->
          Obj.repr ()
      | MINUS ->
          Obj.repr ()
      | MINUSDOT ->
          Obj.repr ()
      | MINUSGREATER ->
          Obj.repr ()
      | MODULE ->
          Obj.repr ()
      | MUTABLE ->
          Obj.repr ()
      | NEW ->
          Obj.repr ()
      | NONREC ->
          Obj.repr ()
      | OBJECT ->
          Obj.repr ()
      | OF ->
          Obj.repr ()
      | OPEN ->
          Obj.repr ()
      | OPTLABEL _v ->
          Obj.repr _v
      | OR ->
          Obj.repr ()
      | PERCENT ->
          Obj.repr ()
      | PLUS ->
          Obj.repr ()
      | PLUSDOT ->
          Obj.repr ()
      | PLUSEQ ->
          Obj.repr ()
      | PREFIXOP _v ->
          Obj.repr _v
      | PRIVATE ->
          Obj.repr ()
      | QUESTION ->
          Obj.repr ()
      | QUOTE ->
          Obj.repr ()
      | QUOTED_STRING_EXPR _v ->
          Obj.repr _v
      | QUOTED_STRING_ITEM _v ->
          Obj.repr _v
      | RBRACE ->
          Obj.repr ()
      | RBRACKET ->
          Obj.repr ()
      | REC ->
          Obj.repr ()
      | RPAREN ->
          Obj.repr ()
      | SEMI ->
          Obj.repr ()
      | SEMISEMI ->
          Obj.repr ()
      | SIG ->
          Obj.repr ()
      | STAR ->
          Obj.repr ()
      | STRING _v ->
          Obj.repr _v
      | STRUCT ->
          Obj.repr ()
      | THEN ->
          Obj.repr ()
      | TILDE ->
          Obj.repr ()
      | TO ->
          Obj.repr ()
      | TRUE ->
          Obj.repr ()
      | TRY ->
          Obj.repr ()
      | TYPE ->
          Obj.repr ()
      | UIDENT _v ->
          Obj.repr _v
      | UNDERSCORE ->
          Obj.repr ()
      | VAL ->
          Obj.repr ()
      | VIRTUAL ->
          Obj.repr ()
      | WHEN ->
          Obj.repr ()
      | WHILE ->
          Obj.repr ()
      | WITH ->
          Obj.repr ()
  
  and default_reduction =
    (16, "\000\000\000\000\000\000\003I\003H\003G\003F\003E\003\024\003D\003C\003B\003A\003@\003?\003>\003=\003<\003;\003:\0039\0038\0037\0036\0035\0034\0033\0032\003\023\0031\0030\003/\003.\003-\003,\003+\003*\003)\003(\003'\003&\003%\003$\003#\003\"\003!\003 \003\031\003\030\003\029\003\028\003\027\003\026\003\025\000\000\000\000\000\"\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\141\001\227\001\206\001\224\001\223\001\222\001\228\001\232\000\000\003\142\001\226\001\225\001\207\001\230\001\221\001\220\001\219\001\218\001\217\001\215\001\231\001\229\000\000\000\000\000\000\001\011\000\000\000\000\001\210\000\000\000\000\000\000\001\212\000\000\000\000\000\000\001\214\001\236\001\233\001\216\001\208\001\234\001\235\000\000\003\140\003\139\003\143\000\000\000\000\000 \001u\000\132\000\000\001\007\001\b\000\000\000\000\000\000\002\005\002\004\000\000\000\000\000\031\000\000\000\000\000\000\000\000\000\000\001\160\000\000\000\000\000\000\000\000\000\000\003\136\000\000\003\131\000\000\000\000\003\133\000\000\003\135\000\000\003\132\003\134\000\000\003~\000\000\003}\003y\002|\000\000\003|\000\000\002}\000\000\000\000\000\000\000\000\000c\000\000\000\000\000a\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\237\001\129\000\000\000\000\000\000\000\000\000\000\000\000\002e\000\000\000\000\000\000\000\000\000\000\000\000\000^\000\000\000\000\000\000\000\000\000\000\003\005\000\000\002\181\002\182\000\000\002\179\002\180\000\000\000\000\000\000\000\000\000\000\001\155\001\154\000\000\003\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\014\000\017\000\016\000\000\000\000\000\000\000\000\000\000\001\146\000\000\000\000\000\000\000\000\000\000\000\000\001\127\000\000\000\000\001\130\001\128\001\136\000:\002\214\000\000\001E\003a\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\001\022\000\000\002\184\002\183\000\000\000\000\000\000\001\240\000\000\000\000\000|\000\000\000\000\000\000\000\000\000\000\001\135\000\000\001\134\000\000\001v\001\133\000\000\001t\000[\000\027\000\000\000\000\001\181\000\024\000\000\000\000\000\000\000\000\000s\000\000\000\000\000\000\000\000\000\000\000\000\003x\000\246\000t\000\135\000u\000\023\000\000\000\000\000\000\000\000\000\028\000\025\000\018\000\000\000v\000r\000\000\000\000\000\000\000\019\000\030\000\000\000\248\002\138\002x\000\000\000y\000\000\002y\000\000\000\000\001\237\000\000\000\000\000\000\000\000\003b\000\000\003c\000\000\000\000\000x\000\000\000\000\000\000\000z\000\000\000{\000\000\000}\000\000\000\000\000~\002n\002m\000\000\000\000\000\000\000\000\000\000\000\000\000\\\000\000\003\n\000_\000b\000]\002\255\003\144\003\000\0027\003\002\000\000\000\000\003\007\002\178\003\t\000\000\000\000\000\000\003\016\003\r\000\000\000\000\000\000\0023\002%\000\000\000\000\000\000\000\000\002)\000\000\002$\000\000\0026\003\022\000\000\000\000\000\000\000\000\001\183\000\000\000\000\0025\003\b\000j\000\000\000\000\000i\000\000\003\017\003\001\000\000\002/\000\000\000\000\003\020\000\000\003\019\003\018\000\000\002+\000\000\000\000\002'\002&\0024\002,\000\000\000h\000\000\003\015\003\014\000\000\003\012\000\000\002\186\002\185\000\000\000\000\002\151\003\011\000\000\000\000\000\000\000\000\001\242\001`\001a\002\188\000\000\002\189\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001!\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\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\166\000\000\000\000\000\000\000\000\000\000\000\000\003\167\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\001\165\000\000\000\000\000\000\001~\001\173\001}\001\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002v\000\000\000\000\002w\002j\002i\000\000\000\000\001\164\001\163\000\000\000\250\000\000\000\000\001\148\000\000\000\000\001\152\000\000\002\t\002\b\000\000\000\000\002\007\002\006\001\151\001\149\000\000\001\153\000\000\000\000\000\000\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\220\001\131\002\225\002\223\000\000\000\000\000\000\002\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\254\000\000\002\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002B\000\000\000\000\000\000\000\000\000\000\000\000\001\031\002A\001 \000\000\000\000\000\000\000\238\000\000\001#\001$\000\000\000\239\002h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002s\002q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\207\000\000\000\000\000\000\000\000\000\000\003u\000\000\000\000\003t\000\000\000\000\000\000\000\000\001\026\001\025\000\000\001\027\000\000\000\000\000\000\002\233\000\000\000\000\000\000\002\202\002\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\145\002\235\002\222\002\221\000\000\000\000\000\210\002\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\236\000\000\000\000\000\000\000\000\000\000\000\000\000\209\000\208\000\000\000\000\000\000\000\244\000\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003L\000\000\000\000\000\000\000\000\000\000\000\000\001*\000\000\000\000\002p\000\000\000\000\000\000\001)\000\000\000\000\001(\001'\000\000\002\003\000\000\000\000\000\140\003M\002g\000\000\000\000\000\000\000\000\001,\000\000\000\000\001+\000\000\0022\000\000\000\000\002>\000\000\000\000\002@\000\000\000\000\002<\002;\0029\002:\000\000\000\000\000\000\001%\000\000\000\000\001K\000\020\001.\000\000\000\000\000\000\002\204\002\195\000\000\000\000\002\203\002\194\000\000\000\000\000\000\000\000\002\206\002\197\000\000\000\000\002\144\000\000\000\000\002\210\002\201\000\000\000\000\002\208\002\199\002\229\000\000\000\000\000\000\000\000\000\000\002\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002l\002k\000\206\002\145\000\000\002\196\000\000\000\000\002\200\000\000\000\000\002\198\000\000\000\127\000\128\000\000\000\000\000\000\000\000\000\159\000\158\000\000\000\146\000\000\000\000\001c\000\000\001d\001b\002r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0016\000\000\000\000\0017\000\000\000\000\000\211\000\000\0019\0018\000\000\000\000\002\237\002\230\000\000\002\246\000\000\002\247\002\245\000\000\002\251\000\000\002\252\002\250\000\000\000\000\002\232\002\231\000\000\000\000\000\000\002X\000\000\000\000\000\000\000\000\002\154\002W\000\000\002\241\002\240\000\000\000\000\000\000\001\132\000\000\002\212\000\000\002\213\002\211\000\000\002\239\002\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\148\002\228\000\000\002\227\002\226\000\000\002\249\002\248\000\145\000\000\000\000\000\000\000\000\000\144\000\000\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\142\000\000\001\140\000\000\000\000\000\000\000d\000\000\000\000\000e\000\000\000\000\000\000\000\000\001\175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000\000\000n\000\000\001\019\001\017\000\000\000\000\000\000\000\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\143\000f\000\000\000\000\002V\000\000\000\000\001-\002\001\000\000\001\029\001\030\0014\000\000\000\000\000\000\000\000\000\000\002\244\000\000\002\243\002\242\002\224\000\000\000\000\000\000\000\000\002\215\000\000\002\217\000\000\002\216\000\000\002\191\002\190\000\000\002\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\023\002\011\000\000\002\021\000\000\002\017\000\000\002\019\000\000\002\r\000\000\000\000\002\015\000\000\002\022\002\n\000\000\002\020\000\000\002\016\000\000\002\018\000\000\002\012\000\000\000\000\002\014\000\000\001\203\000\000\000\000\000\000\001\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\171\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001A\003Z\000\000\000\000\003Y\000\000\000\000\000\000\000\000\000\000\002G\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\001\185\000\000\002M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003K\000\000\000\000\002\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\205\000\000\000\000\000\000\001\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\172\000\000\000\000\000\000\000\000\001\157\000\000\001\156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001C\002\171\000\000\000\000\001\142\000\000\002\169\000\000\000\000\000\000\002\168\000\000\000\000\001\143\000\000\000\000\000\000\000\000\002\175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\153\000\000\000\000\000\000\000\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000>\000\000\000\000\000\000\000\000\001\180\000\000\001\179\000\000\000\000\000\000\000\000\000A\000\000\000\000\000\000\002T\000\000\002S\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\000\000G\000\000\000\000\000\000\000H\000F\000\000\000K\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000C\000\000\000J\000I\000\000\000D\000E\000\000\001T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000W\000\000\000Y\000X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001=\002\176\002\161\000\000\002\167\002\162\002\174\002\173\002\172\002\170\001N\000\000\002\159\000\000\000\000\000\000\000\000\000\000\002e\000\000\000\000\001G\002\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\196\001\192\000\000\000\000\000\000\001\001\000\000\000\000\002[\002e\000\000\000\000\001I\002Y\002Z\000\000\000\000\000\000\000\000\000\000\001\199\001\195\001\191\000\000\000\000\001\002\000\000\000\000\001\198\001\194\001\190\001\188\002\164\002\160\002\177\001M\002D\002\158\000\000\000\000\000\000\000\000\000\000\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\148\000\000\000\000\003\150\000\000\000/\000\000\000\000\003\156\000\000\003\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\147\000\000\000\000\003\149\000\000\000\000\000\000\002O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001r\000\000\000\000\001p\001n\000\000\0000\000\000\000\000\003\159\000\000\003\158\000\000\000\000\000\000\001l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001q\000\000\000\000\001o\001m\000\000\000\000\000\000\0002\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\000\000\000\000\000\000\000\000\000Q\000\000\000\000\000\000\000\000\000\000\000\000\000,\000\000\000\000\000P\000\000\000*\0011\000\000\0009\000&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001/\000\000\000O\000N\000\000\000\000\000T\000S\000\000\000\000\001\244\000\000\000.\000\000\000\000\000\000\000-\000\000\000\000\000\000\0001\000\000\000R\000U\000\000\0003\0004\000\000\001V\000\000\000\000\000\000\000\000\000\000\000\000\0007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001;\003]\003T\000\000\000\000\003X\003J\003S\003\\\003[\001R\000\000\000\000\003Q\000\000\003U\003R\003^\002C\000\000\000\000\003O\000#\003N\000\000\000\000\000\136\000\000\001\r\000\000\000\000\001Q\001P\000\000\001\145\001\144\000\000\000\000\003\021\003\004\000\000\000;\000\000\000\000\000<\000\000\000\000\002\219\002\218\000\000\000\000\000\149\000\000\000\000\002L\001\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\000\000\003W\002`\002a\002\\\002^\002]\002_\000\000\000\000\000\000\000\134\000\000\000\000\002e\000\000\001\005\000\000\000\000\000\000\000\000\003V\000\000\000\131\000\000\000\000\000\000\000\000\001k\001e\000\000\000\000\001f\001\201\000\000\001\200\000\000\000\000\000\247\000\000\000\000\000\000\000\029\000\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\197\001\193\000\000\001\189\003w\000\000\002e\000\000\001\004\000\000\000\000\000\000\000\000\002\166\002d\002b\002c\000\000\000\000\000\000\002e\000\000\001\003\000\000\000\000\000\000\000\000\002\165\000\000\001\159\001\158\000\000\000w\000\000\003\151\000\000\000$\000\000\000\000\000\000\000\000\000\157\000\156\000\000\001\t\000\001\000\000\000\000\001\012\000\002\000\000\000\000\000\000\001x\001y\000\003\000\000\000\000\000\000\000\000\001{\001|\001z\000\021\001w\000\022\000\000\002\024\000\000\000\004\000\000\002\025\000\000\000\005\000\000\002\026\000\000\000\000\002\027\000\006\000\000\000\007\000\000\002\028\000\000\000\b\000\000\002\029\000\000\000\t\000\000\002\030\000\000\000\n\000\000\002\031\000\000\000\011\000\000\002 \000\000\000\000\002!\000\012\000\000\000\000\002\"\000\r\000\000\000\000\000\000\000\000\000\000\003j\003e\003f\003i\003g\000\000\003n\000\014\000\000\003m\000\000\001X\000\000\000\000\003k\000\000\003l\000\000\000\000\000\000\000\000\001\\\001]\000\000\000\000\001[\001Z\000\015\000\000\000\000\000\000\003\138\000\000\003\137")
  
  and error =
    (124, "'\225 \197\138\173\2433\208\020\015\228\000\003\142\0026\016\004\\(\223\018}\000@\248\000\000\024\224}\246D\b/\227P\000L\028\030\227\139\002\131@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\175\235f\245\155\175\2437\252\149\031\226\017\007\158\007\223d@\130\2545\000\004\193\193\2388\176(4\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130\141\241'\208\004\015\128\000\001\142\007\223d@\130\2545\000\004\193\193\2388\176(4'\225\"\213\138\173\2433\208\020\015\224\000\007\142\000\000\000\000\004\000\012\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\192\004\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\128\000\128\007\224,$\000\003\226 \016@\016(\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\024\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\128\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\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\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\128\000\b\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\017\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\128\000\b\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\128\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\004\000\0000\000\007\001\000\012\\ \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\016\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\133\128\179\160\b2R\028\012\025 v\017\"\017@\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\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\0000\000\007\001\002\012\\ \000\016\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\002@@@ \193\004\000\000\016\000\000\000\000\000\016$\004\000\002\012\016@\000\001\000\000\000\000\000\001\002@@\000 \193\000\000\000\016\000\000\000\000\012H\002\168\000\131\t!\192\001\016\007a\003 \004\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\132\128 \128\b \002\020\000\016\000b\000\002\000\bH\002\b\000\130\000!\000\001\000\006 \000 \000\003\000\000$\193\004\192\004\000\128\000\000\000\000\b\0000\000\002H\016L\000@\b\000\000\000\000\000\128\003\000\000$\129\004\192\000\000\128\000\000\000\000\b\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000$\128\004\192\000\000\128\000\000\000\000\b\000 \000\002\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\002H\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\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\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\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\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\002\000\000$\128\004\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\001\000\000\000\000\000@\000\000\000\000\000\000\000\000\bH\002( \130\000!\128\001\000\007`\017 \004\003 \000x\016\000\197\194\128\001\000\128 \000\016\bH\002(\000\194\t!\192\001\016\006a\016a\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\000\007\001\000\012\\(\000\016\b\002\000\001\000\003\000\bp\016 \197\194\000\001\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\197\128\187\128\b2R\028\012\017 v\001f\017`0\000\006\000\000\012\\ \000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\006\000\000\012\\ \000\018\000\002\000\000\000\001\000\016\000\000\000@\000\000\001 \000\000\004\000\0000\000\007\001\000\012\\ \000\016\000\000\000\000\000}\246D\b/\227P\000L\028\030\227\139\002\131B~\018-X\170\2233=\001@\254\000\000x\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\003\000\000$\193\004\192\004\000\128\000\000\000\000\b\0000\000\002H\016L\000@\b\000\000\000\000\000\128\003\000\000$\129\004\192\000\000\128\000\000\000\000\b\0000\000\002H\000L\000\000\b\000\000\000\000\000\128\001\000\000\000\000\000@\000\000\000\000\000\000\000\000\bH\002( \130\001!\128\001\016\007`\016 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\130\001!\128\001\016\006`\016 \004}\246D\b/\227P\000L\028\030\227\139\002\131B~\018-X\170\2233=\001@\254\000\000x\224#a\000E\194\141\241'\208\004\015\128\000\001\142\0026\016\004X(\223\018}\000@\248\000\000\024\224#a\000E\130\141\241#\208\004\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001!\000D\002\128\193#\144\000\001\128\000\001\140\b@\000\b\004\000(!@\192\000\000 \016\000\000\132\000\000\128\000\002\130\020\012\000\000\002\001\000\000\b@\000\b\000\000(!\000\192\000\000 \016\000\000\003!\000@\128\004\193\"\208\001\001\160\000\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\131!\136G\224,\229\"\211\227!\176@\025,\184\000\000\128\000\000\000\000\001\000\000\016\000\000\000\000\131\000\000\000@\000\000\004\000\000\000\000\000\000\000\0000\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\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\016$\004\000\002\012\016\000\000\001\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\001\002@@\000\000\129\004\000\000\016\000\000\000\000\000\016$\004\000\000\b\016\000\000\001\000\000\000\000\000\167\225 \197\138\173\2437\208\020\015\226\000\003\142\n~\018\012X\170\2233=\001@\254 \0008\224\167\225\"\197\138\173\2433\208\020\015\230\000\003\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\129\004\000\000\016\000\000\000\b\000\016$\004\004\000\b\016@\000\001\000\000\000\000\000\001\002@@\000\000\129\004\000\000\016\000\000\000\000\000\016$\004\000\000\b\016\000\000\001\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\005\002@@\000\000\129\000\000\000\016\000\000\000\000\0026\016\004X(\223\018}\000@\248\000\000\024\224#a\000E\130\141\241#\208\004\015\128\000\001\142\000\016\000\000\004\000\004\000@\000\000\000\000\000\000\000\001\000\000\000\000\000@\004\000\000\000\000\000\000\000\000\016\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\001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\175\235w\253\155\239\247\255\252\157?\230!\003\158@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\194\141\241'\208\004\015\128\000\001\142\0026\016\004X(\223\018}\000@\248\000\000\024\224#a\000E\130\141\241#\208\004\015\128\000\001\142\n6\024\132~*\223R=>b\249\004\001\154\235\129!\bD\002\128\193#\144\000\001\128\000\001\140\0026\016\004X(\223\018=\000@\248\000\000\028\224\197\189\187\215\250\190\223?\191\251a\247\219\127\252\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\128\004\193\"\208\001\001\128\000\001\004\0002\016\004\b\000L\018-\000\016\026\000\000\020@\003!\002@\128\004\193\"\208\001\001\160\000\001\004\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\016\000\000\000\000\000\000\000\001\000\000@\000\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\0000\000\007\001\000\012\\ \000\016\000\000\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\012\\ \000\016\000\000\000\000@\003\000\002p\016\000\197\194\000\001\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000\197\194\000\001\000\000\000\000\004\0000\000\007\001\000\012\\ \000\016\000\000\000\001@\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\001\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\b\000\000\000\128\000\000\000\000\000\016\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\000\000\000\016\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\0000\000\007\001\000\012\\ \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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012H\003\184\000\131!!\192\193\018\007`\022!\022\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\012H\011\184\000\131!!\192\193\018\007`\022!\022\003\000\000`\000\000\197\194\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\128\000\000\000\000\000\016\000\000\000\016\000\000\000\000\012\012 \000\000\000\000\000\000\000\003\000\000p\016 \197\194\000\001\000\000\000\000\000\0000\000\006\000\000\012\\ \000\016\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\012\\ \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\197\128\187\128\b2R\028\012\017 v\001b\017`0\000\006\000\000\012\\ \000\016\000\000\000\000\000\197\128\187\128\b2R\028\012\017 v\001b\017`\016\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\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\196\128;\128\b2\018\028\012\017 v\001b\017@\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012X\011\184\000\131%!\192\193\018\007`\022!\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\012\\ \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\002\000\000\000\001\000\003\000\000p\016\000\197\194\000\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\000\000\000 \000\000\000\000@\000\002\000\000\000\001\002\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\000\000\000 \000\000\000\000@\000\002\000\000\000\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\002\000\000\000\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\002\000\000\000\001\000\000\000\002\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\016\0000\000\007\001\000\012\\ \000\016\000\000\000\000@\000\000\002\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\002\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\002\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\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\b\000\001\016\000\000\000\000@\000\000\001\000\000\000\000\128\000\017\000\000\000\000\000\000\000\000\016\000\000\000\0002\016\004\b\000L\018-\000\016\026\000\000\016@\003!\000@\192\004\193&\144\001\001\128\000\001\004\0002\016\004\b\000L\018i\000\016\024\000\000\016@\003!\000@\128\004\193\"\144\001\001\128\000\001\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\147)\027P\144\020\193&\176\001\001\148 mU\000\000\016\000\b\000@\000\001\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\t2\145\181\t\001L\018o\000\016\027A\006\213P\001\000\000\000\000\000\128\"\128\000\000\000\000\000\000\b2\016\132\b\000L\018-\000\016\026\000\000\144@\000\000\000\000\000\000\000\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@\192\004\193&\208\001\001\160\000\001\004\0002\016\004\b\000L\018m\000\016\026\000\000\016@\003!\000@\128\004\193\"\208\001\001\160\000\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\t\000\001\176\000\001\000\000@\000\000\001@\004\197\016\003!\000@\128\004\193\"\208\001\001\160\000\001\004\t\000\001\176\000\001\000\000@\000\000\001@\004\197\016\131!\000@\128\004\193\"\208\001\001\160\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\027\000\000\016\000\004\000\000\000\020\000LQ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\147!\027@\128\020\193&\208\001\001\180\000MU\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t2\017\180\b\001L\018m\000\016\027@\004\213P\131\161\136G\224,\229\"\211\227!\176@\025,\176\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\b\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\b\000\000\000\000\000\000\000\000\000\000\000\000\0002\016\004\b\000L\018)\000\016\024\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\b\000\000\128\000\000\000\000\001\000\000\016\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\128\000\b\000\000\000\000\004\000\000\000\000\000L\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\000\000\000\b2\016\004\b\000L\018-\000\016\026\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\001\176\000\001\000\000@\000\000\001@\004\197\016\131\000\000p\016\000\197\194\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\b\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\b2\016\004\b\000L\018-\000\016\026\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\001\176\000\001\000\000@\000\000\001@\004\197\016\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\128\000\000\000\000@\000\000\000\000\004\129\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\003!\002@\128\004\193\"\208\001\001\160\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\b\000\001 \000\000\000\000@\000\000\000\000\004\133\016\131!\002@\128\004\193\"\208\001\001\160\000\001D\000\000\000\000\000\000\000\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\016\000\000\000\000@\000\000\000\000\004\129\016\128\000\017\000\000\000\000\000\000\000\000\000\000\000\000\b0\000\016\000\000\004\000\000\000\000\000\000\000\000\000\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\003)\000P\144\004\193&\176\t\001\144\000M\021\128\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\128\000\000\000\000\000\000\000\001\000\000@\000\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\000\000\000\128\000\000\000\000@\000\000\001\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\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\128\000\000\000\000\000\000\000\001\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\0002\016D\012\130L\018m\000\016\026\000\000\016@\001\002@@@\000\129\004\000\000\016\000\000\000\b\000\016$\004\004\000\b\016@\000\001\000\000\000\000\000\001\002@@\000\000\129\004\000\000\016\000\000\000\000\000\016$\004\000\000\b\016\000\000\001\000\000\000\000\000\000\000\000\000\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\003\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\004\000\000\016$\004\000\002\012\016\000\000\001\000\000\000\000\000\001\002H@\000 \193\000\000\000\016\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\001\002@@\000 \193\000\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\000\000\000\000\000\000\000\000\000\001\002@@\000 \193\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\128*\128\b0\018\028\000\017\000v\000\"\000@\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\003\000\000$\128\004\192\000\000\128\000\000\000\000\b\000\016\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\000\016\000\0000\000\007\129\000\012\\ \000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\012\\ \000\016\000\000\000\000\000\196\128*\128\b0\018\028\000\017\000v\000\"\001@0\000\007\001\000\012\\ \000\016\000\000\000\000\000\196\128*\128\b0\018\028\000\017\000v\001\"\001LH\002\168\000\131\001!\192\001\016\007`\018 \004\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\012H\002\168\000\131\001!\192\001\016\007`\018 \004\000\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\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\001\000\001\000\000\001\002@@\000 \193\000\000\000\016\000\000\000\000\012H\002\168\000\131\001!\192\001\016\007`\002 \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\001\000\000\000\001\000\000\000\000\000@\000\000\000\000\000\000\000\000\012H\002\168\000\131\t!\192\001\016\007a\003 \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\001\002@@\000 \193\000\000\000\016\000\000\000\000\012H\002\168\000\131\001!\192\001\016\007`\002 \004\001\002@@\000 \193\000\000\000\016\000\000\000\000\012H\002\168\000\131\001!\192\001\016\007`\002 \004\000\000\000\000\000\000\000\000\000\000\000\016\016\016\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\128*\128\b0\146\028\000\017\000v\016\"\000@\016\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\012H\002\168\000\131\t!\192\001\016\007a\002 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012H\002\168\000\131\001!\192\001\016\007`\002 \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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\128*\128\b0\018\028\000\017\000v\000\"\000L\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\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\016\128\000\000\000\000\000\000\000\000\000\016$\004\000\000\b\016\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012H\002\168\000\131\t!\192\001\144\007`\002`\004\005\002H@\000\000\129\000\000\000\016\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\128\004\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\016$\004\000\002\012\016\000\000\001\000\000\000\000\000\192\000\b\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012H\002\168\000\131\t!\192\001\144\007a\002`\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\128\000\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\0026\016$X(\223\018=\000@\248\000\000\024\224\000\000\000\000\000\000@\000\000\000@\000\000\000\000\b\000\001\000\000\000\000\000\000\000\004\001\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\000\018\016\004@(\012\0189\000\000\024\000\000\024\192\192\000\017\000\000\000\000\000\000\003\000\016P$\000\0026\016\004\\(\223\018}\000@\248 \000\024\224#a\000E\130\141\241'\208\004\015\130\000\001\142\0026\016\004X(\223\018=\000@\248 \000\024\224\001!\000DB\128\193'\144\000\001\128\000\001\140\000\018\016\004@(\012\018y\000\000\024\000\000\024\192\001!\000D\002\128\193#\144\000\001\128\000\001\140\000\018\016\004@(\012\0189\000\000\024\000\000\024\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\197\189\187\215\250\190\215?\191\251a\247\219\127\253\240\016\000\000\000\000\012\0028\000\000\000\000\000\000\000\163a\136G\226\173\245#\211\230/\144@\025\174\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\163a\bE\130\141\241#\208\004\015\128\000\001\142\n6\016\132X(\223\018=\000@\248\000\000\024\224\129\002@@@\000\129\004\000\000\016\000\000\000\000\000\016$\004\000\000\b\016@\000\001\000\000\000\000\000\001\002@@\000\000\129\000\000\000\016\000\000\000\000\000\000\000\000\000\000\b\000@\000\000\000\000\000@\000\129\002@@\000 \193\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\b\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\163a\bE\130\141\241#\208\004\015\128\000\001\142\n6\016\132X(\223\018=\000@\248\000\000\024\224\131!\b@\128\004\193\"\208\001\001\128\000\001\004\000\000\000\000\000\000\000\000@\000\000\001\000\004\193\016\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\0026\016\004\\(\223\018}\000@\248\000\000\024\224#a\000E\130\141\241'\208\004\015\128\000\001\142\0026\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\0002\016\004\b\000L\018-\000\016\026\000\000\016@\016\000\000\000\000\016\000\004\000\000\000\000\000H\017\0026\016\004X(\223\018=\000@\248\000\000\024\224\003)\000P\208\004\193&\176\001\001\128\000\001\004\0002\144\005\t\000L\018k\000\016\024\000\000\016@\003)\000P\144\004\193\"\176\001\001\128\000\001\004\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\0002\016\004\b\000L\018-\000\016\026\000\000\016@\000\000\b\000\000\000\000\004\000\000\000\016\000L\017\0000\000\007\001\000\012\\ \000\016\000\000\000\000\000\000\000\b\000\000\000\000\004\000\000\000\016\000\000\000\000\000\000\128\000\000\000\000\000\000\000\001\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\131\161\136G\224,\229\"\211\227!\176@\025,\176\000\000\000\000\000\004\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\003!\000@\128\004\193\"\144\001\001\128\000\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\0002\144\005\t\001L\018+\000\016\025\000\002P@\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\0000\000\006\000\000\012\\ \000\016\000\000\000\000\000\001\000\000\000\000\016@\000\000\001\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\0002\016\004\012\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018-\000\016\026\000\000\017@\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\003!\000@\128\004\193\"\208\001\001\160\000\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\0002\016\004\012\000L\018m\000\016\026\000\000\016@\003!\000@\128\004\193&\208\001\001\160\000\001\004\0002\016\004\b\000L\018-\000\016\026\000\000\016@\000\000\000\000\000\000\000\004\000\000\000\016\000H\017\0026\016\004X(\223\018=\000@\248\000\000\024\224\001!\000DB\128\193'\144\000\001\128\000\001\140\000\018\016\004@(\012\018y\000\000\024\000\000\024\192\001!\000D\002\128\193#\144\000\001\128\000\001\140\012IK\184>\131\225a\192\255\182\007}\183\231\015\001!\000D\002\128\193#\144\000\001\128\000\001\140\012[\219\189\127\171\237s\251\255\182\031}\183\255\223\000\000\000\000\000\000\128\002\128\000\000\000\000\000\000\0026\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\b\000\001\176\000\000\000\000\000\000\000\000\000\004\005\000\163a\011E\130\141\241#\208\004\015\128\000\001\206\0026\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\197\189\187\215\250\190\215?\191\251a\247\219\127\252\240\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\002@\000\131\000\000p\016\000\197\194\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\025\000\000\000\000\004\000\000\000\016\000\000\000\b0\000\007\001\000\012\\ \000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\144\000\000\000\000@\000\000\001\000\002\000\000\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\b\000\001\144\000\000\000\000@\000\000\001\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\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\018\016\004@(\012\0189\000\000\024\000\000\024\192\197\189\187\215\250\190\215?\191\251a\247\219\127\253\240\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\016\000\000\000\000\012\000(\000\000\000\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\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\000\000\000\000\000\000\000\000\000\000\000\000\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\197\189\187\215\250\190\215?\191\251a\247\219\127\252\252IK\184>\131\225a\192\255\182\007}\183\231\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000B6\016\004X(\223\018=\000@\248\000\000\024\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\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\197\189\187\215\250\190\215?\191\251a\247\219\127\252\252IK\184>\131\225a\192\255\182\007}\183\231\015#a\000E\130\141\241#\208\004\015\128\000\001\142\0002\016\004\012\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018-\000\016\026\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\000\000\000\231\245\187\199\234\191\247?\223\253o\247\139\127\254\247\223d@\130\2545\000\004\193\193\2388\176(4#a\000E\130\141\241#\208\004\015\128\000\001\142\000\000\000\000\000\000\000\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\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2402\016\004\b\000L\018m\000\016\024\000\000\016@\003!\000@\128\004\193\"\208\001\001\128\000\001\004\bz\146-\t\130M3\235\001\144\031`\006\241T#a\000E\130\141\241#\208\004\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\131\128\000p\016\000\197\194\000\001\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\016\000\000\0000\000\007\001\000\012\\ \000\016\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\016\000\000\000\0026\016\004X(\223\018=\000@\248\000\000\024\224\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\001\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\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\000\000\000\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\0026\016\004X(\223\018=\000@\248\000\000\024\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\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\016\000\000\000\0026\016\004X(\223\018=\000@\248\000\000\024\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\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\004\193\016\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\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\016\000H\017\0026\016\004X(\223\018=\000@\248\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b2\016\004\b\000L\018-\000\016\026\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\001\000\004\129\016\131!\000@\128\004\193\"\208\001\001\160\000\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\004\000\000\000\016\000H\017\b2\016\004\b\000L\018-\000\016\026\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\001\000\004\129\016\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\129\016\003!\000@\128\004\193\"\208\001\001\160\000\001\004\000\000\000\000\000\000\000\000@\000\000\001\000\004\129\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\130\001!\128\001\144\006`\000 \004\132\128\"\128\b\"\018\024\012\025\000f\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\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\128\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\0026\016\004X(\223\018=\000@\248\000\000\024\224\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\000\000\000\000\000\000\000\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\000\128\002\128\000\000\000\000\000\000\0026\016\004X(\223\018=\000@\248\000\000\024\224\128\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\b\000\t\176>\000\192@@>\002\001\000\005\134\003\163a\011E\130\141\241#\208\004\015\128\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\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#a\000E\130\141\241#\208\004\015\128\000\001\142\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\000\000\000\000\000\000\000\000\000\000\000\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\016\004@(\012\0189\000\000\024\000\000\024\192\197\189\187\215\250\190\215?\191\251a\247\219\127\253\240\000\000\000\000\000\b\000(\000\000\000\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\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\012[\219\189\127\171\237\243\251\255\182\031}\183\255\207#a\000E\130\141\241#\208\004\015\128\000\001\142\0002\016\004\012\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018-\000\016\026\000\000\017@\196\148\187\131\232>\022\028\015\249`w\139~p\252IK\184>\131\225a\192\255\150\007x\183\231\015#a\000E\130\141\241#\208\004\015\128\000\001\142\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\012[\219\189\127\171\237\243\251\255\182\031}\183\255\207#a\000E\130\141\241#\208\004\015\128\000\001\142\0002\016\004\012\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018-\000\016\026\000\000\017@\196\148\187\131\232>\022\028\015\249`w\139~p\252IK\184>\131\225a\192\255\150\007x\183\231\015#a\000E\130\141\241#\208\004\015\128\000\001\142\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\000\000\000\012[\219\189\127\171\237\243\251\255\182\031}\183\255\207#a\000E\130\141\241#\208\004\015\128\000\001\142\0002\016\004\012\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018-\000\016\026\000\000\017@\196\148\187\131\232>\022\028\015\249`w\139~p\252IK\184>\131\225a\192\255\150\007x\183\231\015\001\000\000\000\000\000\192\002\128\000\000\000\000\000\000\0026\016\004X(\223\018=\000@\248\000\000\024\224\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\012[\219\189\127\171\237\243\251\255\182\031}\183\255\207#a\000E\130\141\241#\208\004\015\128\000\001\142\0002\016\004\012\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018-\000\016\026\000\000\017@\196\148\187\131\232>\022\028\015\249`w\139~p\252IK\184>\131\225a\192\255\150\007x\183\231\015#a\000E\130\141\241#\208\004\015\128\000\001\142\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\197\189\187\215\250\190\223?\191\251a\247\219\127\252\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\128\000\001\000\000\000\000\000\000\000\000\000\000\000\000\012[\219\189\127\171\237\243\251\255\182\031}\183\255\207#a\000E\130\141\241#\208\004\015\128\000\001\142\0002\016\004\012\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018-\000\016\026\000\000\017@\196\148\187\131\232>\022\028\015\249`w\139~p\252IK\184>\131\225a\192\255\150\007x\183\231\015\000\000\000\000\000\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\b\000(\000\000\000\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\197\189\187\215\250\190\223?\191\251a\247\219\127\252\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\012[\219\189\127\171\237\243\251\255\182\031}\183\255\207#a\000E\130\141\241#\208\004\015\128\000\001\142\0002\016\004\012\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018-\000\016\026\000\000\017@\196\148\187\131\232>\022\028\015\249`w\139~p\252IK\184>\131\225a\192\255\150\007x\183\231\015#a\000E\130\141\241#\208\004\015\128\000\001\142\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\197\189\187\215\250\190\223?\191\251a\247\219\127\252\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\252[\219\189\127\171\237\243\251\255\182\031}\183\255\207#a\000E\130\141\241#\208\004\015\128\000\001\142\0002\016\004\012\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018-\000\016\026\000\000\017@\196\148\187\131\232>\022\028\015\249`w\139~p\252IK\184>\131\225a\192\255\150\007x\183\231\015\197\189\187\215\250\190\215?\191\251a\247\219\127\253\252[\219\189\127\171\237s\251\255\150\031x\183\255\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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#a\000E\130\141\241#\208\004\015\128\000\001\142\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\0026\016\004X(\223\018=\000@\248\000\000\024\224\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\000\000\000\000\000\016\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\0026\016\004X(\223\018=\000@\248\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\0026\016\004X(\223\018=\000@\248\000\000\024\224\128\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\012IK\184>\131\225a\192\255\150\007x\183\231\015\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#a\000E\130\141\241#\208\004\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130\141\241#\208\004\015\128\016\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\148\187\131\232>\022\028\015\249`w\139~p\240\000@\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\0002\016\004\012\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018-\000\016\026\000\000\017@\196\148\187\131\232>\022\028\015\249`w\139~p\2426\016\004X(\223\018=\000@\248\000\000\024\224\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\252IK\184>\131\225a\192\255\150\007x\183\231\015#a\000E\130\141\241#\208\004\015\128\000\001\142\0002\016\004\012\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018-\000\016\026\000\000\017@\196\148\187\131\232>\022\028\015\249`w\139~p\252IK\184>\131\225a\192\255\150\007x\183\231\015\000\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\004\129\016#a\000E\130\141\241#\208\004\015\128\000\001\142\000\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\1306\016\004X(\223\018=\000@\248\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\016\004\b\000L\018-\000\016\024\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\129!\bD\002\128\193#\144\000\001\128\000\001\140\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\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\206\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\0026\016$X(\223\018=\000@\248\000\000\024\224\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\b\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\001!\000D\002\128\193#\144\000\001\128\000\001\140\004\000\000\000\000\000\000\000\000\0000\000\005\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\128\000\017\000\000\000\000\000\000\000\000\016\000$\000\b\000\001\016\000\000\000\000\000\000\000\001\000\000\000\000\128\000\017\000\000\000\000\000\000\000\000\000\000\000\000\b\016\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\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\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\0000\000\005\000\000\000\001\000\000\000\000\000\192#\128\000\000\000\000\000\000\012\000\001\016\000\000\000\000\000\0000\001\005\002@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012IK\184>\131\225a\192\255\182\007}\183\231\015\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\016\004\012\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018-\000\016\026\000\000\017@\128\000\017\000\000\000\000\000\000\000@\000\000@\016\b\000\t\016>\000\192@@>\006\001\000\005\130\003\128\000\016\000\000\000\000\000\000\000@\000\000\000\000\b\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\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\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$\004\000\000\b\016@\000\001\000\000\000\000\000\001\002@@\000\000\129\000\000\000\016\000\000\000\000\000\000\000\000\000\000\b\000@\000\128\000\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000@\000\000\004\000\000\000\000\000\000\000\0000\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\b\000\000\000\000\001\000\000@\000\001\002@@\000\000\129\000\000\000\016\000\000\000\000\bH\002(\000\130\t!\192\001\144\006`\000 \004\129\002@@\000 \193\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\004\000\000\000\016\000\000\000\000\016$\004\000\000\b\016\000\000\001\000\000\000\000\000\132\128\"\128\b \146\028\000\025\000f\000\002\000@\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\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\016\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \000\000@\000\128\006\000\000\000\128\000\000\000\000\018\000\000\000\000\b\000`\000\000\b\000\000\000\000\001 \000\000\000\000\128\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\b\000\000\000\000\000\000\000\000\000\000\b\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\004\000\000\004\000\b\000\000\000\004\000\0000\000\006\000\000\012\\(\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\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\001\000\000\000\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\000\000\001\016\000\000\000\000@\000\002\000\000\000\000\016\000\000\017\000\000\000\000\004\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\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\000\000\000\000\017\000\000\000\000\004\000\000 \000\000\000\001\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\016\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\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\0000\000\006\000\000\012\\ \000\016\000\000\000\000\000\133\128\162\128\b0R\028\000\025\000f\001\002\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\128\162\128\b R\028\000\025\000f\001\002\016@0\000\006\000\000\012\\(\000\016\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\016\000\000\0000\000\006\000\000\012\\(\000\016\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\0000\000\006\000\000\012\\ \000\016\000\000\000\000\000\133\128\"\128\b R\028\000\025\000f\001\002\016HX\n(\000\131\005!\192\001\144\006`\016!\004\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\0000\000\006\000\000\012\\ \000\016\000\000\000\000\000\133\128\"\128\b R\028\000\025\000f\001\002\016HX\n(\000\131\005!\192\001\144\006`\016!\004\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\128\000\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\000\000\000\000\000\000\000\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\016D\b\000L\018m\000\016\024\000\000\016@\003!\004@\128\004\193\"\208\001\001\128\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000@\128\004\193\"\208\001\001\128\000\001\004\bH\002(\000\130\001!\128\001\144\006`\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\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\003!\000@\192\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193\"\208\001\001\160\000\001\020\012IK\184>\131\225a\192\255\150\007x\183\231\015\196\148\187\131\232>\022\028\015\249`w\139~p\240\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\129\002@@@\000\129\004\000\000\016\000\000\000\000\000\016$\004\000\000\b\016@\000\001\000\000\000\000\000\001\002@@\000\000\129\000\000\000\016\000\000\000\000\000\000\000\128\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\b\016$\004\000\002\012\016\000\000\001\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\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\b\000\000\128\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\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\0002\016\004\b\000L\018-\000\016\026\000\000\017@\196\148\187\131\232>\022\028\015\249`w\139~p\2402\016\004\012\000L\018m\000\016\026\000\000\017@\003!\000@\128\004\193&\208\001\001\160\000\001\020\0002\016\004\b\000L\018-\000\016\026\000\000\017@\128\000\b\000\000\000\000\000\000\000\000\000\000d\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\b\016$\004\000\002\012\016\000\000\001\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\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\b\016$\004\000\002\012\016\000\000\001\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\001\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\016$\004\000\002\012\016\000\000\001\000\000\000\000\000@\000\b\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\128\000\136\003\224\012\004\004\003\224 \016\000| 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\b\016$\004\000\002\012\016\000\000\001\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\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\b\016$\004\000\002\012\016\000\000\001\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\001\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\016$\004\000\002\012\016\000\000\001\000\000\000\000\000@\000\b\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\132\128\"\128\b \146\028\000\017\000f\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\002@@\000\000\129\004\000\000\016\000\000\000\000\000\016$\004\000\000\b\016\000\000\001\000\000\000\000\000\132\128\"\128\b \146\028\000\017\000f\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\004\000@\000\000\004\000\000\000\000\000\000\000\000\016\000\000\004\000\004\000@\000\000\000\000\000\000\000\001\000\000\000\000\000@\004\000\000\000\000\000\000\000\000\016\000\000\000\000\004\000\000\000\000\000\000\000\000\000\132\128\"\128\b \018\024\000\017\000v\000\002\000\000\016$\004\000\002\012\016\000\000\001\000\000\000\000\000\196\128\"\128\b0\018\028\000\017\000f\000\002\000\bH\002(\000\130\001!\128\001\016\006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000@\000\000\000\000@\000\000\000\000\000\000\000\003\000\004\000\000\000\000\000\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\128\000\000\000\000\016\000\004\000\bH\002(\000\130\001!\128\001\016\006`\000 \004\132\128\"\128\b \018\016\000\017\000f\000\002\000@0\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\b\000\000\000\000\001\000\000@\000\132\128\"\128\b \018\024\000\017\000f\000\002\000HH\002(\000\130\001!\000\001\016\006`\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\128\000\000\000\000\016\000\004\000\bH\002(\000\130\001!\128\001\016\006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\223d@\130\2545\000\004\193\193\2388\176(4'\225\"\213\138\173\2433\208\020\015\224\000\007\142\0002\016\004\b\000L\018-\000\016\026\000\000\016@\016\000\002\000\000\000\000\004\000\000\000\000\000H\017\0026\016\004X(\223\018=\000@\248\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\223d@\130\2545\000\004\193\193\2388\176(4'\225\"\213\138\173\2433\208\020\015\224\000\007\142\000\016$\004\004\000\b\016@\000\001\000\000\000\000\000\001\002@@\000\000\129\004\000\000\016\000\000\000\000\000\016$\004\000\000\b\016\000\000\001\000\000\000\000\000\132\128\"\128\b \146\028\000\017\000f\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\192\004\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\192\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\000p\016\000\197\194\000\001\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\001\000\000\000\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\bH\002(\000\130!!\192\193\016\007`\016 \000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\132\129\"\128\b \018\024\000\017\000f\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b \018\024\000\017\000f\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b\"\018\028\012\017\000v\001\002\000\000\018\000\000\004\000\b\000`\000\000\b\000\000\000\000\001 \000\000\000\000\128\006\000\000\000\128\000\000\000\000\018\000\000\000\000\b\000 \000\000\b\000\000\000\000\132\128\"\128\012 \018\028\000\017\000v\000\006\000\000\018\000\000\000\000\b\000 \000\000\b\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\b\000\bH\002(\000\130\001!\192\001\016\006a\000!\000\001\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\000\132\128\"\128\b \018\028\000\017\000f\000\002\000\bH\002(\000\130\001!\128\001\016\006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\130\001!\192\001\016\006`\000 \000\132\128\"\128\b \018\024\000\017\000f\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\128\"\240\024 \199\210\000\017\000`\000\002\000\bH\002(\000\130\000!\000\001\000\006`\000 \000\001\000\000\000@\000\000\004\000\000\000\000\000\000\b\000\016\000\000\004\000\000\000@\000\000\000\000\000\000\000\001\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b \130\024\000\016\000f\016\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b \130\024\000\016\000f\016\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\004\000@\000\000\004\000\000\000\000\000\000\000\000\016\000\000\004\000\004\000@\000\000\000\000\000\000\000\001\000\000\000\000\000@\004\000\000\000\000\000\000\000\000\016\000\000\000\000\004\000\000\000\000\000\000\000\000\000\132\128\"\128\b \002\024\000\016\000v\000\018\000\000\016$\004\000\002\012\016\000\000\001\000\000\000\000\000\196\128\"\128\b0\002\028\000\016\000f\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\004\000\000\000\000\004\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\128\000\000\000\000\016\000\020\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\bH\002(\000\130\b!\128\001\000\006a\000 \000\000\000\000\000\000\000\000\000\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\004\000\000\016$\004\000\002\012\016\000\000\001\000\000\000\000\000\196\128\"\128\b0\002\028\000\016\000f\000\002\000HH\002(\000\130\000!\000\001\000\006`\000 \004\003\000\000\000\000\000\000\004\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\004\000\000\016$\004\000\002\012\016\000\000\001\000\000\000\000\000\196\128\"\128\b0\002\028\000\016\000f\000\002\000HH\002(\000\130\000!\000\001\000\006`\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\128\000\000\000\000\016\000\004\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\bH\002(\000\130\000!\128\001\000\006a\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016$\004\000\002\012\016\000\000\001\000\000\000\000\000\196\128\"\128\b0\002\028\000\016\000f\000\002\000\bH\002(\000\130\000!\128\001\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\b\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\000\000\000\000\000\000\000\000\001\002@@@ \193\004\000\000\016\000\000\000\000\000\016$\004\000\002\012\016@\000\001\000\000\000\000\000\001\002@@\000 \193\000\000\000\016\000\000\000\000\012H\002(\000\131\000!\192\001\000\006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\004\000\b\000`\000\000\b\000\000\000\000\001 \000\000\000\000\128\006\000\000\000\128\000\000\000\000\018\000\000\000\000\b\000 \000\000\b\000\000\000\000\132\128\"\128\012 \002\028\000\016\000f\000\006\000\000\136\000\000\004\000\004\000`\000\000\000\000\000\000\000\b\000\000\000@\000@\006\000\000\000\000\000\000\000\000\128\000\000\000\000\004\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@\002\000\000\000\000\000\000\000\000 \000\002H\000@\000\000\b\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\000\000\000\000\000\000\000\000\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\001\000\000@\002\000Q\002\000\000\000\000\000\000\000\b@\000\b\000\000(!@@\000\000 \016\000\000\132\000\000\128\000\002\130\016\004\000\000\002\001\000\000\0000\000\007\001\000\012\\ \000\016\000\000\000\000\000\000\000\b\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\132\000\000\128\000\002\002\016\004\000\000\002\001\000\000\000\128\000\000\000\004\004\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\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\128\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\004\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\000\007\001\000\012\\ \000\016\000\000\000\000\000\132\000\000\128\000\002\002\028\004\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000@\004\000\000\000\000\000\000\000\000\128\000\000\128\000\004\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\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\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\b@\000\b\000\000 !\128@\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\004\000 \005\016`\000\000\000\000\000\000\000\001\000\000@\002\000Q\002\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\004\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\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\000\001\000\000@\002\000Q\002\000\000\000\000\000\000\000\0000\000\007\001\000\012\\ \000\016\000\000\000\000\000\000\000\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\012\\ \000\016\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\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\132\128*\128\b\"\018\028\004\017\000v\001\002\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\001\000\000\000\001\000\000@\002\000Q\002\000\000\000\000\000\000\000\bH\002\168\000\130!!\192A\016\007`\016 \004\132\000\000\128\000\002\002\028\004\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000\197\198\000\001\000\000\000\000\000\0000\000\007\001\000\012\\ \000\016\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\016\000\000\000\0000\000\007\001\000\012\\ \000\016\000\000\000\000\000\132\000\000\128\000\002\002\028\012\000\000\002\001\000\000\b@\000\b\000\000 !\128@\000\000 \016\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\132\000\000\128\000\002\002\024\004\000\000\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\b@\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\bH\002(\000\130\001!\192\001\016\006`\000 \004\132\128\"\128\b \018\016\000\017\000f\000\002\000@\128\000\000\000\000\004\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\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\000\000\000\001\000\000@\002\000Q\002\000\000\000\000\000\000\000\bH\002(\000\130\001!\192\001\016\006`\000 \004\132\128\"\128\b \018\016\000\017\000f\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\128\000\000\000\000\004\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\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\003\000\000p\018\000\213\194\000\001\000\000\000\000\000\bX\n\168\000\131\004!\192\001\016\007`\000`\004\003\000\000`\000\000\197\194\000\001\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\003\000\000p\018\000\213\194\000\001\000\000\000\000\000\0000\000\007\001\000\012\\ \000\016\000\000\000\001@\000\000\002\000\000\000\000\004\000\000\000\000\000@\016\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\003\000\000p\018\000\213\194\000\001\000\000\000\000\000\0000\000\006\000\000\012\\ \000\016\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\0000\000\007\001 \r\\ \000\016\000\000\000\000\000\133\128\170\128\b0B\028\000\017\000v\000\002\000HX\n\168\000\131\004!\192\001\016\007`\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002\168\000\130\000!\192\001\000\007`\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\132\128\"\128\b \002\024\000\016\000f\000\002\000HH\002(\000\130\000!\000\001\000\006`\000 \004\b\000\000\000\000\000@\006\000\000\000\000\000\000\000\000\128\000\000\000\000\004\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\004\000\0000\000\007\001 \r\\ \000\016\000\000\000\000\000\132\128\"\128\b \002\024\000\016\000f\000\002\000HH\002(\000\130\000!\000\001\000\006`\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\bH\002(\000\130\000!\000\001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\130\000!\128\001\000\006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\130\000!\000\001\000\006`\000 \004\002\000\000$\128\004\192\004\000\128\000\000\000\000\b\000 \000\002H\000L\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\bH\002(\000\130\001!\128\001\016\007`\016 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\130\001!\128\001\016\006`\016 \004\132\128\"\128\b \018\016\000\017\000f\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\bH\002(\000\130\000!\000\001\000\006`\000 \004\002\000\000$\128\004\192\004\000\128\000\000\000\000\b\000 \000\002H\000L\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\000\000\000\000\001\000\000\003 \000x\016\000\197\194\128\001\000\128 \000\016\0000\000'\001\000\012\\ \000\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\160\"\128\b \146\026\000\017\000\230\001\002\000HH\002(\000\194\001!\192\001\016\006`\016a\004\132\128\"\128\b \018\028\000\017\000f\001\002\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b \018\024\000\017\000f\001\002\016@\018\000\000\000\000\b\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\132\128\"\128\b \002\024\000\016\000f\001\002\000HH\002(\000\130\000!\000\001\000\006`\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\bH\002(\000\130\001!\192\001\016\007`\016 \004\001 \000\b\000\000\128\002\128\000\000\128 \000\016\000\018\000\000\000\000\b\000(\000\000\b\002\000\001\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\bH\002(\000\194\001!\192\001\016\006`\016a\004\132\128\"\128\b \018\028\000\017\000f\001\002\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\136\000\000\004\000\004\000`\000\000\000\000\000\000\000\b\000\000\000\000\000@\006\000\000\000\000\000\000\000\000\128\000\000\000\000\004\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\003)\000P\144\004\193\"\176\001\001\144\000\005\004\000\016\000\004\000 \r\016 \000\000@\000\000\000\000\132\000\000\128\000\002\130\020\012\000\000\002\001\000\000\b@\000\b\000\000(!\000\192\000\000 \016\000\000\132\000\000\128\000\002\002\016\012\000\000\002\001\000\000\000\128\000\000\000\004\004\000@\000\000\000\000\000\000\128\000\000\000\000\000@@\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\002@\000#a\000E\130\141\241#\208\004\015\128\000\001\142\000\000\000\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\0026\016\004X(\223\018=\000@\248\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b@\000\b\000\000 !\128\192\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\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\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\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\b@\000\b\000\000 !\192\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\001\000\002@\000#a\000E\130\141\241#\208\004\015\128\000\001\142\000\000\000\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\0026\016\004X(\223\018=\000@\248\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\128\000\004\000@\000\000\000\000\000\000\128\000\000\000\b\000\000@\004\000\000\000\000\000\000\000\000\000\000\000\128\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\004\000\000\000\000\000\000\000\000\000\003)\000P\144\004\193\"\176\001\001\144\000\005\004\0008\000\007\001\000\012\\ \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\001\000\000\000\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\000\000\000\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\0026\016\004X(\223\018=\000@\248\000\000\024\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\132\000\000\128\000\002\002\024\012\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\128\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\128\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\004\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\000\007\001\000\012\\ \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\004\000\000\000\000\000\000\000\000\000\003)\000P\144\004\193\"\176\001\001\144\000\005\004\0008\000\007\001\000\012\\ \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\001\000\000\000\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\001\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\000\000\000\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\0026\016\004X(\223\018=\000@\248\000\000\024\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#a\000E\130\141\241'\208\004\015\128\000\001\142\0026\016\004X(\223\018=\000@\248\000\000\024\224\132\000\000\128\000\002\002\024\012\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000@\002\000\209\006\000\000\004\000\000\000\b\000\016\000\004\000 \r\016`\000\000@\000\000\000\000\001\000\000@\002\000\209\002\000\000\004\000\000\000\000\000\016\000\004\000 \r\016 \000\000@\000\000\000\000\003!\004@\200\004\193&\208\001\001\128\000\001\004\007\223d@\130\2545\000\004\193\193\2388\176(4\003!\004@\128\004\193&\208\001\001\128\000\001\004\0002\016D\b\000L\018-\000\016\024\000\000\016@\003!\000@\128\004\193\"\208\001\001\128\000\001\004\000\000\000\000\000\000\000\000\128\000\128\000\000\000\000\004\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\128\001\000\000\000\000\000\000\004\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\b\000\000\016\000\000\000\016\000\004\000 \r\016 \000\000@\000\000\000\000\003\000\000p\016\000\197\194\000\001\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\003)\000P\144\004\193&\176\001\001\128\000\001\004\0002\144\005\t\000L\018+\000\016\024\000\000\016@\003)\000P\144\020\193\"\176\001\001\128\000\001\004\000\016\000\004\000 \r\016 \000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000@\016\000\004\000 \r\016 \000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bZ\146\173A\170-3\251\193\016\030`\016x\212\133\169*\212\026\162\211?\188\017\001\230\001\007\141@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128*\128\b\"\018\028\012\017\000f\001\006\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\bH\002\168\000\130!!\192\193\016\006`\016`\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\132\128*\128\b\"\018\028\012\017\000f\001\006\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\b\000\000\016\000\000\000\016\000\004\000 \r\016 \000\000@\000\000\000\000\132\128*\128\b\"\018\028\012\017\000f\001\006\001@2\016D\b\000L\018-\000\016\024\000\000\016@\003!\000@\128\004\193\"\208\001\001\128\000\001\004\000\000\000\000\000\000\000\000\128\000\128\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\003\000\000p\018\000\213\194\000\001\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\132\000\000\128\000\002\002\028\012\000\000\002\001\000\001\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\b@\000\b\000\000 !\128\192\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\004\000 \r\016 \000\000@\000\000\000\000\132\000\000\128\000\002\002\028\012\000\000\002\001\000\001\b@\000\b\000\000 !\128\192\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\012\\`\000\016\000\000\000\000\000\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\b@\000\b\000\000 !\128\192\000\000 \016\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\132\000\000\128\000\002\002\024\012\000\000\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\b@\000\b\000\000 !\000\192\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\130\001!\192\001\016\006`\000 \004\003\000\000p\018\000\213\194\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\001\000\000@\002\000\209\002\000\000\004\000\000\000\000\bH\002(\000\130\001!\192\001\016\006`\000 \004\003)\000P\144\004\193\"\176\001\001\144\000\005\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b \018\024\000\017\000f\000\002\000HH\002(\000\130\001!\000\001\016\006`\000 \004\b\000\000\000\000\000@\006\000\000\000\000\000\000\000\000\128\000\000\000\000\004\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\003)\000P\144\004\193\"\176\001\001\144\000\005\004\bH\002(\000\130\001!\128\001\016\006`\000 \004\132\128\"\128\b \018\016\000\017\000f\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\132\128\"\128\b \018\016\000\016\000f\000\002\000\0002\016D\012\000L\018m\000\016\024\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\132\128\"\128\b \018\016\000\017\000f\000\002\000HH\002(\000\130\001!\128\001\016\006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\130\001!\000\001\016\006`\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\132\128\"\128\b \018\024\000\016\000f\000\002\000\bH\002(\000\130\001!\000\001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\130\001!\000\001\144\006`\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\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\132\128\"\128\b \018\024\000\016\000f\000\002\000\bH\002(\000\130\001!\000\001\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012H\002\168\000\131\t!\192\001\016\007`\002 \004\192\000\b\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\000\000\000\000\000\000\000\000\128\000\000\000\000@\000\000\000\000\004\193\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\012\\ \000\016\000\000\000\000\000\000\000\b\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\132\000\000\128\000\002\002\016\012\000\000\002\001\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\b2\016\004\b\000L\018-\000\016\026\000\000\017@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012IK\184>\131\225a\192\255\150\007x\183\231\015\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\001 \000\b\000\000\128\002\000\000\000\128\000\000\016\000\018\000\000\000\000\b\000 \000\000\b\000\000\001\000\001 \000\000\000\000\128\002\000\000\000\128\000\000\000\bH\002(\000\194\001!\192\001\016\007`\000a\000\001 \000\000\000\000\128\002\000\000\000\128\000\000\000\bH\002(\000\130\001!\192\001\016\006`\000!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\130\001!\128\001\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\194\001!\192\001\016\007`\000a\000\001 \000\000\000\000\128\002\000\000\000\128\000\000\000\bH\002(\000\130\001!\192\001\016\006`\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\000\132\128\"\130\b \018\024\000\017\000v\001\002\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b \018\024\000\017\000f\001\002\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\018\000\000\128\000\b\000 \000\000\b\000\000\001\000\001 \000\000\000\000\128\002\000\000\000\128\000\000\016\bH\002(\000\130\001!\128\001\016\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\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\002\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000 \000\000\000\000\0000\000\006\000\000\012\\`\000\018\000\002\000\000\000\003\000\000`\000\000\197\194\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\016\001\000\000\000\004\000\000\000\018\000\000\000\000\000\003\000\000`\000\000\197\194\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\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\001\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000\197\194\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\b\000\000\000\000\000\000\000\000\000\000@\000\000\016\000\000\000\000\004\000\000\000\016\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\0000\000\007\001\000\012\\ \000\016\000\000\000\000\000\000\000\b\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\128\000\000\000\000@\000\000\000\000\004\000\000\003\000\000p\016\000\197\194\000\001\000\000\000\000\000\000\000\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\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\132\128\"\128\b \018\028\000\017\000f\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\0002\000\007\129\000\012\\(\000\016\b\002\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\130\000!\128\001\000\006`\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\001 \000\b\000\000\128\002\000\000\000\128\000\000\016\000\018\000\000\000\000\b\000 \000\000\b\000\000\001\000\132\128\"\128\b \002\024\000\016\000f\000\002\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\016\000\000\000\000\004\000\000\000\000\000\000\000\000\000\132\128\"\130\b \002\024\000\016\000v\001\018\000@2\000\007\129\000\012\\(\000\016\b\002\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\130\000!\128\001\000\006`\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\001 \000\b\000\000\128\002\000\000\000\128\000\000\016\000\018\000\000\000\000\b\000 \000\000\b\000\000\001\000\132\128\"\128\b \002\024\000\016\000f\000\002\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\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\bH\002(\000\130\001!\128\001\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0026\016\004X(\223\018=\000@\248\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\0026\016\004X(\223\018=\000@\248\000\000\024\224\128\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\004\128 \128\b \002\016\000\016\000d\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\001 \000\000\000\000\192\002\000\000\000\128\000\000\000\b\000\b\128~\002\194@\000>\"\001\004\001\130\139\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\128\000\000\000\000\000\016\000\000\000\016\000\000\000\000\012\000\000\000\000\000\000\000\000\000\128\000\128\007\224,$\000\003\226 \016@\024(\176\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001 \000\000\000\000\128\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000\197\194\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\004\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130\141\241#\208\004\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\128\000\000\000\000\004\016\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\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\002@@\000\000\129\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\128\004\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\002@@\000 \193\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\004\000\000\000\004\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000@\128\004\193\"\208\001\001\160\000\001\004\000\000\000\000\000\000\000\000@\000\000\000@\004\129\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\001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\012\000\000\000\000\000\000\000\000\000'\225 \197\138\173\2433\208\021\015\228\000\003\142\000\016\000\000\000\000\004\000\000\000\000\000\000\000\000\000\005\161 \128\b \210\016\016\017\000\228\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\004\128 \128\b \018\016\000\017\000d\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\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\000H\002\b\000\130\001!\000\001\000\006\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\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\225 \197\138\173\2433\208\021\015\228\000\003\142\002~\018\012X\170\2233=\001P\254@\0008\224\004\128 \128\b \018\016\000\017\000d\000\002\000\000H\002\b\000\130\001!\000\001\016\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\000\000\000\000\000\004\128 \128\b \018\024\000\017\000d\000\002\000\000H\002\b\000\130\001!\000\001\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\002\b\000\130\001!\128\001\016\006@\000 \000\004\128 \128\b \018\016\000\017\000d\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")
  
  and start =
    15
  
  and action =
    ((16, "kby\132n\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021Hn\030\000\000\000\000\020Xn\030kb\020\182\000-\000[\164L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\138\001\208\001d\000\000\002t\001\188\000\000\003\214\003$\007\140\000\000\005\244\003r\b\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\220\000\000\000\000\000\000\002\216tj\000\000\000\000\000\000\006&\000\000\000\000zh\0046\0046\000\000\000\000\179N\006&\000\000y\140\020Xj6\164\228\005\236\000\000\020X\129&o8\020Xzx\000\000\005\144\000\000l(\006\136\000\000kJ\000\000\021\224\000\000\000\000\003\224\000\000\006&\000\000\000\000\000\000\006\242\000\000kJ\000\000\006\214\194L\166\164\173&\000\000\203\252\205\226\000\000t\242\132\164\000\000\132\"\0218tjn\030kb\000\000\000\000o8\020X{\194l(\007\030\190\180\000\000\185\024n\030kby\132\020X\000\000\000\000\016xy~\020X\130\172\131\142\000\000\001\026\000\000\000\000\004\250\000\000\000\000qn\001\026\025\130\005\200\b$\000\000\000\000\002\026\000\000j6\005\248\005\228\020X\023.\020Xkbkb\000\000\000\000\000\000u\254u\254\020X\023.\b`\000\000q\152\020X\129&\023\022\bZ\b\004\000\000\000\220\b\022\000\000\000\000\000\000\000\000\000\000\020X\000\000\000\000\000\000y\132\020X\000\000i\134\191:}\252\000\248\129\218\131\142\193\254\194\230\000\000\b\004\000\000\007:\000\000\000\000\020\250\177\148~X\000\000\177\148~X\000\000\177\148\177\148\000b\006\n\0008\000\000\020\190\000\000\bL\000\000\000\000\bL\000\000\000\000\000\000\177\148\006&\000\000\000\000\130\164\177\148~\224\132\164\000\000\0072\028\254\179N\132\164\011\228\177\148\000\000\000\000\000\000\000\000\000\000\000\000v\204\132\164w\194\000b\000\000\000\000\000\000\004\006\000\000\000\000\162&\012$\006&\000\000\000\000x\184\000\000\000\000\000\000\003b\000\000\177\148\000\000\001\000\180F\000\000\177\148\005\216\177\148\023\224\000\000\024\216\000\000\006\208\006\230\000\000\011\132\177\148\t\206\000\000\t\246\000\000\t\184\000\000\000\000\005\016\000\000\000\000\000\000\029\n\030D\131\142yp\020X\131\142\000\000\000b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000u\220\027v\000\000\000\000\000\000\001\244%\182\188\132\000\000\000\000yp\020X\131\142\000\000\000\000\207p\131\142\207\184\194\230\000\000\208N\000\000\131\142\000\000\000\000\132zqn\001\154\001\154\000\000\014\020\131\142\000\000\000\000\000\000\004\250\014,\000\000h\196\000\000\000\000\195.\000\000\208`\177\148\000\000\004R\000\000\000\000\195\186\000\000\208\150\012\226\000\000\000\000\000\000\000\000\014\178\000\000\023\160\000\000\000\000\195\186\000\000\004\224\000\000\000\000l\000\189\016\000\000\000\000j&\024t\019\252\025\"\000\000\000\000\000\000\000\000\002>\000\000\000\000\162\240\n\238\014\168\000\017\177\148\000\226\015t\000\000\000\000\011\176\014\168\005\"\000\000y\132yvu\254\020X\023.\000-\000\018\r\138\000\000\015Lj6\131\196\015\212j6\000-\000\018\000\018j6\000\000\178\132\t`l(\b\004\bT\209 \000\000\177\148\173\198\177\148\167\132\174f\177\148\006`\177\148\175\000\000\000\012\250\tD\nDj6\179$\000\000\b*\t\190\165\006\000\000\000\000\000\000\000\000j6\179|j6\180\028\020d\0008\168$\b\022\0008\168|\000\000\180t\t`\000\000\000\000\000\000\181\020\002\152\000\000\000\000\006x\000\000\007|\023.\000\000\165\196q\152\000\000\0268\000\000\000\000j6\003\144\000\000\000\000\000\000\000\000\163\168\000\000\001\248\000\000\127\172\t \0032\133<\0226\131\132y\132\020Xo\244y\132\020X\016x\016x\000\000\000\000\000\000\000\000\001\240\025\030jt\000\000{,{\224u\254\020X\023.\007hnB\000\000\007p\000\000|\148}H\196\002qZ\177\148\006p\000\000y\132\020X\000\000yp\020X\193\254\131\142ih\000\000y\132\020Xo\b\001\b\000\000\131\142ih\177\148\002\210\005\"\016r\000\000\000\000\000\000rZ\001\154\016\136\000\000\131\142\000\000\000\000\175\140\000\000\000\000\t\014\132\164\000b\016\200\133\240yp\020X\193\254\026\022\134\164yp\020X\193\254\027\014\131\142\000\000\000\000yp\020X\131\142\026J\000\000y\132\020X\016x\0226\016x\002\232\021\238sHyp\020X\193\254m\200sH\135Xyp\020X\193\254\000\000\016x\r\160\016\190\000*\177\180\000\000\021\146\179N\000\000\026\"\177\148\028\018\016\250\000\000\000\000\016\206\000\000\016x\003\224\017\004\000\000&\174\000\000\n\202\000\000\000\000\028\006\136\012yp\020X\193\254\028\254\017p\023.\000\000\000\000\000\000\000\000\004\234\000\000\000\000\000\000\029\246\136\192yp\020X\193\254\030\238\031\230\137typ\020X\193\254 \222!\214\000\000\018h\024&\138(yp\020X\193\254\000\000\000\000\000\000n\030\000\000\000\000\000\000\138\220yp\020X\193\254\"\206#\198\139\144yp\020X\193\254$\190%\182\140Dyp\020X\193\254&\174'\166\140\248yp\020X\193\254(\158)\150\141\172yp\020X\193\254*\142+\134\142`yp\020X\193\254,~-v\143\020yp\020X\193\254.n/f\143\200yp\020X\193\2540^1V\144|yp\020X\193\2542N3F\1450yp\020X\193\2544>56\145\228yp\020X\193\2546.7&\146\152yp\020X\193\2548\0309\022\147Lyp\020X\193\254:\014;\006\148\000yp\020X\193\254;\254<\246\148\180yp\020X\193\254=\238>\230\149hyp\020X\193\254?\222@\214\150\028yp\020X\193\254A\206B\198\150\208yp\020X\193\254C\190D\182\151\132yp\020X\193\254E\174F\166\1528yp\020X\193\254G\158H\150\020X\131\142o\b\000\000\000\000tj\001\154\016\182\177\148\bP\000\000\000\000\nF\006&\000\000\177\148\b\162\000\000\000\000\017\"\000\000\000\000\000\000\004\164\000\000\017,\133\240\000\000\000\000\000\000q\154\177\148\t\154\000\000\000\000\0292\000\000\000\000\196\142\000\000\030*\196\214\000\000\031\"\197b\000\000 \026\014\210\000\000\000\000\000\000\000\000!\018\131\142\"\n\000\000\185\004\185\004\000\000\000\000\000\000I\142\000\000\006\212\000\000\000\000\000\000\011\188\000\000\000\000\000\220\025\158sH\011\172\000\000\000\000\166ft\014\000\000sH\t\210\000\000\000\000sH\012\140\000\000\000\000\000\000\016x\004\216\026\bsH\012\164\000\000\005\208\152\236yp\020X\193\254J\134K~sH\r\156\000\000\006\200\153\160yp\020X\193\254LvMnsH\r\172\000\000\007\192\154Typ\020X\193\254NfO^'\166\000\000\r\186\b\184\155\byp\020X\193\254PVQN\000\000\014\144\t\176\155\188yp\020X\193\254RFS>\000\000\014\250\n\168\156pyp\020X\193\254T6U.\007H\026\198sH\015L\011\160\157$yp\020X\193\254V&W\030sH\014\148\012\152\157\216yp\020X\193\254X\022Y\014sH\015\134\r\144\158\140yp\020X\193\254Z\006Z\254\014\136\159@yp\020X\193\254[\246\\\238\015\128\019`\000\000\000\000\000\000\000\000\015\162\000\000sH\014\170\000\000sH\015\242\000\000\t\236\000\000\000\000\000\000\017J\000\000\n\224\000\000\000\000]\230\000\000\017\196\000\000\000\000\000\000\000\000\000\000\000\000^\222\018\014\159\244yp\020X\193\254_\214\160\168yp\020X\193\254`\206a\198b\190\161\\yp\020X\193\254c\182d\174\000\000#\002\000\000\000\000\005\134\000\000\000\000\131\142\000\000\000\000\191\150\016D\000\000\000\000\127\172\000\000\b\218\000\000\000\000\128r\000\000\015\140\000\000\000\000\005@\011\194\000\000\000\000\0226\022\028\b\004\000\000j\228\031<\027\\\021\218\000\000\000\000\016\148\000\000\000\000\001\238\026\022\133D\000\000\025\030\000\000\n\246\000\000\000\000\016\234\000\000\000\000yp\020X\193\254i*\175\244\t\002\005@\000\000\000\000\012H\000\000\000\000\016\128\000\000\000\000\000\000\020X\023.\003\202\000\000\000\000\023\022\005\200\b$\b`\023.\192&\162\016\000\000\020X\023.\192\164\017\162\000\000\000\000\b`\000\000n\174\019\248\023\228\000\000\011\220\0184\000\000\018H\000V\132\164\000\244\000\000\018\024\017\170tj\011,\177\148\026\160\020F\016V\003\b\000\000\029\136\018d\000\000\000\244\000\000\000\000\018|\132\164\169\028\000\000\176\146\168N\012\156\132\164\018J\132\164\181\146\169\188\018\\\132\164\182\016\170\\\001\024\018\030\000\000\000\000\000\000\020X\200\164\000\000\131\142\185\004\000\000\000\000\018\146\000\000\000\000\000\000yp\020X\193\254e\166f\158\000\000\015\228\000\000\000\000\000\000u\254\020X\023.\003\202\000\000\163\148\000\000\bh\000\000\000*\000\000\000\000\018\158\000\000\018\202\193\254g\150yp\020X\193\254\022`\000\000\000\000\165\228\000\000\t`\000\000\167\164\000\000\020X\000\000j6\nX\000\000\176\250\000\000\000\000\171(\000\000\011P\000\000\171\196\000\000\025\198\000\000j6\012H\000\000\200\234\000\000\020X\023.\200\234\000\000\023l\023\022\bZ\006&\202\150j6\197\168\185\004\000\000\005\200\tR\b$\b`\185\004\204p\005\200\b$\b`\185\004\204p\000\000\000\000\b`\185\004\000\000n\030kb\131\142\027B\000\000\000\000n\030kbu\254\020X\023.\200\234\000\000\020\182\000-\000[\017\246tj\r(\177\148\185\150\018$\018\204\203\020\000\000\185\004\000\000\186\018n\174\019\248\023\228\192\252\024\220\r\204\198$\n<\018*\020X\185\004\000\000\020X\185\004\000\000\177\180\174\202\019\134\003\214\005\200\0008w\140\000\000\005\200\0008w\140\000\000\026\178\023\022\bZ\006&x\130j6\185\024\000\000\005\200\nJ\022\214\012\156\000\000w\140\000\000\b$\0184j6\185\024\206*\005\200\b$\0186j6\185\024\206*\000\000\000\000\tX\r\148\000\000\205j\000\000j6\203lw\140\000\000\nP\r\148\000\000y\140\020Xj6\185\024\000\000n\174\019\248\023\228\186\142kr\024\014\019\170\002\142\000\000\rbkJ\000\017\000\000\018\176\018^\024\196\020X\162\190\177\148\n@\000\000\135X\012\238\004\212\r\230\000\000\014\132\000\000\018\190\018X\177\148w\202\000\000\0032\002\228\011\016\000\000\014\240\000\000\018\214\018ztjw\202\000\000\020X\024\196\019\014\011^\005\200\000\000\016\176\024\196\177\148\012\020\000b\000\000\177\148\004\018\007\242\000\000\000\000\182j\000\000\000\000\016\204\024\196\182\232w\202\000\000\020X\177\148\015d\177\148tXw\202\000\000\016\232\000\000\000\000w\202\000\000\000\000\135X\000\000\185\024\204~\019\170\002\142\rb\019\002\018\176\024\196\185\024\204~\000\000\000\000\019\170\002\142\rb\019\006\018\146v\158t\252\132\164\019\028v\158\177\148\020\184\019&v\158\132\164\019,v\158\183\136\184\b\000\000\201h\000\000\000\000\185\004\206d\019\170\002\142\rb\019(\018\190v\158\185\004\206d\000\000\000\000\000\000\174\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000w\140\000\000\205\016\020Xl(\019H\190\180\000\000\185\024\205\016\000\000\000\000\206\152\020Xl(\019L\018\232\166\164\206\202\000\244\019\150\000\000\000\000\184\134\186\142\020X\000\000\198|\023\228\000\000\000\000\185\024\206\152\000\000\000\000\000\000\193xl\156n>\000\244\019\162\000\000\000\000\000\000\186\142\020X\000\000\000\244\019\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015Xkr\019\170\002\142\rb\019\128\186\254\023\204\020X\130\172\134\164\020(\003\b\000\244\019\152\012d\000\000\000\000\019b\000\000\000\000\128r\000\000\011\156\014\222\000\000\015&\000\000\019\192\019r\177\148~F\020\022\r\\\000\000\000\000\019\222\000\000\000\000\020F\0032\016\218\000\000\0208\187\128\209\146\001\154\019\214\177\148\017\b\000\000\000\000\0204\000\000\000\000\000\000\128r\000\000\0068\017\168\000\000\015\232\000\000\020\138\020Htj\000\000\020\218\188\002\209\168\001\154\020\136\177\148\017Z\000\000\000\000\020\178\000\000\000\000\000\000\020X\000\000\128r\000\000\020z\020X\023\204\023\204\189Xn\030\020X\200\164\131\142\025p\000\000\012\020\005\200\000\000\016\244\023\204\177\148\014\192\b\004\000\000\020X\131\142\186\254\023\204\0162\023\204\000\000lFm,\000\000\170\182\000\000\000\000\171R\000\000\000\000\171\238\000\000\017\168\023\204\172\138\200\164\131\142\025p\000\000\000\"\000\000\000\000v\158\017\154\000\000\000\000\127\172\021\012\000\000\128r\000\000\023\204\127\172\128r\000\000\020X\177\148\128r\000\000\017x\000\000\000\000\128r\000\000\000\000\134\164\000\000\201\192v\158\020\186\023\204\202>\186\254\000\000\185\004\205\030\019\170\002\142\rb\021\020\186\254\185\004\205\030\000\000\000\000\000\000\207byp\000\000\000\000\000\000\000\000\000\000\000\000\203\166\185\004\000\000\205\016\000\000\000\000\000\000\000\000\185\004\207b\000\000\000\000\000\000\203\166\021T\000\000\021`\000\000\185\004\207b\000\000\000\000\017\206\000\000\000\000\178,\004\136\000\000\000\000jV\000\000\177\148\016\016\000\000\134\164\018\028\000\000\000\000\021\176\193\254\000\000h\142\021\180\000\000\000\000\021\168\028B$\002\023\228\189\224\024\220\020X\000\000\185\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\189\244\024\220\020X\000\000\012>\190\180\000\000\185\024\000\000\021\194\028B$\002\185\024\000\000\021\212\000\000\004\206\017N\020X\210,\000\000\000\000\028\190\210J\000\000\000\000\021^\000\000\021\186\177\148\000\000\0186\n\182\000b\000\000\000\000\177\148\0150\016\004\177\148\016(\000\244\021\234\000\000\000\000\199\022\000\000\000\000\166\164\000\000\185\024\000\000\021\222\028B$\250w\140\000\000\000\000\000\000\000\000\015\020\199\176\166\164\000\000\185\024\000\000\021\224\028B$\250w\140\000\000\018p\000\000\000\000\0148\000\000\185\004\000\000\021\254\000\000\000\000\021`\000\000\016\224\000\000\000\000\021\132\000\000\000\000sH\021\136\000\000\000\000$\190\164L\022*\000\000\000\000\000\000\016|\0114\166\236\0220\000\000\000\000\000\000\000\000\000\000\000\000\021\178\000\000\024\220\000\000\021\194\000\000\177\148\000\000\r\224\000\000\000\000\021\198\000\000\000\000\0008\000\000\004\202\000\000\000\000\000\000\006\168\000\000\023.\000\000\015n\000\000j6\000\000\0040\000\000\tD\000\000\021\202\000\000\131\142\026J\000\000\000\000\r$\021\218\000\000\000\000\021\212\014\028o\244\006&\200.\000\000\000\000\000\000\000\000\000\000\163\226\000\000\000\000\022z\000\000\190\238\000\000\017\244\022\130\000\000\022\132\000\000p\168p\168\209\214\209\214\000\000\000\000\184\254\209\214\000\000\000\000\000\000\184\254\209\214\022\022\000\000\022\028\000\000"), (16, "\003\197\003\197\000\006\001\002\001\190\003\197\002\194\002\198\003\197\002\242\002\146\003\197\004M\003\197\022\158\002\254\003\197\027\146\003\197\003\197\003\197\019\202\003\197\003\197\003\197\001\210\005\r\005\r\004V\003\002\003\197\003z\003~\011~\003\197\001\206\003\197\027\150\003\006\000\238\003\166\019\206\003\197\003\197\003\218\003\222\003\197\003\226\003\238\003\250\004\002\007V\007\154\003\197\003\197\002\186\001\206\007r\003\246\003\197\003\197\003\197\b\190\b\194\b\206\b\226\001*\005\174\003\197\003\197\003\197\003\197\003\197\003\197\003\197\003\197\003\197\tV\000\238\003\197\018\174\003\197\003\197\004M\tb\tz\n\030\005\186\005\190\003\197\003\197\003\197\007\213\003\197\003\197\003\197\003\197\002z\002\170\016\198\003\197\0072\003\197\003\197\003\233\003\197\003\197\003\197\003\197\003\197\003\197\005\194\b\214\003\197\003\197\003\197\b\238\004\130\n2\003\233\003\197\003\197\003\197\003\197\0149\0149\027\154\n\138\004\222\0149\n\150\0149\0149\004Q\0149\0149\0149\0149\t\138\0149\0149\007u\0149\0149\0149\004E\0149\0149\0149\0149\005\r\0149\019\014\0149\0149\0149\0149\0149\0149\0149\0149\007u\0149\018\182\0149\0052\0149\0149\0149\0149\0149\006\181\0149\0149\000\238\0149\003\254\0149\0149\0149\t\142\t\170\0149\0149\0149\0149\0149\0149\0149\000\238\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\000\238\0149\0149\004Q\0149\0149\014\138\003\030\003\186\005\r\0149\0149\0149\0149\0149\005\r\0149\0149\0149\0149\0149\007A\0149\0149\006\213\0149\0149\003\"\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\0149\007A\005\r\0149\0149\0149\0149\001\153\001\153\001\153\001f\004%\001\153\006J\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001v\001\153\001j\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\007\026\001\153\003R\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\b\130\001\153\001\153\001\153\006\213\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\000\238\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\b\186\001\153\001\153\022\142\bb\007\166\001r\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\017\202\t\006\001\153\005\242\001\153\001\153\bf\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\153\001\182\001\153\001\153\001\153\001\153\001\153\011\165\011\165\022\250\b\"\014]\011\165\003V\011\165\011\165\004\201\011\165\011\165\011\165\011\165\001\186\011\165\011\165\014]\011\165\011\165\011\165\000\238\011\165\011\165\011\165\011\165\023\002\011\165\007\030\011\165\011\165\011\165\011\165\011\165\011\165\011\165\011\165\007\225\011\165\005\r\011\165\005\r\011\165\011\165\011\165\011\165\011\165\t=\011\165\011\165\000\238\011\165\001\130\011\165\011\165\011\165\007\225\005\r\011\165\011\165\011\165\011\165\011\165\011\165\011\165\005\r\011\165\011\165\011\165\011\165\011\165\011\165\011\165\011\165\011\165\011\165\011\165\000\238\011\165\011\165\004\201\011\165\011\165\005\"\b\158\007\166\005\r\011\165\011\165\011\165\011\165\011\165\001\146\011\165\011\165\011\165\011\165\nJ\000\238\n\206\011\165\001\198\011\165\011\165\b\162\011\165\011\165\011\165\011\165\011\165\011\165\011\165\011\165\011\165\011\165\011\165\011\165\011\165\007\225\011\165\011\165\011\165\011\165\011\165\004m\004m\002\001\b\"\b\202\004m\002^\004m\004m\019\178\004m\004m\004m\004m\001f\004m\004m\004%\004m\004m\004m\000\238\004m\004m\004m\004m\002b\004m\000\n\004m\004m\004m\004m\004m\004m\004m\004m\b\130\004m\004\242\004m\007\166\004m\004m\004m\004m\004m\t\233\004m\004m\000\238\004m\005&\004m\004m\004m\002\001\006\150\004m\004m\004m\004m\004m\004m\004m\018B\004m\004m\004m\004m\004m\004m\004m\004m\004m\004m\004m\006\154\nB\n\198\000\238\004m\004m\b\"\028\214\007\166\000\238\004m\004m\004m\004m\004m\001\234\004m\004m\004m\004m\nJ\019\182\n\206\004m\000\238\004m\004m\028\218\004m\004m\004m\004m\004m\004m\004m\004m\004m\004m\004m\004m\004m\000\238\004m\004m\004m\004m\004m\004]\004]\022\206\b\"\006\222\004]\t\233\004]\004]\031\135\004]\004]\004]\004]\005\r\004]\004]\007\129\004]\004]\004]\000\238\004]\004]\004]\004]\006\226\004]\001\238\004]\004]\004]\004]\004]\004]\004]\004]\007\129\004]\022\214\004]\004R\004]\004]\004]\004]\004]\006\189\004]\004]\005\138\004]\nI\004]\004]\004]\000\238\007\253\004]\004]\004]\004]\004]\004]\004]\b\005\004]\004]\004]\004]\004]\004]\004]\004]\004]\004]\004]\005\r\nB\n\198\n\138\004]\004]\n\150\003*\011\022\031W\004]\004]\004]\004]\004]\004b\004]\004]\004]\004]\nJ\r\253\n\206\004]\b\198\004]\004]\003.\004]\004]\004]\004]\004]\004]\004]\004]\004]\004]\004]\004]\004]\r\253\004]\004]\004]\004]\004]\011\r\011\r\005\r\005\r\007R\011\r\rn\011\r\011\r\nI\011\r\011\r\011\r\011\r\002\022\011\r\011\r\005\r\011\r\011\r\011\r\004\130\011\r\011\r\011\r\011\r\005\r\011\r\003^\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\001f\011\r\0176\011\r\004%\011\r\011\r\011\r\011\r\011\r\003b\011\r\011\r\001\218\011\r\014\234\011\r\011\r\011\r\026v\000\238\011\r\011\r\011\r\011\r\011\r\011\r\011\r\000\238\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\004R\011\r\011\r\026~\011\r\011\r\017>\0026\007\166\005\r\011\r\011\r\011\r\011\r\011\r\001\222\011\r\011\r\011\r\011\r\011\r\014\001\011\r\011\r\t5\011\r\011\r\bn\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\014\001\005\r\011\r\011\r\011\r\011\r\011\029\011\029\005B\b\"\004n\011\029\014n\011\029\011\029\000\238\011\029\011\029\011\029\011\029\001\206\011\029\011\029\000\238\011\029\011\029\011\029\000\238\011\029\011\029\011\029\011\029\n)\011\029\014r\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\005^\011\029\007\218\011\029\002v\011\029\011\029\011\029\011\029\011\029\tR\011\029\011\029\001\206\011\029\015\018\011\029\011\029\011\029\002\134\004\030\011\029\011\029\011\029\011\029\011\029\011\029\011\029\000\238\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\031g\011\029\011\029\004\"\011\029\011\029\b6\002B\007\166\n)\011\029\011\029\011\029\011\029\011\029\002\222\011\029\011\029\011\029\011\029\011\029\007I\011\029\011\029\004R\011\029\011\029\t6\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\011\029\007I\n)\011\029\011\029\011\029\011\029\011\021\011\021\002z\b\"\b\130\011\021\n%\011\021\011\021\bv\011\021\011\021\011\021\011\021\007r\011\021\011\021\000\238\011\021\011\021\011\021\000\238\011\021\011\021\011\021\011\021\001\134\011\021\004\166\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\015\198\011\021\003\186\011\021\002\198\011\021\011\021\011\021\011\021\011\021\t\229\011\021\011\021\003\190\011\021\015:\011\021\011\021\011\021\003F\003J\011\021\011\021\011\021\011\021\011\021\011\021\011\021\t*\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\004f\011\021\011\021\003\150\011\021\011\021\003\178\005\r\007\166\000\238\011\021\011\021\011\021\011\021\011\021\003\194\011\021\011\021\011\021\011\021\011\021\007Q\011\021\011\021\004R\011\021\011\021\019\194\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\007Q\004r\011\021\011\021\011\021\011\021\011\001\011\001\005\r\b\"\007r\011\001\t\229\011\001\011\001\000\238\011\001\011\001\011\001\011\001\000\238\011\001\011\001\017f\011\001\011\001\011\001\000\238\011\001\011\001\011\001\011\001\001\150\011\001\b\002\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\nE\011\001\r\150\011\001\007\182\011\001\011\001\011\001\011\001\011\001\018Z\011\001\011\001\000\238\011\001\015b\011\001\011\001\011\001\018\014\007\190\011\001\011\001\011\001\011\001\011\001\011\001\011\001\018b\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\002\014\011\001\011\001\r\178\011\001\011\001\003F\003J\007\166\007\209\011\001\011\001\011\001\011\001\011\001\007\170\011\001\011\001\011\001\011\001\011\001\020\166\011\001\011\001\b\198\011\001\011\001\020\n\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\nE\001\222\011\001\011\001\011\001\011\001\011\t\011\t\007\230\b\"\007r\011\t\017j\011\t\011\t\018\022\011\t\011\t\011\t\011\t\b\006\011\t\011\t\014\178\011\t\011\t\011\t\000\238\011\t\011\t\011\t\011\t\005~\011\t\t\222\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\005n\011\t\014\182\011\t\016\142\011\t\011\t\011\t\011\t\011\t\022.\011\t\011\t\000\238\011\t\015\134\011\t\011\t\011\t\001\222\005v\011\t\011\t\011\t\011\t\011\t\011\t\011\t\022>\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\003\190\011\t\011\t\r\242\011\t\011\t\003F\021\226\007\166\005\130\011\t\011\t\011\t\011\t\011\t\022\190\011\t\011\t\011\t\011\t\011\t\021\246\011\t\011\t\r\162\011\t\011\t\020&\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\021n\005&\011\t\011\t\011\t\011\t\011\005\011\005\016\146\b\"\007r\011\005\005&\011\005\011\005\000\238\011\005\011\005\011\005\011\005\001\206\011\005\011\005\n\218\011\005\011\005\011\005\000\238\011\005\011\005\011\005\011\005\005&\011\005\016\166\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\n\222\011\005\017\226\011\005\007\242\011\005\011\005\011\005\011\005\011\005\022R\011\005\011\005\r\170\011\005\015\170\011\005\011\005\011\005\002\170\b\026\011\005\011\005\011\005\011\005\011\005\011\005\011\005\022>\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\b\006\011\005\011\005\022\254\011\005\011\005\007*\007B\007\166\029\226\011\005\011\005\011\005\011\005\011\005\r\162\011\005\011\005\011\005\011\005\011\005\005\r\011\005\011\005\tE\011\005\011\005\020B\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\030\242\001\222\011\005\011\005\011\005\011\005\011\017\011\017\025\234\b\"\016\170\011\017\014\150\011\017\011\017\017\230\011\017\011\017\011\017\011\017\014~\011\017\011\017\017\138\011\017\011\017\011\017\000\238\011\017\011\017\011\017\011\017\014\154\011\017\000\238\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\014\130\011\017\025\242\011\017\018\202\011\017\011\017\011\017\011\017\011\017\006\181\011\017\011\017\002\158\011\017\015\214\011\017\011\017\011\017\007J\019r\011\017\011\017\011\017\011\017\011\017\011\017\011\017\005\r\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\004\182\011\017\011\017\023F\011\017\011\017\023.\018\030\007\166\001\206\011\017\011\017\011\017\011\017\011\017\005\002\011\017\011\017\011\017\011\017\011\017\017\142\011\017\011\017\005f\011\017\011\017\020^\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\014\194\000\238\011\017\011\017\011\017\011\017\011!\011!\021\234\b\"\029r\011!\014\226\011!\011!\001\206\011!\011!\011!\011!\018\158\011!\011!\014\198\011!\011!\011!\000\238\011!\011!\011!\011!\014\230\011!\r\162\011!\011!\011!\011!\011!\011!\011!\011!\006\174\011!\023N\011!\018\"\011!\011!\011!\011!\011!\005\r\011!\011!\027\n\011!\015\250\011!\011!\011!\002\198\007\234\011!\011!\011!\011!\011!\011!\011!\025\202\011!\011!\011!\011!\011!\011!\011!\011!\011!\011!\011!\002\198\011!\011!\n\138\011!\011!\n\150\005\r\001\002\001\190\011!\011!\011!\011!\011!\005\r\011!\011!\011!\011!\011!\r\162\011!\011!\019\022\011!\011!\000\238\011!\011!\011!\011!\011!\011!\011!\011!\011!\011!\011!\011!\011!\001\002\001\190\011!\011!\011!\011!\011\025\011\025\0222\003F\003J\011\025\015\n\011\025\011\025\002\198\011\025\011\025\011\025\011\025\0152\011\025\011\025\007v\011\025\011\025\011\025\n\218\011\025\011\025\011\025\011\025\002!\011\025\015\014\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\0156\011\025\022\150\011\025\015^\011\025\011\025\011\025\011\025\011\025\021*\011\025\011\025\002\158\011\025\016\030\011\025\011\025\011\025\n\130\n\178\011\025\011\025\011\025\011\025\011\025\011\025\011\025\026\018\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\003\190\011\025\011\025\n\138\011\025\011\025\n\150\022\210\007\166\006V\011\025\011\025\011\025\011\025\011\025\006\197\011\025\011\025\011\025\011\025\011\025\006n\011\025\011\025\000\238\011\025\011\025\030\138\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\011\025\001\002\001\190\011\025\011\025\011\025\011\025\011\145\011\145\022\218\b\"\014n\011\145\014\178\011\145\011\145\0317\011\145\011\145\011\145\011\145\006j\011\145\011\145\015\n\011\145\011\145\011\145\000\238\011\145\011\145\011\145\011\145\015\130\011\145\015\246\011\145\011\145\011\145\011\145\011\145\011\145\011\145\011\145\014.\011\145\016z\011\145\006\194\011\145\011\145\011\145\011\145\011\145\006\193\011\145\011\145\027\"\011\145\016:\011\145\011\145\011\145\023\006\014~\011\145\011\145\011\145\011\145\011\145\011\145\011\145\007.\011\145\011\145\011\145\011\145\011\145\011\145\011\145\011\145\011\145\011\145\011\145\001\206\011\145\011\145\015\166\011\145\011\145\025\246\025\238\001\002\001\190\011\145\011\145\011\145\011\145\011\145\014e\011\145\011\145\011\145\011\145\011\145\014\150\011\145\011\145\tA\011\145\011\145\t\253\011\145\011\145\011\145\011\145\011\145\011\145\011\145\011\145\011\145\011\145\011\145\011\145\011\145\015\210\030R\011\145\011\145\011\145\011\145\004Y\004Y\t\017\014\194\006\185\004Y\017z\004Y\004Y\023N\004Y\004Y\004Y\004Y\007>\004Y\004Y\014\226\004Y\004Y\004Y\000\238\004Y\004Y\004Y\004Y\016\026\004Y\017~\004Y\004Y\004Y\004Y\004Y\004Y\004Y\004Y\016n\004Y\b\130\004Y\000\238\004Y\004Y\004Y\004Y\004Y\000\238\004Y\004Y\019\150\004Y\000\238\004Y\004Y\004Y\026\130\0152\004Y\004Y\004Y\004Y\004Y\004Y\004Y\t\253\004Y\004Y\004Y\004Y\004Y\004Y\004Y\004Y\004Y\004Y\004Y\023\142\nB\n\198\016\134\004Y\004Y\007~\031w\007\138\004\242\004Y\004Y\004Y\004Y\004Y\028\238\004Y\004Y\004Y\004Y\nJ\017R\n\206\004Y\t9\004Y\004Y\n\001\004Y\004Y\004Y\004Y\004Y\004Y\004Y\004Y\004Y\004Y\004Y\004Y\004Y\017V\004Y\004Y\004Y\004Y\004Y\0021\0021\018\218\000\238\018*\0021\0049\002\198\0021\000\238\002\146\0021\n~\0021\017\190\002\254\0021\t\166\0021\0021\0021\000\238\0021\0021\0021\001\210\018.\n\182\t\190\003\002\0021\0021\0021\0021\0021\n\190\0021\017\194\003\006\019\154\003\166\027>\0021\0021\0021\0021\0021\029\250\003\238\001\190\004R\0021\030\174\0021\0021\002\186\023\162\017\238\003\246\0021\0021\0021\b\190\b\194\b\206\n\001\014\206\005\174\0021\0021\0021\0021\0021\0021\0021\0021\0021\0262\nB\n\198\017\242\0021\0021\t\234\n\134\n\174\rn\005\186\005\190\0021\0021\0021\n\186\0021\0021\0021\0021\014\214\t5\015R\0021\030\238\0021\0021\023:\0021\0021\0021\0021\0021\0021\005\194\b\214\0021\0021\0021\b\238\004\130\023r\n\202\0021\0021\0021\0021\011y\011y\029\166\b6\027\226\011y\r\142\002\198\011y\000\238\002\146\011y\011y\011y\027\022\002\254\011y\b6\011y\011y\011y\027\162\011y\011y\011y\001\210\023\166\011y\030\178\003\002\011y\011y\011y\011y\011y\011y\011y\b6\003\006\026R\003\166\027\166\011y\011y\011y\011y\011y\028\198\003\238\001\190\000\238\011y\r\190\011y\011y\002\186\026z\r\214\003\246\011y\011y\011y\b\190\b\194\b\206\005\161\011y\005\174\011y\011y\011y\011y\011y\011y\011y\011y\011y\014q\011y\011y\026\178\011y\011y\016\158\005%\016\186\028\250\005\186\005\190\011y\011y\011y\016\218\011y\011y\011y\011y\011y\027\230\011y\011y\018z\011y\011y\027v\011y\011y\011y\011y\011y\011y\005\194\b\214\011y\011y\011y\b\238\004\130\018\162\029\222\011y\011y\011y\011y\011u\011u\002\234\b6\030~\011u\004\014\002\198\011u\018\190\002\146\011u\011u\011u\018\194\002\254\011u\028\202\011u\011u\011u\018\234\011u\011u\011u\001\210\018\254\011u\019\030\003\002\011u\011u\011u\011u\011u\011u\011u\019.\003\006\019B\003\166\019n\011u\011u\011u\011u\011u\019\214\003\238\001\190\019\222\011u\021\"\011u\011u\002\186\028\254\0216\003\246\011u\011u\011u\b\190\b\194\b\206\021:\011u\005\174\011u\011u\011u\011u\011u\011u\011u\011u\011u\006\190\011u\011u\029\238\011u\011u\021\254\022\022\022\166\022\170\005\186\005\190\011u\011u\011u\022\226\011u\011u\011u\011u\011u\030\130\011u\011u\022\230\011u\011u\023\014\011u\011u\011u\011u\011u\011u\005\194\b\214\011u\011u\011u\b\238\004\130\023\018\023*\011u\011u\011u\011u\002\133\002\133\023\214\023\218\023\254\002\133\024\002\002\198\002\133\024\018\002\146\002\133\n~\002\133\024\"\002\254\002\133\024.\002\133\002\133\002\133\024b\002\133\002\133\002\133\001\210\002\001\n\182\024f\003\002\002\133\002\133\002\133\002\133\002\133\n\190\002\133\024\182\003\006\024\222\003\166\005\r\002\133\002\133\002\133\002\133\002\133\024\226\003\238\001\190\024\242\002\133\000\n\002\133\002\133\002\186\025B\025b\003\246\002\133\002\133\002\133\b\190\b\194\b\206\025\162\014\206\005\174\002\133\002\133\002\133\002\133\002\133\002\133\002\133\002\133\002\133\025\198\005y\002\133\002\001\002\133\002\133\005\r\007\002\002\198\005\r\005\186\005\190\002\133\002\133\002\133\025\214\002\133\002\133\002\133\002\133\025\254\000\238\005\r\002\133\005y\002\133\002\133\005\r\002\133\002\133\002\133\002\133\002\133\002\133\005\194\b\214\002\133\002\133\002\133\b\238\004\130\026\002\005\r\002\133\002\133\002\133\002\133\005\r\007\166\005\r\003\178\005\r\005\r\005\r\005\r\005\r\005\r\005\r\021\150\005\r\000\238\005\r\005\r\026\014\005\r\005\r\005\r\020\026\005\r\005\r\005\r\005\r\005\r\005\r\005\r\005\r\005\r\026\030\005\r\005\r\026:\026J\005\r\005\r\000\238\005\r\005\r\005\r\005\r\005\r\b\"\005\r\005\r\005\r\005\r\005\r\005\r\005\r\005\r\000\238\005\r\005\r\005\r\005\r\005\r\005\r\005\r\005\r\000\238\005\r\005\r\005\r\005\r\005\r\005\r\005\r\005\r\t\229\004^\005\r\026^\026\138\005\r\005\r\005\r\000\238\005\r\000\n\007\217\005\r\005\r\005\r\005\r\005\r\005\r\005\r\005\r\005\r\018n\025\186\005\r\005\r\002\001\002\001\b.\005\r\004R\007\217\026\142\005\r\005\r\007\217\b6\020\030\026*\002\001\000\238\005\r\005\r\005\r\b:\026\154\005\r\005\r\005\r\005\r\005\201\000\129\005\r\000\129\026\170\000\129\000\129\000\129\000\129\000\129\000\129\000\129\005\201\000\129\026\222\000\129\000\129\026\190\000\129\000\129\027\178\028\n\000\129\000\129\0282\000\129\000\129\000\129\000\129\028\166\000\129\004b\000\129\000\129\t\229\028\174\000\129\000\129\r\201\000\129\000\129\000\129\005\201\000\129\n)\000\129\000\129\000\129\000\129\000\129\000\129\000\129\000\129\007\217\029\006\000\129\000\129\r\201\r\201\000\129\000\129\r\201\000\129\000\129\000\129\000\129\000\129\000\129\000\129\000\129\000\129\004*\005\201\000\129\na\005\201\000\129\029\022\000\129\029\"\000\129\002\198\001b\014\005\000\129\000\129\000\129\000\129\000\129\000\129\000\129\000\129\029\134\029\154\029\202\000\129\001z\na\001\138\000\238\000\222\029\210\002\182\014\005\000\129\030\n\0302\030j\017\154\002R\000\129\000\129\000\129\000\129\030\154\030\166\000\129\000\129\000\129\000\129\002}\002}\002V\003\178\030\187\002}\030\203\002\198\002}\r\201\002\146\002}\nN\002}\030\222\002\254\002}\030\250\002}\002}\002}\019\246\002}\002}\002}\001\210\016r\031\023\016~\003\002\002}\002}\002}\002}\002}\031'\002}\031C\003\006\031\151\003\166\019\250\002}\002}\002}\002}\002}\031\179\003\238\b\210\031\190\002}\031\243\002}\002}\002\186 \007 \015\003\246\002}\002}\002}\b\190\b\194\b\206\nB\n\198\005\174\002}\002}\002}\002}\002}\002}\002}\002}\002} K\nB\n\198 S\002}\002}\000\000\nJ\000\000\n\206\005\186\005\190\002}\002}\002}\000\000\002}\002}\002}\002}\nJ\000\000\n\206\002}\000\000\002}\002}\000\000\002}\002}\002}\002}\002}\002}\005\194\b\214\002}\002}\002}\b\238\004\130\002\001\002\001\002}\002}\002}\002}\002\145\002\145\t\254\019\254\006e\002\145\020\014\002\198\002\145\000\000\000\000\002\145\n\018\002\145\003j\000\000\002\145\003\146\002\145\002\145\002\145\000\n\002\145\002\145\002\145\001\210\000\000\000\000\000\000\000\000\002\145\002\145\002\145\002\145\002\145\000\000\002\145\002\001\002\001\020~\000\000\000\000\002\145\002\145\002\145\002\145\002\145\006e\003\154\002\001\000\000\002\145\002\001\002\145\002\145\002\186\000\000\006\202\000\000\002\145\002\145\002\145\000\000\021\230\000\n\006e\000\000\000\000\002\145\002\145\002\145\002\145\002\145\002\145\002\145\002\145\002\145\006\206\nB\n\198\000\000\002\145\002\145\007j\000\000\000\000\002\198\000\000\000\000\002\145\002\145\002\145\002\001\002\145\002\145\002\145\002\145\nJ\018\150\n\206\002\145\002\146\002\145\002\145\001\210\002\145\002\145\002\145\002\145\002\145\002\145\t\209\000\000\002\145\002\145\002\145\002\001\025\170\000\238\000\000\002\145\002\145\002\145\002\145\002\141\002\141\000\000\026\230\003\178\002\141\026\234\000\000\002\141\000\000\002\186\002\141\000\000\002\141\000\000\018\154\002\141\027\026\002\141\002\141\002\141\000\n\002\141\002\141\002\141\000\000\t\209\000\000\000\000\018\166\002\141\002\141\002\141\002\141\002\141\000\000\002\141\002\001\006~\005u\027*\006\"\002\141\002\141\002\141\002\141\002\141\t\209\006\158\002\001\002\001\002\141\006\170\002\141\002\141\005\190\000\000\000\000\006\254\002\141\002\141\002\141\005u\000\000\000\000\000\000\000\000\000\000\002\141\002\141\002\141\002\141\002\141\002\141\002\141\002\141\002\141\000\000\nB\n\198\t\209\002\141\002\141\000\000\004\254\000\000\001\206\t\209\000\000\002\141\002\141\002\141\000\000\002\141\002\141\002\141\002\141\nJ\002\198\n\206\002\141\002\146\002\141\002\141\001\210\002\141\002\141\002\141\002\141\002\141\002\141\t\205\000\000\002\141\002\141\002\141\000\000\022\174\000\000\000\000\002\141\002\141\002\141\002\141\002\129\002\129\007\193\000\000\002\170\002\129\023&\003\190\002\129\000\000\002\186\002\129\000\000\002\129\000\000\021b\002\129\023>\002\129\002\129\002\129\007\006\002\129\002\129\002\129\007\193\t\205\000\000\000\000\018\166\002\129\002\129\002\129\002\129\002\129\000\000\002\129\000\000\000\000\000\000\000\000\000\000\002\129\002\129\002\129\002\129\002\129\t\205\t\n\001\190\001*\002\129\000\000\002\129\002\129\005\190\002\001\002\001\017Z\002\129\002\129\002\129\017n\017\130\017\146\000\000\000\000\000\000\002\129\002\129\002\129\002\129\002\129\002\129\002\129\002\129\002\129\000\000\nB\n\198\t\205\002\129\002\129\000\n\004\254\007\166\000\000\t\205\000\000\002\129\002\129\002\129\000\000\002\129\002\129\002\129\002\129\nJ\000\000\n\206\002\129\002\234\002\129\002\129\020R\002\129\002\129\002\129\002\129\002\129\002\129\002\001\014\142\002\129\002\129\002\129\000\000\005%\000\000\000\000\002\129\002\129\002\129\002\129\002)\002)\014\170\b\"\014\186\002)\r\193\003\190\002)\000\000\000\000\002)\000\000\002)\000\000\000\000\002)\b\142\002)\002)\002)\000\238\002)\002)\002)\r\193\r\193\000\000\000\000\r\193\002)\002)\002)\002)\002)\000\000\002)\b\146\005%\000\000\000\000\014\218\002)\002)\002)\002)\002)\000\000\t\n\017\206\000\000\002)\000\000\002)\002)\015\002\000\000\015*\017Z\002)\002)\002)\017n\017\130\017\146\b\130\020V\000\238\002)\002)\002)\002)\002)\002)\002)\002)\002)\000\000\000\238\002)\000\000\002)\002)\000\000\002\001\002\001\021\190\000\238\t)\002)\002)\002)\t)\002)\002)\002)\002)\r\193\000\000\002\001\002)\000\000\002)\002)\000\000\t\254\002)\002)\002)\002)\002)\000\n\n\162\002)\002)\n\018\000\000\n.\000\000\031\163\002)\002)\002)\002)\n\025\n\025\b\150\000\000\000\000\n\025\t)\006~\n\025\000\000\006\"\n\025\015\202\n\025\000\000\002\001\n\025\006\158\n\025\n\025\n\025\006\170\n\025\n\025\n\025\000\000\015\238\t)\016\018\020\238\n\025\n\025\n\025\n\025\n\025\000\000\n\025\000\000\000\000\n]\000\000\000\000\n\025\n\025\n\025\n\025\n\025\000\000\t\021\000\000\000\000\n\025\000\000\n\025\n\025\000\000\000\000\000\000\017\174\n\025\n\025\n\025\n]\000\000\004\254\000\000\000\000\002\254\n\025\n\025\n\025\n\025\n\025\n\025\n\025\n\025\n\025\000\000\000\000\n\025\000\000\n\025\n\025\000\000\003\026\000\000\000\000\000\238\000\000\n\025\n\025\n\025\000\000\n\025\n\025\n\025\n\025\003&\000\000\000\000\n\025\000\000\n\025\n\025\000\000\t\254\n\025\n\025\n\025\n\025\n\025\000\000\000\000\n\025\n\025\n\018\000\000\000\000\000\000\005\174\n\025\n\025\n\025\n\025\002\137\002\137\000\000\000\000\000\000\002\137\r\197\006~\002\137\000\000\006\"\002\137\000\000\002\137\000\000\005\186\002\137\006\158\002\137\002\137\002\137\006\170\002\137\002\137\002\137\r\197\r\197\000\000\000\000\r\197\002\137\002\137\002\137\002\137\002\137\000\000\002\137\t5\000\000\005\194\t5\000\000\002\137\002\137\002\137\002\137\002\137\000\000\000\000\000\000\000\000\002\137\000\000\002\137\002\137\000\000\000\000\000\000\0262\002\137\002\137\002\137\000\000\000\000\000\000\000\000\000\000\000\238\002\137\002\137\002\137\002\137\002\137\002\137\002\137\002\137\002\137\000\000\t5\002\137\000\000\002\137\002\137\000\000\000\000\000\000\000\000\000\000\000\000\002\137\002\137\002\137\t5\002\137\002\137\002\137\002\137\r\197\000\000\001\206\002\137\000\000\002\137\002\137\000\000\n\230\002\137\002\137\002\137\002\137\002\137\029\186\000\000\002\137\002\137\002\137\000\000\000\000\t5\000\000\002\137\002\137\002\137\002\137\n\t\n\t\000\000\000\000\000\000\n\t\007\221\004f\n\t\000\000\000\000\n\t\000\000\n\t\000\000\000\000\n\t\002\170\n\t\n\t\n\t\t5\n\t\n\t\n\t\007\221\000\000\000\000\000\000\007\221\n\t\n\t\n\t\n\t\n\t\000\000\n\t\000\000\000\000\000\000\000\000\000\000\n\t\n\t\n\t\n\t\n\t\004\222\004\170\004r\005\165\n\t\000\000\n\t\n\t\000\000\004.\004:\000\000\n\t\n\t\n\t\004F\000\000\000\000\000\000\000\000\000\238\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\n\t\000\000\000\000\n\t\000\000\n\t\n\t\000\000\000\000\000\000\000\000\000\238\t%\n\t\n\t\n\t\t%\n\t\n\t\n\t\n\t\007\221\000\000\000\000\n\t\000\000\n\t\n\t\000\000\t\254\n\t\n\t\n\t\n\t\n\t\000\000\000\000\n\t\n\t\n\018\000\000\r\254\000\000\000\000\n\t\n\t\n\t\n\t\003\193\003\193\000\000\000\000\000\000\003\193\t%\014\006\003\193\000\000\014\018\003\193\000\000\003\193\000\000\000\000\011&\014\030\003\193\011z\003\193\014*\003\193\003\193\003\193\000\000\000\000\t%\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003\193\000\000\000\000\007\245\000\000\000\000\003\193\003\193\012\030\0126\003\193\000\000\000\000\000\000\000\000\003\193\000\000\012N\003\193\000\000\000\000\000\000\007\245\003\193\003\193\000\238\007\245\000\000\004\254\000\000\000\000\000\000\003\193\003\193\011>\011\190\012f\012~\012\174\003\193\003\193\000\000\000\000\003\193\000\000\003\193\012\198\000\000\000\000\000\000\000\000\000\238\000\000\003\193\003\193\012\222\000\000\003\193\003\193\003\193\003\193\000\000\000\000\000\000\003\193\000\000\003\193\003\193\000\000\r>\003\193\rV\012\150\003\193\003\193\000\000\000\000\003\193\012\246\003\193\000\000\b\193\000\000\000\000\003\193\003\193\r\014\r&\002\233\002\233\000\000\000\000\000\000\002\233\005\158\b\193\002\233\000\000\006\"\002\233\000\000\002\233\000\000\000\000\002\233\b\193\002\233\002\233\002\233\b\193\002\233\002\233\002\233\000\000\000\000\000\000\000\000\000\000\002\233\002\233\002\233\002\233\002\233\000\000\002\233\000\000\000\000\007\225\000\000\000\000\002\233\002\233\002\233\002\233\002\233\000\000\000\000\000\000\000\000\002\233\000\000\002\233\002\233\000\000\000\000\000\000\007\225\002\233\002\233\002\233\007\225\000\000\000\000\000\000\000\000\000\000\002\233\002\233\002\233\002\233\002\233\002\233\002\233\002\233\002\233\000\000\000\000\002\233\000\000\002\233\002\233\000\000\000\000\000\000\000\000\b\221\000\000\002\233\002\233\002\233\000\000\002\233\002\233\002\233\002\233\000\000\000\000\000\000\002\233\000\000\002\233\002\233\000\000\t\254\002\233\002\233\002\233\002\233\002\233\000\000\000\000\002\233\002\233\n\018\000\000\b\221\000\000\000\000\002\233\002\233\002\233\002\233\002\229\002\229\000\000\000\000\000\000\002\229\b\202\b\221\002\229\000\000\006\"\002\229\000\000\002\229\000\000\000\000\002\229\b\221\002\229\002\229\002\229\b\221\002\229\002\229\002\229\000\000\000\000\000\000\000\000\000\000\002\229\002\229\002\229\002\229\002\229\000\000\002\229\000\000\000\000\000\000\000\000\000\000\002\229\002\229\002\229\002\229\002\229\000\000\000\000\000\000\000\000\002\229\000\000\002\229\002\229\000\000\000\000\000\000\000\000\002\229\002\229\002\229\000\000\000\000\000\000\000\000\000\000\000\000\002\229\002\229\011>\002\229\002\229\002\229\002\229\002\229\002\229\000\000\000\000\002\229\000\000\002\229\002\229\000\000\000\000\000\000\000\000\000\238\000\000\002\229\002\229\002\229\000\000\002\229\002\229\002\229\002\229\000\000\000\000\000\000\002\229\000\000\002\229\002\229\000\000\002\229\002\229\002\229\002\229\002\229\002\229\000\000\000\000\002\229\002\229\002\229\000\000\b\249\000\000\000\000\002\229\002\229\002\229\002\229\002\185\002\185\000\000\000\000\000\000\002\185\000\000\006~\002\185\000\000\006\"\002\185\000\000\002\185\000\000\000\000\002\185\b\249\002\185\002\185\002\185\b\249\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\002\185\002\185\002\185\002\185\002\185\000\000\002\185\000\000\000\000\000\000\000\000\000\000\002\185\002\185\002\185\002\185\002\185\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\000\000\000\000\000\000\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\002\185\002\185\002\185\002\185\002\185\002\185\002\185\002\185\000\000\000\000\002\185\000\000\002\185\002\185\000\000\000\000\000\000\000\000\b\241\000\000\002\185\002\185\002\185\000\000\002\185\002\185\002\185\002\185\000\000\000\000\000\000\002\185\000\000\002\185\002\185\000\000\t\254\002\185\002\185\002\185\002\185\002\185\000\000\000\000\002\185\002\185\n\018\000\000\b\241\000\000\000\000\002\185\002\185\002\185\002\185\002\181\002\181\000\000\000\000\000\000\002\181\000\000\014B\002\181\000\000\b\241\002\181\000\000\002\181\000\000\000\000\002\181\b\241\002\181\002\181\002\181\b\241\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\002\181\002\181\000\000\002\181\000\000\000\000\000\000\000\000\000\000\002\181\002\181\002\181\002\181\002\181\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\000\000\000\000\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\181\011>\002\181\002\181\002\181\002\181\002\181\002\181\000\000\000\000\002\181\000\000\002\181\002\181\000\000\000\000\000\000\000\000\000\238\000\000\002\181\002\181\002\181\000\000\002\181\002\181\002\181\002\181\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\002\181\002\181\002\181\002\181\002\181\002\181\000\000\000\000\002\181\002\181\002\181\000\000\b\189\000\000\000\000\002\181\002\181\002\181\002\181\002\209\002\209\000\000\000\000\000\000\002\209\000\000\b\189\002\209\000\000\006\"\002\209\000\000\002\209\000\000\000\000\002\209\b\189\002\209\002\209\002\209\b\189\002\209\002\209\002\209\000\000\000\000\000\000\000\000\000\000\002\209\002\209\002\209\002\209\002\209\000\000\002\209\000\000\000\000\000\000\000\000\000\000\002\209\002\209\002\209\002\209\002\209\000\000\000\000\000\000\000\000\002\209\000\000\002\209\002\209\000\000\000\000\000\000\000\000\002\209\002\209\002\209\000\000\000\000\000\000\000\000\000\000\000\000\002\209\002\209\002\209\002\209\002\209\002\209\002\209\002\209\002\209\000\000\000\000\002\209\000\000\002\209\002\209\000\000\000\000\000\000\000\000\000\238\000\000\002\209\002\209\002\209\000\000\002\209\002\209\002\209\002\209\000\000\000\000\000\000\002\209\000\000\002\209\002\209\000\000\t\254\002\209\002\209\002\209\002\209\002\209\000\000\000\000\002\209\002\209\n\018\000\000\017*\000\000\000\000\002\209\002\209\002\209\002\209\002\205\002\205\000\000\000\000\000\000\002\205\000\000\014\006\002\205\000\000\014\018\002\205\000\000\002\205\000\000\000\000\011&\014\030\002\205\002\205\002\205\014*\002\205\002\205\002\205\000\000\000\000\000\000\000\000\000\000\002\205\002\205\002\205\011\166\002\205\000\000\002\205\018\150\000\000\000\000\002\146\000\000\002\205\002\205\002\205\002\205\002\205\000\000\000\000\000\000\000\000\002\205\000\000\002\205\002\205\000\000\000\000\000\000\000\000\002\205\002\205\002\205\000\000\000\000\000\000\000\000\000\000\000\000\002\205\002\205\011>\011\190\002\205\002\205\002\205\002\205\002\205\000\000\018\154\002\205\000\000\002\205\002\205\000\000\000\000\000\000\000\000\000\000\000\000\002\205\002\205\002\205\018\166\002\205\002\205\002\205\002\205\000\000\000\000\000\000\002\205\000\000\002\205\002\205\000\000\002\205\002\205\002\205\002\205\002\205\002\205\000\000\000\000\002\205\002\205\002\205\000\000\000\000\005\190\000\000\002\205\002\205\002\205\002\205\002\241\002\241\000\000\000\000\000\000\002\241\000\000\002\014\002\241\000\000\002\146\002\241\000\000\002\241\000\000\000\000\002\241\000\000\002\241\002\241\002\241\029*\002\241\002\241\002\241\000\000\000\000\000\000\000\000\000\000\002\241\002\241\002\241\002\241\002\241\000\000\002\241\018\150\000\000\000\000\002\146\000\000\002\241\002\241\002\241\002\241\002\241\000\000\030\214\001\222\000\000\002\241\000\000\002\241\002\241\000\000\000\000\000\000\000\000\002\241\002\241\002\241\018\166\000\000\000\000\000\000\000\000\000\000\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002\241\000\000\018\154\002\241\000\000\002\241\002\241\000\000\000\000\000\000\000\000\000\000\005\190\002\241\002\241\002\241\018\166\002\241\002\241\002\241\002\241\000\000\000\000\000\000\002\241\000\000\002\241\002\241\000\000\t\254\002\241\002\241\002\241\002\241\002\241\000\000\000\000\002\241\002\241\n\018\000\000\000\000\005\190\000\000\002\241\002\241\002\241\002\241\002\237\002\237\000\000\000\000\000\000\002\237\000\000\003\190\002\237\000\000\000\000\002\237\000\000\002\237\000\000\000\000\002\237\000\000\002\237\002\237\002\237\025\014\002\237\002\237\002\237\000\000\000\000\000\000\000\000\000\000\002\237\002\237\002\237\002\237\002\237\000\000\002\237\000\000\000\000\000\000\000\000\000\000\002\237\002\237\002\237\002\237\002\237\000\000\005\246\000\000\000\000\002\237\000\000\002\237\002\237\000\000\000\000\000\000\004\006\002\237\002\237\002\237\006\210\000\000\004\018\000\000\000\000\000\000\002\237\002\237\011>\002\237\002\237\002\237\002\237\002\237\002\237\000\000\000\000\002\237\000\000\002\237\002\237\000\000\000\000\000\000\000\000\000\000\000\000\002\237\002\237\002\237\000\000\002\237\002\237\002\237\002\237\000\000\000\000\000\000\002\237\000\000\002\237\002\237\000\000\002\237\002\237\002\237\002\237\002\237\002\237\000\000\000\000\002\237\002\237\002\237\000\000\000\000\000\000\000\000\002\237\002\237\002\237\002\237\002\177\002\177\000\000\000\000\000\000\002\177\000\000\002\198\002\177\000\000\000\000\002\177\000\000\002\177\000\000\000\000\002\177\000\000\002\177\002\177\002\177\000\000\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\002\177\002\177\002\177\002\177\002\177\000\000\002\177\000\000\000\000\000\000\000\000\000\000\002\177\002\177\002\177\002\177\002\177\000\000\n\210\003\178\000\000\002\177\000\000\002\177\002\177\000\000\000\000\000\000\000\000\002\177\002\177\002\177\014f\000\000\014v\000\000\000\000\000\000\002\177\002\177\002\177\002\177\002\177\002\177\002\177\002\177\002\177\000\000\000\000\002\177\000\000\002\177\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\002\177\002\177\000\000\002\177\002\177\002\177\002\177\000\000\000\000\000\000\002\177\000\000\002\177\002\177\000\000\t\254\002\177\002\177\002\177\002\177\002\177\000\000\000\000\002\177\002\177\n\018\000\000\000\000\000\000\000\000\002\177\002\177\002\177\002\177\002\173\002\173\000\000\000\000\000\000\002\173\000\000\002\198\002\173\000\000\000\000\002\173\000\000\002\173\000\000\000\000\002\173\000\000\002\173\002\173\002\173\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\002\173\002\173\002\173\002\173\000\000\002\173\000\000\000\000\000\000\000\000\000\000\002\173\002\173\002\173\002\173\002\173\000\000\015V\003\178\000\000\002\173\000\000\002\173\002\173\000\000\000\000\000\000\000\000\002\173\002\173\002\173\015z\000\000\015\158\000\000\000\000\000\000\002\173\002\173\011>\002\173\002\173\002\173\002\173\002\173\002\173\000\000\000\000\002\173\000\000\002\173\002\173\000\000\000\000\000\000\000\000\000\000\000\000\002\173\002\173\002\173\000\000\002\173\002\173\002\173\002\173\000\000\000\000\000\000\002\173\000\000\002\173\002\173\000\000\002\173\002\173\002\173\002\173\002\173\002\173\000\000\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\002\173\002\173\002\173\002\173\002\201\002\201\000\000\000\000\000\000\002\201\000\000\000\000\002\201\000\000\000\000\002\201\000\000\002\201\000\000\000\000\002\201\000\000\002\201\002\201\002\201\000\000\002\201\002\201\002\201\000\000\000\000\000\000\000\000\000\000\002\201\002\201\002\201\002\201\002\201\000\000\002\201\000\000\000\000\000\000\000\000\000\000\002\201\002\201\002\201\002\201\002\201\000\000\000\000\000\000\000\000\002\201\000\000\002\201\002\201\000\000\000\000\000\000\000\000\002\201\002\201\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\201\002\201\002\201\002\201\002\201\002\201\002\201\002\201\000\000\000\000\002\201\000\000\002\201\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\201\002\201\000\000\002\201\002\201\002\201\002\201\000\000\000\000\000\000\002\201\000\000\002\201\002\201\000\000\t\254\002\201\002\201\002\201\002\201\002\201\000\000\000\000\002\201\002\201\n\018\000\000\000\000\000\000\000\000\002\201\002\201\002\201\002\201\002\197\002\197\000\000\000\000\000\000\002\197\000\000\000\000\002\197\000\000\000\000\002\197\000\000\002\197\000\000\000\000\011&\000\000\002\197\002\197\002\197\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\002\197\002\197\002\197\011\166\002\197\000\000\002\197\000\000\000\000\000\000\000\000\000\000\002\197\002\197\002\197\002\197\002\197\000\000\000\000\000\000\000\000\002\197\000\000\002\197\002\197\000\000\000\000\000\000\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\197\011>\011\190\002\197\002\197\002\197\002\197\002\197\000\000\000\000\002\197\000\000\002\197\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\197\002\197\000\000\002\197\002\197\002\197\002\197\000\000\000\000\000\000\002\197\000\000\002\197\002\197\000\000\002\197\002\197\002\197\002\197\002\197\002\197\000\000\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\002\197\002\197\002\197\002\197\002\193\002\193\000\000\000\000\000\000\002\193\000\000\000\000\002\193\000\000\000\000\002\193\000\000\002\193\000\000\000\000\002\193\000\000\002\193\002\193\002\193\000\000\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\002\193\002\193\002\193\002\193\002\193\000\000\002\193\000\000\000\000\000\000\000\000\000\000\002\193\002\193\002\193\002\193\002\193\000\000\000\000\000\000\000\000\002\193\000\000\002\193\002\193\000\000\000\000\000\000\000\000\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\193\002\193\002\193\002\193\002\193\002\193\002\193\002\193\002\193\000\000\000\000\002\193\000\000\002\193\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\193\002\193\002\193\000\000\002\193\002\193\002\193\002\193\000\000\000\000\000\000\002\193\000\000\002\193\002\193\000\000\t\254\002\193\002\193\002\193\002\193\002\193\000\000\000\000\002\193\002\193\n\018\000\000\000\000\000\000\000\000\002\193\002\193\002\193\002\193\002\189\002\189\000\000\000\000\000\000\002\189\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\000\000\000\000\011&\000\000\002\189\002\189\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\011\166\002\189\000\000\002\189\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\002\189\002\189\000\000\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\000\000\000\000\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\189\011>\011\190\002\189\002\189\002\189\002\189\002\189\000\000\000\000\002\189\000\000\002\189\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\189\002\189\000\000\002\189\002\189\002\189\002\189\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\002\189\002\189\002\189\002\189\002\189\002\189\000\000\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\002\189\002\189\002\189\002\189\003\017\003\017\000\000\000\000\000\000\003\017\000\000\000\000\003\017\000\000\000\000\003\017\000\000\003\017\000\000\000\000\003\017\000\000\003\017\003\017\003\017\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\003\017\003\017\003\017\003\017\003\017\000\000\003\017\000\000\000\000\000\000\000\000\000\000\003\017\003\017\003\017\003\017\003\017\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\000\000\000\000\000\000\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\000\000\000\000\003\017\000\000\003\017\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\017\003\017\003\017\000\000\003\017\003\017\003\017\003\017\000\000\000\000\000\000\003\017\000\000\003\017\003\017\000\000\t\254\003\017\003\017\003\017\003\017\003\017\000\000\000\000\003\017\003\017\n\018\000\000\000\000\000\000\000\000\003\017\003\017\003\017\003\017\003\r\003\r\000\000\000\000\000\000\003\r\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\000\000\000\000\011&\000\000\003\r\003\r\003\r\000\000\003\r\003\r\003\r\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003\r\000\000\000\000\000\000\000\000\000\000\003\r\003\r\012\030\0126\003\r\000\000\000\000\000\000\000\000\003\r\000\000\012N\003\r\000\000\000\000\000\000\000\000\003\r\003\r\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003\r\003\r\011>\011\190\012f\012~\012\174\003\r\003\r\000\000\000\000\003\r\000\000\003\r\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003\r\003\r\012\222\000\000\003\r\003\r\003\r\003\r\000\000\000\000\000\000\003\r\000\000\003\r\003\r\000\000\003\r\003\r\003\r\012\150\003\r\003\r\000\000\000\000\003\r\012\246\003\r\000\000\000\000\000\000\000\000\003\r\003\r\r\014\r&\002\225\002\225\000\000\000\000\000\000\002\225\000\000\000\000\002\225\000\000\000\000\002\225\000\000\002\225\000\000\000\000\002\225\000\000\002\225\002\225\002\225\000\000\002\225\002\225\002\225\000\000\000\000\000\000\000\000\000\000\002\225\002\225\002\225\002\225\002\225\000\000\002\225\000\000\000\000\000\000\000\000\000\000\002\225\002\225\002\225\002\225\002\225\000\000\000\000\000\000\000\000\002\225\000\000\002\225\002\225\000\000\000\000\000\000\000\000\002\225\002\225\002\225\000\000\000\000\000\000\000\000\000\000\000\000\002\225\002\225\002\225\002\225\002\225\002\225\002\225\002\225\002\225\000\000\000\000\002\225\000\000\002\225\002\225\000\000\000\000\000\000\000\000\000\000\000\000\002\225\002\225\002\225\000\000\002\225\002\225\002\225\002\225\000\000\000\000\000\000\002\225\000\000\002\225\002\225\000\000\t\254\002\225\002\225\002\225\002\225\002\225\000\000\000\000\002\225\002\225\n\018\000\000\000\000\000\000\000\000\002\225\002\225\002\225\002\225\002\221\002\221\000\000\000\000\000\000\002\221\000\000\000\000\002\221\000\000\000\000\002\221\000\000\002\221\000\000\000\000\011&\000\000\002\221\002\221\002\221\000\000\002\221\002\221\002\221\000\000\000\000\000\000\000\000\000\000\002\221\002\221\002\221\011\166\002\221\000\000\002\221\000\000\000\000\000\000\000\000\000\000\002\221\002\221\002\221\002\221\002\221\000\000\000\000\000\000\000\000\002\221\000\000\002\221\002\221\000\000\000\000\000\000\000\000\002\221\002\221\002\221\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\221\011>\011\190\002\221\002\221\002\221\002\221\002\221\000\000\000\000\002\221\000\000\002\221\002\221\000\000\000\000\000\000\000\000\000\000\000\000\002\221\002\221\002\221\000\000\002\221\002\221\002\221\002\221\000\000\000\000\000\000\002\221\000\000\002\221\002\221\000\000\002\221\002\221\002\221\002\221\002\221\002\221\000\000\000\000\002\221\002\221\002\221\000\000\000\000\000\000\000\000\002\221\002\221\002\221\002\221\002\217\002\217\000\000\000\000\000\000\002\217\000\000\000\000\002\217\000\000\000\000\002\217\000\000\002\217\000\000\000\000\002\217\000\000\002\217\002\217\002\217\000\000\002\217\002\217\002\217\000\000\000\000\000\000\000\000\000\000\002\217\002\217\002\217\002\217\002\217\000\000\002\217\000\000\000\000\000\000\000\000\000\000\002\217\002\217\002\217\002\217\002\217\000\000\000\000\000\000\000\000\002\217\000\000\002\217\002\217\000\000\000\000\000\000\000\000\002\217\002\217\002\217\000\000\000\000\000\000\000\000\000\000\000\000\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\000\000\000\000\002\217\000\000\002\217\002\217\000\000\000\000\000\000\000\000\000\000\000\000\002\217\002\217\002\217\000\000\002\217\002\217\002\217\002\217\000\000\000\000\000\000\002\217\000\000\002\217\002\217\000\000\t\254\002\217\002\217\002\217\002\217\002\217\000\000\000\000\002\217\002\217\n\018\000\000\000\000\000\000\000\000\002\217\002\217\002\217\002\217\002\213\002\213\000\000\000\000\000\000\002\213\000\000\000\000\002\213\000\000\000\000\002\213\000\000\002\213\000\000\000\000\011&\000\000\002\213\002\213\002\213\000\000\002\213\002\213\002\213\000\000\000\000\000\000\000\000\000\000\002\213\002\213\002\213\011\166\002\213\000\000\002\213\000\000\000\000\000\000\000\000\000\000\002\213\002\213\002\213\002\213\002\213\000\000\000\000\000\000\000\000\002\213\000\000\002\213\002\213\000\000\000\000\000\000\000\000\002\213\002\213\002\213\000\000\000\000\000\000\000\000\000\000\000\000\002\213\002\213\011>\011\190\002\213\002\213\002\213\002\213\002\213\000\000\000\000\002\213\000\000\002\213\002\213\000\000\000\000\000\000\000\000\000\000\000\000\002\213\002\213\002\213\000\000\002\213\002\213\002\213\002\213\000\000\000\000\000\000\002\213\000\000\002\213\002\213\000\000\002\213\002\213\002\213\002\213\002\213\002\213\000\000\000\000\002\213\002\213\002\213\000\000\000\000\000\000\000\000\002\213\002\213\002\213\002\213\003\001\003\001\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\000\000\000\000\003\001\000\000\003\001\003\001\003\001\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\003\001\003\001\003\001\003\001\003\001\000\000\003\001\000\000\000\000\000\000\000\000\000\000\003\001\003\001\003\001\003\001\003\001\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\000\000\000\000\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\003\001\000\000\000\000\003\001\000\000\003\001\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\003\001\003\001\000\000\003\001\003\001\003\001\003\001\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\t\254\003\001\003\001\003\001\003\001\003\001\000\000\000\000\003\001\003\001\n\018\000\000\000\000\000\000\000\000\003\001\003\001\003\001\003\001\002\253\002\253\000\000\000\000\000\000\002\253\000\000\000\000\002\253\000\000\000\000\002\253\000\000\002\253\000\000\000\000\011&\000\000\002\253\002\253\002\253\000\000\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\002\253\000\000\002\253\000\000\000\000\000\000\000\000\000\000\002\253\002\253\012\030\0126\002\253\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\000\000\000\000\000\000\000\000\002\253\002\253\000\238\000\000\000\000\000\000\000\000\000\000\000\000\002\253\002\253\011>\011\190\012f\012~\002\253\002\253\002\253\000\000\000\000\002\253\000\000\002\253\002\253\000\000\000\000\000\000\000\000\000\000\000\000\002\253\002\253\002\253\000\000\002\253\002\253\002\253\002\253\000\000\000\000\000\000\002\253\000\000\002\253\002\253\000\000\002\253\002\253\002\253\012\150\002\253\002\253\000\000\000\000\002\253\002\253\002\253\000\000\000\000\000\000\000\000\002\253\002\253\002\253\002\253\002\169\002\169\000\000\000\000\000\000\002\169\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\000\000\000\000\002\169\000\000\002\169\002\169\002\169\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\002\169\002\169\002\169\002\169\000\000\002\169\000\000\000\000\000\000\000\000\000\000\002\169\002\169\002\169\002\169\002\169\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\000\000\000\000\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\169\002\169\002\169\002\169\002\169\002\169\002\169\002\169\000\000\000\000\002\169\000\000\002\169\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\169\002\169\000\000\002\169\002\169\002\169\002\169\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\t\254\002\169\002\169\002\169\002\169\002\169\000\000\000\000\002\169\002\169\n\018\000\000\000\000\000\000\000\000\002\169\002\169\002\169\002\169\002\165\002\165\000\000\000\000\000\000\002\165\000\000\000\000\002\165\000\000\000\000\002\165\000\000\002\165\000\000\000\000\011&\000\000\002\165\002\165\002\165\000\000\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\000\002\165\002\165\002\165\011\166\002\165\000\000\002\165\000\000\000\000\000\000\000\000\000\000\002\165\002\165\002\165\002\165\002\165\000\000\000\000\000\000\000\000\002\165\000\000\002\165\002\165\000\000\000\000\000\000\000\000\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\000\000\000\002\165\002\165\011>\011\190\002\165\002\165\002\165\002\165\002\165\000\000\000\000\002\165\000\000\002\165\002\165\000\000\000\000\000\000\000\000\000\000\000\000\002\165\002\165\002\165\000\000\002\165\002\165\002\165\002\165\000\000\000\000\000\000\002\165\000\000\002\165\002\165\000\000\002\165\002\165\002\165\002\165\002\165\002\165\000\000\000\000\002\165\002\165\002\165\000\000\000\000\000\000\000\000\002\165\002\165\002\165\002\165\002\161\002\161\000\000\000\000\000\000\002\161\000\000\000\000\002\161\000\000\000\000\002\161\000\000\002\161\000\000\000\000\002\161\000\000\002\161\002\161\002\161\000\000\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\002\161\002\161\002\161\002\161\002\161\000\000\002\161\000\000\000\000\000\000\000\000\000\000\002\161\002\161\002\161\002\161\002\161\000\000\000\000\000\000\000\000\002\161\000\000\002\161\002\161\000\000\000\000\000\000\000\000\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\000\000\002\161\002\161\002\161\002\161\002\161\002\161\002\161\002\161\002\161\000\000\000\000\002\161\000\000\002\161\002\161\000\000\000\000\000\000\000\000\000\000\000\000\002\161\002\161\002\161\000\000\002\161\002\161\002\161\002\161\000\000\000\000\000\000\002\161\000\000\002\161\002\161\000\000\t\254\002\161\002\161\002\161\002\161\002\161\000\000\000\000\002\161\002\161\n\018\000\000\000\000\000\000\000\000\002\161\002\161\002\161\002\161\002\157\002\157\000\000\000\000\000\000\002\157\000\000\000\000\002\157\000\000\000\000\002\157\000\000\002\157\000\000\000\000\011&\000\000\002\157\002\157\002\157\000\000\002\157\002\157\002\157\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\002\157\000\000\002\157\000\000\000\000\000\000\000\000\000\000\002\157\002\157\012\030\0126\002\157\000\000\000\000\000\000\000\000\002\157\000\000\002\157\002\157\000\000\000\000\000\000\000\000\002\157\002\157\000\238\000\000\000\000\000\000\000\000\000\000\000\000\002\157\002\157\011>\011\190\012f\012~\002\157\002\157\002\157\000\000\000\000\002\157\000\000\002\157\002\157\000\000\000\000\000\000\000\000\000\000\000\000\002\157\002\157\002\157\000\000\002\157\002\157\002\157\002\157\000\000\000\000\000\000\002\157\000\000\002\157\002\157\000\000\002\157\002\157\002\157\012\150\002\157\002\157\000\000\000\000\002\157\002\157\002\157\000\000\000\000\000\000\000\000\002\157\002\157\002\157\002\157\003Q\003Q\000\000\000\000\000\000\003Q\000\000\000\000\003Q\000\000\000\000\003Q\000\000\003Q\000\000\000\000\003Q\000\000\003Q\003Q\003Q\000\000\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\003Q\003Q\003Q\003Q\003Q\000\000\003Q\000\000\000\000\000\000\000\000\000\000\003Q\003Q\003Q\003Q\003Q\000\000\000\000\000\000\000\000\003Q\000\000\003Q\003Q\000\000\000\000\000\000\000\000\003Q\003Q\003Q\000\000\000\000\000\000\000\000\000\000\000\000\003Q\003Q\003Q\003Q\003Q\003Q\003Q\003Q\003Q\000\000\000\000\003Q\000\000\003Q\003Q\000\000\000\000\000\000\000\000\000\000\000\000\003Q\003Q\003Q\000\000\003Q\003Q\003Q\003Q\000\000\000\000\000\000\003Q\000\000\003Q\003Q\000\000\t\254\003Q\003Q\003Q\003Q\003Q\000\000\000\000\003Q\003Q\n\018\000\000\000\000\000\000\000\000\003Q\003Q\003Q\003Q\003M\003M\000\000\000\000\000\000\003M\000\000\000\000\003M\000\000\000\000\003M\000\000\003M\000\000\000\000\011&\000\000\003M\003M\003M\000\000\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\003M\000\000\003M\000\000\000\000\000\000\000\000\000\000\003M\003M\012\030\0126\003M\000\000\000\000\000\000\000\000\003M\000\000\003M\003M\000\000\000\000\000\000\000\000\003M\003M\003M\000\000\000\000\000\000\000\000\000\000\000\000\003M\003M\011>\011\190\012f\003M\003M\003M\003M\000\000\000\000\003M\000\000\003M\003M\000\000\000\000\000\000\000\000\000\000\000\000\003M\003M\003M\000\000\003M\003M\003M\003M\000\000\000\000\000\000\003M\000\000\003M\003M\000\000\003M\003M\003M\012\150\003M\003M\000\000\000\000\003M\003M\003M\000\000\000\000\000\000\000\000\003M\003M\003M\003M\002\153\002\153\000\000\000\000\000\000\002\153\000\000\000\000\002\153\000\000\000\000\002\153\000\000\002\153\000\000\000\000\002\153\000\000\002\153\002\153\002\153\000\000\002\153\002\153\002\153\000\000\000\000\000\000\000\000\000\000\002\153\002\153\002\153\002\153\002\153\000\000\002\153\000\000\000\000\000\000\000\000\000\000\002\153\002\153\002\153\002\153\002\153\000\000\000\000\000\000\000\000\002\153\000\000\002\153\002\153\000\000\000\000\000\000\000\000\002\153\002\153\002\153\000\000\000\000\000\000\000\000\000\000\000\000\002\153\002\153\002\153\002\153\002\153\002\153\002\153\002\153\002\153\000\000\000\000\002\153\000\000\002\153\002\153\000\000\000\000\000\000\000\000\000\000\000\000\002\153\002\153\002\153\000\000\002\153\002\153\002\153\002\153\000\000\000\000\000\000\002\153\000\000\002\153\002\153\000\000\t\254\002\153\002\153\002\153\002\153\002\153\000\000\000\000\002\153\002\153\n\018\000\000\000\000\000\000\000\000\002\153\002\153\002\153\002\153\002\149\002\149\000\000\000\000\000\000\002\149\000\000\000\000\002\149\000\000\000\000\002\149\000\000\002\149\000\000\000\000\011&\000\000\002\149\002\149\002\149\000\000\002\149\002\149\002\149\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\002\149\000\000\002\149\000\000\000\000\000\000\000\000\000\000\002\149\002\149\012\030\0126\002\149\000\000\000\000\000\000\000\000\002\149\000\000\002\149\002\149\000\000\000\000\000\000\000\000\002\149\002\149\000\238\000\000\000\000\000\000\000\000\000\000\000\000\002\149\002\149\011>\011\190\012f\012~\002\149\002\149\002\149\000\000\000\000\002\149\000\000\002\149\002\149\000\000\000\000\000\000\000\000\000\000\000\000\002\149\002\149\002\149\000\000\002\149\002\149\002\149\002\149\000\000\000\000\000\000\002\149\000\000\002\149\002\149\000\000\002\149\002\149\002\149\012\150\002\149\002\149\000\000\000\000\002\149\002\149\002\149\000\000\000\000\000\000\000\000\002\149\002\149\002\149\002\149\003\t\003\t\000\000\000\000\000\000\003\t\000\000\000\000\003\t\000\000\000\000\003\t\000\000\003\t\000\000\000\000\003\t\000\000\003\t\003\t\003\t\000\000\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\003\t\003\t\003\t\003\t\003\t\000\000\003\t\000\000\000\000\000\000\000\000\000\000\003\t\003\t\003\t\003\t\003\t\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\000\000\000\000\000\000\000\000\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\000\000\003\t\003\t\003\t\003\t\003\t\003\t\003\t\003\t\003\t\000\000\000\000\003\t\000\000\003\t\003\t\000\000\000\000\000\000\000\000\000\000\000\000\003\t\003\t\003\t\000\000\003\t\003\t\003\t\003\t\000\000\000\000\000\000\003\t\000\000\003\t\003\t\000\000\t\254\003\t\003\t\003\t\003\t\003\t\000\000\000\000\003\t\003\t\n\018\000\000\000\000\000\000\000\000\003\t\003\t\003\t\003\t\003\005\003\005\000\000\000\000\000\000\003\005\000\000\000\000\003\005\000\000\000\000\003\005\000\000\003\005\000\000\000\000\011&\000\000\003\005\003\005\003\005\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\003\005\000\000\003\005\000\000\000\000\000\000\000\000\000\000\003\005\003\005\012\030\0126\003\005\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\000\000\000\000\000\000\003\005\003\005\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003\005\003\005\011>\011\190\012f\012~\003\005\003\005\003\005\000\000\000\000\003\005\000\000\003\005\003\005\000\000\000\000\000\000\000\000\000\000\000\000\003\005\003\005\003\005\000\000\003\005\003\005\003\005\003\005\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\003\005\003\005\003\005\012\150\003\005\003\005\000\000\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\003\005\003\005\003\005\003\005\002\249\002\249\000\000\000\000\000\000\002\249\000\000\000\000\002\249\000\000\000\000\002\249\000\000\002\249\000\000\000\000\002\249\000\000\002\249\002\249\002\249\000\000\002\249\002\249\002\249\000\000\000\000\000\000\000\000\000\000\002\249\002\249\002\249\002\249\002\249\000\000\002\249\000\000\000\000\000\000\000\000\000\000\002\249\002\249\002\249\002\249\002\249\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\000\000\000\000\000\000\000\000\002\249\002\249\002\249\000\000\000\000\000\000\000\000\000\000\000\000\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\000\000\000\000\002\249\000\000\002\249\002\249\000\000\000\000\000\000\000\000\000\000\000\000\002\249\002\249\002\249\000\000\002\249\002\249\002\249\002\249\000\000\000\000\000\000\002\249\000\000\002\249\002\249\000\000\t\254\002\249\002\249\002\249\002\249\002\249\000\000\000\000\002\249\002\249\n\018\000\000\000\000\000\000\000\000\002\249\002\249\002\249\002\249\002\245\002\245\000\000\000\000\000\000\002\245\000\000\000\000\002\245\000\000\000\000\002\245\000\000\002\245\000\000\000\000\011&\000\000\002\245\002\245\002\245\000\000\002\245\002\245\002\245\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\002\245\000\000\002\245\000\000\000\000\000\000\000\000\000\000\002\245\002\245\012\030\0126\002\245\000\000\000\000\000\000\000\000\002\245\000\000\002\245\002\245\000\000\000\000\000\000\000\000\002\245\002\245\000\238\000\000\000\000\000\000\000\000\000\000\000\000\002\245\002\245\011>\011\190\012f\012~\002\245\002\245\002\245\000\000\000\000\002\245\000\000\002\245\002\245\000\000\000\000\000\000\000\000\000\000\000\000\002\245\002\245\002\245\000\000\002\245\002\245\002\245\002\245\000\000\000\000\000\000\002\245\000\000\002\245\002\245\000\000\002\245\002\245\002\245\012\150\002\245\002\245\000\000\000\000\002\245\002\245\002\245\000\000\000\000\000\000\000\000\002\245\002\245\002\245\002\245\003\025\003\025\000\000\000\000\000\000\003\025\000\000\000\000\003\025\000\000\000\000\003\025\000\000\003\025\000\000\000\000\003\025\000\000\003\025\003\025\003\025\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\003\025\003\025\000\000\003\025\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\003\025\003\025\000\000\000\000\000\000\000\000\003\025\000\000\003\025\003\025\000\000\000\000\000\000\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\003\025\003\025\003\025\003\025\003\025\003\025\000\000\000\000\003\025\000\000\003\025\003\025\000\000\000\000\000\000\000\000\000\000\000\000\003\025\003\025\003\025\000\000\003\025\003\025\003\025\003\025\000\000\000\000\000\000\003\025\000\000\003\025\003\025\000\000\t\254\003\025\003\025\003\025\003\025\003\025\000\000\000\000\003\025\003\025\n\018\000\000\000\000\000\000\000\000\003\025\003\025\003\025\003\025\003\021\003\021\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\000\000\000\000\011&\000\000\003\021\003\021\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003\021\000\000\000\000\000\000\000\000\000\000\003\021\003\021\012\030\0126\003\021\000\000\000\000\000\000\000\000\003\021\000\000\012N\003\021\000\000\000\000\000\000\000\000\003\021\003\021\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003\021\003\021\011>\011\190\012f\012~\012\174\003\021\003\021\000\000\000\000\003\021\000\000\003\021\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003\021\003\021\012\222\000\000\003\021\003\021\003\021\003\021\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\003\021\003\021\003\021\012\150\003\021\003\021\000\000\000\000\003\021\012\246\003\021\000\000\000\000\000\000\000\000\003\021\003\021\r\014\r&\003!\003!\000\000\000\000\000\000\003!\000\000\000\000\003!\000\000\000\000\003!\000\000\003!\000\000\000\000\003!\000\000\003!\003!\003!\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\003!\000\000\003!\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\003!\000\000\000\000\000\000\000\000\003!\000\000\003!\003!\000\000\000\000\000\000\000\000\003!\003!\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\003!\003!\003!\003!\003!\003!\000\000\000\000\003!\000\000\003!\003!\000\000\000\000\000\000\000\000\000\000\000\000\003!\003!\003!\000\000\003!\003!\003!\003!\000\000\000\000\000\000\003!\000\000\003!\003!\000\000\t\254\003!\003!\003!\003!\003!\000\000\000\000\003!\003!\n\018\000\000\000\000\000\000\000\000\003!\003!\003!\003!\003\029\003\029\000\000\000\000\000\000\003\029\000\000\000\000\003\029\000\000\000\000\003\029\000\000\003\029\000\000\000\000\011&\000\000\003\029\003\029\003\029\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\003\029\000\000\003\029\000\000\000\000\000\000\000\000\000\000\003\029\003\029\012\030\0126\003\029\000\000\000\000\000\000\000\000\003\029\000\000\012N\003\029\000\000\000\000\000\000\000\000\003\029\003\029\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003\029\003\029\011>\011\190\012f\012~\012\174\003\029\003\029\000\000\000\000\003\029\000\000\003\029\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003\029\003\029\012\222\000\000\003\029\003\029\003\029\003\029\000\000\000\000\000\000\003\029\000\000\003\029\003\029\000\000\003\029\003\029\003\029\012\150\003\029\003\029\000\000\000\000\003\029\003\029\003\029\000\000\000\000\000\000\000\000\003\029\003\029\r\014\r&\003)\003)\000\000\000\000\000\000\003)\000\000\000\000\003)\000\000\000\000\003)\000\000\003)\000\000\000\000\003)\000\000\003)\003)\003)\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\003)\000\000\003)\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\003)\000\000\000\000\000\000\000\000\003)\000\000\003)\003)\000\000\000\000\000\000\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\003)\003)\003)\003)\003)\003)\000\000\000\000\003)\000\000\003)\003)\000\000\000\000\000\000\000\000\000\000\000\000\003)\003)\003)\000\000\003)\003)\003)\003)\000\000\000\000\000\000\003)\000\000\003)\003)\000\000\t\254\003)\003)\003)\003)\003)\000\000\000\000\003)\003)\n\018\000\000\000\000\000\000\000\000\003)\003)\003)\003)\003%\003%\000\000\000\000\000\000\003%\000\000\000\000\003%\000\000\000\000\003%\000\000\003%\000\000\000\000\011&\000\000\003%\003%\003%\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\003%\000\000\003%\000\000\000\000\000\000\000\000\000\000\003%\003%\012\030\0126\003%\000\000\000\000\000\000\000\000\003%\000\000\012N\003%\000\000\000\000\000\000\000\000\003%\003%\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003%\003%\011>\011\190\012f\012~\012\174\003%\003%\000\000\000\000\003%\000\000\003%\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003%\003%\012\222\000\000\003%\003%\003%\003%\000\000\000\000\000\000\003%\000\000\003%\003%\000\000\003%\003%\003%\012\150\003%\003%\000\000\000\000\003%\003%\003%\000\000\000\000\000\000\000\000\003%\003%\r\014\r&\n\017\n\017\000\000\000\000\000\000\n\017\000\000\000\000\n\017\000\000\000\000\n\017\000\000\n\017\000\000\000\000\n\017\000\000\n\017\n\017\n\017\000\000\n\017\n\017\n\017\000\000\000\000\000\000\000\000\000\000\n\017\n\017\n\017\n\017\n\017\000\000\n\017\000\000\000\000\000\000\000\000\000\000\n\017\n\017\n\017\n\017\n\017\000\000\000\000\000\000\000\000\n\017\000\000\n\017\n\017\000\000\000\000\000\000\000\000\n\017\n\017\n\017\000\000\000\000\000\000\000\000\000\000\000\000\n\017\n\017\n\017\n\017\n\017\n\017\n\017\n\017\n\017\000\000\000\000\n\017\000\000\n\017\n\017\000\000\000\000\000\000\000\000\000\000\000\000\n\017\n\017\n\017\000\000\n\017\n\017\n\017\n\017\000\000\000\000\000\000\n\017\000\000\n\017\n\017\000\000\t\254\n\017\n\017\n\017\n\017\n\017\000\000\000\000\n\017\n\017\n\018\000\000\000\000\000\000\000\000\n\017\n\017\n\017\n\017\n\r\n\r\000\000\000\000\000\000\n\r\000\000\000\000\n\r\000\000\000\000\n\r\000\000\n\r\000\000\000\000\011&\000\000\n\r\n\r\n\r\000\000\n\r\n\r\n\r\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\n\r\000\000\000\000\000\000\000\000\000\000\n\r\n\r\012\030\0126\n\r\000\000\000\000\000\000\000\000\n\r\000\000\012N\n\r\000\000\000\000\000\000\000\000\n\r\n\r\000\238\000\000\000\000\000\000\000\000\000\000\000\000\n\r\n\r\011>\011\190\012f\012~\012\174\n\r\n\r\000\000\000\000\n\r\000\000\n\r\012\198\000\000\000\000\000\000\000\000\000\000\000\000\n\r\n\r\012\222\000\000\n\r\n\r\n\r\n\r\000\000\000\000\000\000\n\r\000\000\n\r\n\r\000\000\n\r\n\r\n\r\012\150\n\r\n\r\000\000\000\000\n\r\012\246\n\r\000\000\000\000\000\000\000\000\n\r\n\r\r\014\r&\0031\0031\000\000\000\000\000\000\0031\000\000\000\000\0031\000\000\000\000\0031\000\000\0031\000\000\000\000\0031\000\000\0031\0031\0031\000\000\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\0031\0031\000\000\0031\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\0031\0031\000\000\000\000\000\000\000\000\0031\000\000\0031\0031\000\000\000\000\000\000\000\000\0031\0031\0031\000\000\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\0031\0031\0031\0031\0031\0031\000\000\000\000\0031\000\000\0031\0031\000\000\000\000\000\000\000\000\000\000\000\000\0031\0031\0031\000\000\0031\0031\0031\0031\000\000\000\000\000\000\0031\000\000\0031\0031\000\000\t\254\0031\0031\0031\0031\0031\000\000\000\000\0031\0031\n\018\000\000\000\000\000\000\000\000\0031\0031\0031\0031\003-\003-\000\000\000\000\000\000\003-\000\000\000\000\003-\000\000\000\000\003-\000\000\003-\000\000\000\000\011&\000\000\003-\003-\003-\000\000\003-\003-\003-\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003-\000\000\000\000\000\000\000\000\000\000\003-\003-\012\030\0126\003-\000\000\000\000\000\000\000\000\003-\000\000\012N\003-\000\000\000\000\000\000\000\000\003-\003-\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003-\003-\011>\011\190\012f\012~\012\174\003-\003-\000\000\000\000\003-\000\000\003-\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003-\003-\012\222\000\000\003-\003-\003-\003-\000\000\000\000\000\000\003-\000\000\003-\003-\000\000\r>\003-\rV\012\150\003-\003-\000\000\000\000\003-\012\246\003-\000\000\000\000\000\000\000\000\003-\003-\r\014\r&\n\005\n\005\000\000\000\000\000\000\n\005\000\000\000\000\n\005\000\000\000\000\n\005\000\000\n\005\000\000\000\000\011&\000\000\n\005\n\005\n\005\000\000\n\005\n\005\n\005\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\n\005\000\000\000\000\000\000\000\000\000\000\n\005\n\005\012\030\0126\n\005\000\000\000\000\000\000\000\000\n\005\000\000\012N\n\005\000\000\000\000\000\000\000\000\n\005\n\005\000\238\000\000\000\000\000\000\000\000\000\000\000\000\n\005\n\005\011>\011\190\012f\012~\012\174\n\005\n\005\000\000\000\000\n\005\000\000\n\005\012\198\000\000\000\000\000\000\000\000\000\000\000\000\n\005\n\005\012\222\000\000\n\005\n\005\n\005\n\005\000\000\000\000\000\000\n\005\000\000\n\005\n\005\000\000\n\005\n\005\n\005\012\150\n\005\n\005\000\000\000\000\n\005\012\246\n\005\000\000\000\000\000\000\000\000\n\005\n\005\r\014\r&\003\129\003\129\000\000\000\000\000\000\003\129\000\000\000\000\003\129\000\000\000\000\003\129\000\000\003\129\000\000\000\000\003\129\000\000\003\129\003\129\003\129\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\000\000\003\129\003\129\003\129\003\129\003\129\000\000\003\129\000\000\000\000\000\000\000\000\000\000\003\129\003\129\003\129\003\129\003\129\000\000\000\000\000\000\000\000\003\129\000\000\003\129\003\129\000\000\000\000\000\000\000\000\003\129\003\129\003\129\000\000\000\000\000\000\000\000\000\000\000\000\003\129\003\129\003\129\003\129\003\129\003\129\003\129\003\129\003\129\000\000\000\000\003\129\000\000\003\129\003\129\000\000\000\000\000\000\000\000\000\000\000\000\003\129\003\129\003\129\000\000\003\129\003\129\003\129\003\129\000\000\000\000\000\000\003\129\000\000\003\129\003\129\000\000\t\254\003\129\003\129\003\129\003\129\003\129\000\000\000\000\003\129\003\129\n\018\000\000\000\000\000\000\000\000\003\129\003\129\003\129\003\129\003}\003}\000\000\000\000\000\000\003}\000\000\000\000\003}\000\000\000\000\003}\000\000\003}\000\000\000\000\011&\000\000\003}\003}\003}\000\000\003}\003}\003}\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003}\000\000\000\000\000\000\000\000\000\000\003}\003}\012\030\0126\003}\000\000\000\000\000\000\000\000\003}\000\000\012N\003}\000\000\000\000\000\000\000\000\003}\003}\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003}\003}\011>\011\190\012f\012~\012\174\003}\003}\000\000\000\000\003}\000\000\003}\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003}\003}\012\222\000\000\003}\003}\003}\003}\000\000\000\000\000\000\003}\000\000\003}\003}\000\000\r>\003}\rV\012\150\003}\003}\000\000\000\000\003}\012\246\003}\000\000\000\000\000\000\000\000\003}\003}\r\014\r&\003\161\003\161\000\000\000\000\000\000\003\161\000\000\000\000\003\161\000\000\000\000\003\161\000\000\003\161\000\000\000\000\003\161\000\000\003\161\003\161\003\161\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\003\161\003\161\000\000\003\161\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\003\161\003\161\000\000\000\000\000\000\000\000\003\161\000\000\003\161\003\161\000\000\000\000\000\000\000\000\003\161\003\161\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\003\161\003\161\003\161\003\161\003\161\003\161\000\000\000\000\003\161\000\000\003\161\003\161\000\000\000\000\000\000\000\000\000\000\000\000\003\161\003\161\003\161\000\000\003\161\003\161\003\161\003\161\000\000\000\000\000\000\003\161\000\000\003\161\003\161\000\000\t\254\003\161\003\161\003\161\003\161\003\161\000\000\000\000\003\161\003\161\n\018\000\000\000\000\000\000\000\000\003\161\003\161\003\161\003\161\003\157\003\157\000\000\000\000\000\000\003\157\000\000\000\000\003\157\000\000\000\000\003\157\000\000\003\157\000\000\000\000\011&\000\000\003\157\003\157\003\157\000\000\003\157\003\157\003\157\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003\157\000\000\000\000\000\000\000\000\000\000\003\157\003\157\012\030\0126\003\157\000\000\000\000\000\000\000\000\003\157\000\000\012N\003\157\000\000\000\000\000\000\000\000\003\157\003\157\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003\157\003\157\011>\011\190\012f\012~\012\174\003\157\003\157\000\000\000\000\003\157\000\000\003\157\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003\157\003\157\012\222\000\000\003\157\003\157\003\157\003\157\000\000\000\000\000\000\003\157\000\000\003\157\003\157\000\000\r>\003\157\rV\012\150\003\157\003\157\000\000\000\000\003\157\012\246\003\157\000\000\000\000\000\000\000\000\003\157\003\157\r\014\r&\003\145\003\145\000\000\000\000\000\000\003\145\000\000\000\000\003\145\000\000\000\000\003\145\000\000\003\145\000\000\000\000\003\145\000\000\003\145\003\145\003\145\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\003\145\003\145\000\000\003\145\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\003\145\003\145\000\000\000\000\000\000\000\000\003\145\000\000\003\145\003\145\000\000\000\000\000\000\000\000\003\145\003\145\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\003\145\003\145\003\145\003\145\003\145\003\145\000\000\000\000\003\145\000\000\003\145\003\145\000\000\000\000\000\000\000\000\000\000\000\000\003\145\003\145\003\145\000\000\003\145\003\145\003\145\003\145\000\000\000\000\000\000\003\145\000\000\003\145\003\145\000\000\t\254\003\145\003\145\003\145\003\145\003\145\000\000\000\000\003\145\003\145\n\018\000\000\000\000\000\000\000\000\003\145\003\145\003\145\003\145\003\141\003\141\000\000\000\000\000\000\003\141\000\000\000\000\003\141\000\000\000\000\003\141\000\000\003\141\000\000\000\000\011&\000\000\003\141\003\141\003\141\000\000\003\141\003\141\003\141\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003\141\000\000\000\000\000\000\000\000\000\000\003\141\003\141\012\030\0126\003\141\000\000\000\000\000\000\000\000\003\141\000\000\012N\003\141\000\000\000\000\000\000\000\000\003\141\003\141\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003\141\003\141\011>\011\190\012f\012~\012\174\003\141\003\141\000\000\000\000\003\141\000\000\003\141\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003\141\003\141\012\222\000\000\003\141\003\141\003\141\003\141\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\r>\003\141\rV\012\150\003\141\003\141\000\000\000\000\003\141\012\246\003\141\000\000\000\000\000\000\000\000\003\141\003\141\r\014\r&\003i\003i\000\000\000\000\000\000\003i\000\000\000\000\003i\000\000\000\000\003i\000\000\003i\000\000\000\000\003i\000\000\003i\003i\003i\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\003i\003i\003i\003i\003i\000\000\003i\000\000\000\000\000\000\000\000\000\000\003i\003i\003i\003i\003i\000\000\000\000\000\000\000\000\003i\000\000\003i\003i\000\000\000\000\000\000\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\003i\003i\003i\003i\003i\003i\003i\003i\000\000\000\000\003i\000\000\003i\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\003i\003i\000\000\003i\003i\003i\003i\000\000\000\000\000\000\003i\000\000\003i\003i\000\000\t\254\003i\003i\003i\003i\003i\000\000\000\000\003i\003i\n\018\000\000\000\000\000\000\000\000\003i\003i\003i\003i\003e\003e\000\000\000\000\000\000\003e\000\000\000\000\003e\000\000\000\000\003e\000\000\003e\000\000\000\000\011&\000\000\003e\003e\003e\000\000\003e\003e\003e\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003e\000\000\000\000\000\000\000\000\000\000\003e\003e\012\030\0126\003e\000\000\000\000\000\000\000\000\003e\000\000\012N\003e\000\000\000\000\000\000\000\000\003e\003e\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003e\003e\011>\011\190\012f\012~\012\174\003e\003e\000\000\000\000\003e\000\000\003e\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003e\003e\012\222\000\000\003e\003e\003e\003e\000\000\000\000\000\000\003e\000\000\003e\003e\000\000\r>\003e\rV\012\150\003e\003e\000\000\000\000\003e\012\246\003e\000\000\000\000\000\000\000\000\003e\003e\r\014\r&\003y\003y\000\000\000\000\000\000\003y\000\000\000\000\003y\000\000\000\000\003y\000\000\003y\000\000\000\000\003y\000\000\003y\003y\003y\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\003y\003y\000\000\003y\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\003y\003y\000\000\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\000\000\000\000\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\003y\003y\003y\003y\003y\003y\000\000\000\000\003y\000\000\003y\003y\000\000\000\000\000\000\000\000\000\000\000\000\003y\003y\003y\000\000\003y\003y\003y\003y\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\t\254\003y\003y\003y\003y\003y\000\000\000\000\003y\003y\n\018\000\000\000\000\000\000\000\000\003y\003y\003y\003y\003u\003u\000\000\000\000\000\000\003u\000\000\000\000\003u\000\000\000\000\003u\000\000\003u\000\000\000\000\011&\000\000\003u\003u\003u\000\000\003u\003u\003u\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003u\000\000\000\000\000\000\000\000\000\000\003u\003u\012\030\0126\003u\000\000\000\000\000\000\000\000\003u\000\000\012N\003u\000\000\000\000\000\000\000\000\003u\003u\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003u\003u\011>\011\190\012f\012~\012\174\003u\003u\000\000\000\000\003u\000\000\003u\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003u\003u\012\222\000\000\003u\003u\003u\003u\000\000\000\000\000\000\003u\000\000\003u\003u\000\000\r>\003u\rV\012\150\003u\003u\000\000\000\000\003u\012\246\003u\000\000\000\000\000\000\000\000\003u\003u\r\014\r&\003q\003q\000\000\000\000\000\000\003q\000\000\000\000\003q\000\000\000\000\003q\000\000\003q\000\000\000\000\003q\000\000\003q\003q\003q\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\003q\003q\003q\003q\003q\000\000\003q\000\000\000\000\000\000\000\000\000\000\003q\003q\003q\003q\003q\000\000\000\000\000\000\000\000\003q\000\000\003q\003q\000\000\000\000\000\000\000\000\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\003q\003q\003q\003q\003q\003q\003q\003q\000\000\000\000\003q\000\000\003q\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\003q\003q\000\000\003q\003q\003q\003q\000\000\000\000\000\000\003q\000\000\003q\003q\000\000\t\254\003q\003q\003q\003q\003q\000\000\000\000\003q\003q\n\018\000\000\000\000\000\000\000\000\003q\003q\003q\003q\003m\003m\000\000\000\000\000\000\003m\000\000\000\000\003m\000\000\000\000\003m\000\000\003m\000\000\000\000\011&\000\000\003m\003m\003m\000\000\003m\003m\003m\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003m\000\000\000\000\000\000\000\000\000\000\003m\003m\012\030\0126\003m\000\000\000\000\000\000\000\000\003m\000\000\012N\003m\000\000\000\000\000\000\000\000\003m\003m\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003m\003m\011>\011\190\012f\012~\012\174\003m\003m\000\000\000\000\003m\000\000\003m\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003m\003m\012\222\000\000\003m\003m\003m\003m\000\000\000\000\000\000\003m\000\000\003m\003m\000\000\r>\003m\rV\012\150\003m\003m\000\000\000\000\003m\012\246\003m\000\000\000\000\000\000\000\000\003m\003m\r\014\r&\003\137\003\137\000\000\000\000\000\000\003\137\000\000\000\000\003\137\000\000\000\000\003\137\000\000\003\137\000\000\000\000\003\137\000\000\003\137\003\137\003\137\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\003\137\003\137\000\000\003\137\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\003\137\003\137\000\000\000\000\000\000\000\000\003\137\000\000\003\137\003\137\000\000\000\000\000\000\000\000\003\137\003\137\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\003\137\003\137\003\137\003\137\003\137\003\137\000\000\000\000\003\137\000\000\003\137\003\137\000\000\000\000\000\000\000\000\000\000\000\000\003\137\003\137\003\137\000\000\003\137\003\137\003\137\003\137\000\000\000\000\000\000\003\137\000\000\003\137\003\137\000\000\t\254\003\137\003\137\003\137\003\137\003\137\000\000\000\000\003\137\003\137\n\018\000\000\000\000\000\000\000\000\003\137\003\137\003\137\003\137\003\133\003\133\000\000\000\000\000\000\003\133\000\000\000\000\003\133\000\000\000\000\003\133\000\000\003\133\000\000\000\000\011&\000\000\003\133\003\133\003\133\000\000\003\133\003\133\003\133\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003\133\000\000\000\000\000\000\000\000\000\000\003\133\003\133\012\030\0126\003\133\000\000\000\000\000\000\000\000\003\133\000\000\012N\003\133\000\000\000\000\000\000\000\000\003\133\003\133\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003\133\003\133\011>\011\190\012f\012~\012\174\003\133\003\133\000\000\000\000\003\133\000\000\003\133\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003\133\003\133\012\222\000\000\003\133\003\133\003\133\003\133\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\r>\003\133\rV\012\150\003\133\003\133\000\000\000\000\003\133\012\246\003\133\000\000\000\000\000\000\000\000\003\133\003\133\r\014\r&\003\169\003\169\000\000\000\000\000\000\003\169\000\000\000\000\003\169\000\000\000\000\003\169\000\000\003\169\000\000\000\000\003\169\000\000\003\169\003\169\003\169\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\003\169\003\169\000\000\003\169\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\003\169\003\169\000\000\000\000\000\000\000\000\003\169\000\000\003\169\003\169\000\000\000\000\000\000\000\000\003\169\003\169\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\000\000\000\000\003\169\000\000\003\169\003\169\000\000\000\000\000\000\000\000\000\000\000\000\003\169\003\169\003\169\000\000\003\169\003\169\003\169\003\169\000\000\000\000\000\000\003\169\000\000\003\169\003\169\000\000\t\254\003\169\003\169\003\169\003\169\003\169\000\000\000\000\003\169\003\169\n\018\000\000\000\000\000\000\000\000\003\169\003\169\003\169\003\169\003\165\003\165\000\000\000\000\000\000\003\165\000\000\000\000\003\165\000\000\000\000\003\165\000\000\003\165\000\000\000\000\011&\000\000\003\165\003\165\003\165\000\000\003\165\003\165\003\165\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003\165\000\000\000\000\000\000\000\000\000\000\003\165\003\165\012\030\0126\003\165\000\000\000\000\000\000\000\000\003\165\000\000\012N\003\165\000\000\000\000\000\000\000\000\003\165\003\165\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003\165\003\165\011>\011\190\012f\012~\012\174\003\165\003\165\000\000\000\000\003\165\000\000\003\165\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003\165\003\165\012\222\000\000\003\165\003\165\003\165\003\165\000\000\000\000\000\000\003\165\000\000\003\165\003\165\000\000\r>\003\165\rV\012\150\003\165\003\165\000\000\000\000\003\165\012\246\003\165\000\000\000\000\000\000\000\000\003\165\003\165\r\014\r&\003\153\003\153\000\000\000\000\000\000\003\153\000\000\000\000\003\153\000\000\000\000\003\153\000\000\003\153\000\000\000\000\003\153\000\000\003\153\003\153\003\153\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\003\153\003\153\000\000\003\153\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\003\153\003\153\000\000\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\000\000\000\000\000\000\003\153\003\153\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\003\153\000\000\000\000\003\153\000\000\003\153\003\153\000\000\000\000\000\000\000\000\000\000\000\000\003\153\003\153\003\153\000\000\003\153\003\153\003\153\003\153\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\t\254\003\153\003\153\003\153\003\153\003\153\000\000\000\000\003\153\003\153\n\018\000\000\000\000\000\000\000\000\003\153\003\153\003\153\003\153\003\149\003\149\000\000\000\000\000\000\003\149\000\000\000\000\003\149\000\000\000\000\003\149\000\000\003\149\000\000\000\000\011&\000\000\003\149\003\149\003\149\000\000\003\149\003\149\003\149\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003\149\000\000\000\000\000\000\000\000\000\000\003\149\003\149\012\030\0126\003\149\000\000\000\000\000\000\000\000\003\149\000\000\012N\003\149\000\000\000\000\000\000\000\000\003\149\003\149\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003\149\003\149\011>\011\190\012f\012~\012\174\003\149\003\149\000\000\000\000\003\149\000\000\003\149\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003\149\003\149\012\222\000\000\003\149\003\149\003\149\003\149\000\000\000\000\000\000\003\149\000\000\003\149\003\149\000\000\r>\003\149\rV\012\150\003\149\003\149\000\000\000\000\003\149\012\246\003\149\000\000\000\000\000\000\000\000\003\149\003\149\r\014\r&\003a\003a\000\000\000\000\000\000\003a\000\000\000\000\003a\000\000\000\000\003a\000\000\003a\000\000\000\000\003a\000\000\003a\003a\003a\000\000\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\003a\003a\000\000\003a\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\003a\003a\000\000\000\000\000\000\000\000\003a\000\000\003a\003a\000\000\000\000\000\000\000\000\003a\003a\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\003a\003a\003a\003a\003a\003a\000\000\000\000\003a\000\000\003a\003a\000\000\000\000\000\000\000\000\000\000\000\000\003a\003a\003a\000\000\003a\003a\003a\003a\000\000\000\000\000\000\003a\000\000\003a\003a\000\000\t\254\003a\003a\003a\003a\003a\000\000\000\000\003a\003a\n\018\000\000\000\000\000\000\000\000\003a\003a\003a\003a\003]\003]\000\000\000\000\000\000\003]\000\000\000\000\003]\000\000\000\000\003]\000\000\003]\000\000\000\000\011&\000\000\003]\003]\003]\000\000\003]\003]\003]\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003]\000\000\000\000\000\000\000\000\000\000\003]\003]\012\030\0126\003]\000\000\000\000\000\000\000\000\003]\000\000\012N\003]\000\000\000\000\000\000\000\000\003]\003]\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003]\003]\011>\011\190\012f\012~\012\174\003]\003]\000\000\000\000\003]\000\000\003]\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003]\003]\012\222\000\000\003]\003]\003]\003]\000\000\000\000\000\000\003]\000\000\003]\003]\000\000\r>\003]\rV\012\150\003]\003]\000\000\000\000\003]\012\246\003]\000\000\000\000\000\000\000\000\003]\003]\r\014\r&\n\021\n\021\000\000\000\000\000\000\n\021\000\000\000\000\n\021\000\000\000\000\n\021\000\000\n\021\000\000\000\000\011&\000\000\n\021\n\021\n\021\000\000\n\021\n\021\n\021\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\n\021\000\000\000\000\000\000\000\000\000\000\n\021\n\021\012\030\0126\n\021\000\000\000\000\000\000\000\000\n\021\000\000\012N\n\021\000\000\000\000\000\000\000\000\n\021\n\021\000\238\000\000\000\000\000\000\000\000\000\000\000\000\n\021\n\021\011>\011\190\012f\012~\012\174\n\021\n\021\000\000\000\000\n\021\000\000\n\021\012\198\000\000\000\000\000\000\000\000\000\000\000\000\n\021\n\021\012\222\000\000\n\021\n\021\n\021\n\021\000\000\000\000\000\000\n\021\000\000\n\021\n\021\000\000\n\021\n\021\n\021\012\150\n\021\n\021\000\000\000\000\n\021\012\246\n\021\000\000\000\000\000\000\000\000\n\021\n\021\r\014\r&\nm\nm\000\000\000\000\000\000\nm\000\000\000\000\nm\000\000\000\000\nm\000\000\nm\000\000\000\000\nm\000\000\nm\nm\nm\000\000\nm\nm\nm\000\000\000\000\000\000\000\000\000\000\nm\nm\nm\nm\nm\000\000\nm\000\000\000\000\000\000\000\000\000\000\nm\nm\nm\nm\nm\000\000\000\000\000\000\000\000\nm\000\000\nm\nm\000\000\000\000\000\000\000\000\nm\nm\nm\000\000\000\000\000\000\000\000\000\000\000\000\nm\nm\nm\nm\nm\nm\nm\nm\nm\000\000\000\000\nm\000\000\nm\nm\000\000\000\000\000\000\000\000\000\000\000\000\nm\nm\nm\000\000\nm\nm\nm\nm\000\000\000\000\000\000\nm\000\000\nm\nm\000\000\t\254\nm\nm\nm\nm\nm\000\000\000\000\nm\nm\n\018\000\000\000\000\000\000\000\000\nm\nm\nm\nm\002i\002i\000\000\000\000\000\000\002i\000\000\000\000\002i\000\000\000\000\002i\000\000\002i\000\000\000\000\002i\000\000\002i\002i\002i\000\000\002i\002i\002i\000\000\000\000\000\000\000\000\000\000\002i\002i\002i\002i\002i\000\000\002i\000\000\000\000\000\000\000\000\000\000\002i\002i\002i\002i\002i\000\000\000\000\000\000\000\000\002i\000\000\002i\002i\000\000\000\000\000\000\000\000\002i\002i\002i\000\000\000\000\000\000\000\000\000\000\000\000\002i\002i\002i\002i\002i\002i\002i\002i\002i\000\000\000\000\002i\000\000\002i\002i\000\000\000\000\000\000\000\000\000\000\000\000\002i\002i\002i\000\000\002i\002i\016\238\002i\000\000\000\000\000\000\002i\000\000\002i\002i\000\000\t\254\002i\002i\002i\002i\002i\000\000\000\000\002i\002i\n\018\000\000\000\000\000\000\000\000\002i\002i\002i\002i\002a\002a\000\000\000\000\000\000\002a\000\000\000\000\002a\000\000\000\000\002a\000\000\002a\000\000\000\000\002a\000\000\002a\002a\002a\000\000\002a\002a\002a\000\000\000\000\000\000\000\000\000\000\002a\002a\002a\002a\002a\000\000\002a\000\000\000\000\000\000\000\000\000\000\002a\002a\002a\002a\002a\000\000\000\000\000\000\000\000\002a\000\000\002a\002a\000\000\000\000\000\000\000\000\002a\002a\002a\000\000\000\000\000\000\000\000\000\000\000\000\002a\002a\002a\002a\002a\002a\002a\002a\002a\000\000\000\000\002a\000\000\002a\002a\000\000\000\000\000\000\000\000\000\000\000\000\002a\002a\002a\000\000\002a\002a\002a\002a\000\000\000\000\000\000\002a\000\000\002a\002a\000\000\t\254\002a\002a\002a\002a\002a\000\000\000\000\002a\002a\n\018\000\000\000\000\000\000\000\000\002a\002a\002a\002a\002]\002]\000\000\000\000\000\000\002]\000\000\000\000\002]\000\000\000\000\002]\000\000\002]\000\000\000\000\011&\000\000\002]\002]\002]\000\000\002]\002]\002]\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\002]\000\000\000\000\000\000\000\000\000\000\002]\002]\012\030\0126\002]\000\000\000\000\000\000\000\000\002]\000\000\012N\002]\000\000\000\000\000\000\000\000\002]\002]\000\238\000\000\000\000\000\000\000\000\000\000\000\000\002]\002]\011>\011\190\012f\012~\012\174\002]\002]\000\000\000\000\002]\000\000\002]\012\198\000\000\000\000\000\000\000\000\000\000\000\000\002]\002]\012\222\000\000\002]\002]\002]\002]\000\000\000\000\000\000\002]\000\000\002]\002]\000\000\r>\002]\rV\012\150\002]\002]\000\000\000\000\002]\012\246\002]\000\000\000\000\000\000\000\000\002]\002]\r\014\r&\002e\002e\000\000\000\000\000\000\002e\000\000\000\000\002e\000\000\000\000\002e\000\000\002e\000\000\000\000\011&\000\000\002e\002e\002e\000\000\002e\002e\002e\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\002e\000\000\000\000\000\000\000\000\000\000\002e\002e\012\030\0126\002e\000\000\000\000\000\000\000\000\002e\000\000\012N\002e\000\000\000\000\000\000\000\000\002e\002e\000\238\000\000\000\000\000\000\000\000\000\000\000\000\002e\002e\011>\011\190\012f\012~\012\174\002e\002e\000\000\000\000\002e\000\000\002e\012\198\000\000\000\000\000\000\000\000\000\000\000\000\002e\002e\012\222\000\000\002e\002e\017\n\002e\000\000\000\000\000\000\002e\000\000\002e\002e\000\000\r>\002e\rV\012\150\002e\002e\000\000\000\000\002e\012\246\002e\000\000\000\000\000\000\000\000\002e\002e\r\014\r&\002Y\002Y\000\000\000\000\000\000\002Y\000\000\000\000\002Y\000\000\000\000\002Y\000\000\002Y\000\000\000\000\002Y\000\000\002Y\002Y\002Y\000\000\002Y\002Y\002Y\000\000\000\000\000\000\000\000\000\000\002Y\002Y\002Y\002Y\002Y\000\000\002Y\000\000\000\000\000\000\000\000\000\000\002Y\002Y\002Y\002Y\002Y\000\000\000\000\000\000\000\000\002Y\000\000\002Y\002Y\000\000\000\000\000\000\000\000\002Y\002Y\002Y\000\000\000\000\000\000\000\000\000\000\000\000\002Y\002Y\002Y\002Y\002Y\002Y\002Y\002Y\002Y\000\000\000\000\002Y\000\000\002Y\002Y\000\000\000\000\000\000\000\000\000\000\000\000\002Y\002Y\002Y\000\000\002Y\002Y\002Y\002Y\000\000\000\000\000\000\002Y\000\000\002Y\002Y\000\000\t\254\002Y\002Y\002Y\002Y\002Y\000\000\000\000\002Y\002Y\n\018\000\000\000\000\000\000\000\000\002Y\002Y\002Y\002Y\002U\002U\000\000\000\000\000\000\002U\000\000\000\000\002U\000\000\000\000\002U\000\000\002U\000\000\000\000\011&\000\000\002U\002U\002U\000\000\002U\002U\002U\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\002U\000\000\000\000\000\000\000\000\000\000\002U\002U\012\030\0126\002U\000\000\000\000\000\000\000\000\002U\000\000\012N\002U\000\000\000\000\000\000\000\000\002U\002U\000\238\000\000\000\000\000\000\000\000\000\000\000\000\002U\002U\011>\011\190\012f\012~\012\174\002U\002U\000\000\000\000\002U\000\000\002U\012\198\000\000\000\000\000\000\000\000\000\000\000\000\002U\002U\012\222\000\000\002U\002U\002U\002U\000\000\000\000\000\000\002U\000\000\002U\002U\000\000\r>\002U\rV\012\150\002U\002U\000\000\000\000\002U\012\246\002U\000\000\000\000\000\000\000\000\002U\002U\r\014\r&\003Y\003Y\000\000\000\000\000\000\003Y\000\000\000\000\003Y\000\000\000\000\003Y\000\000\003Y\000\000\000\000\003Y\000\000\003Y\003Y\003Y\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\003Y\003Y\000\000\003Y\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\003Y\003Y\000\000\000\000\000\000\000\000\003Y\000\000\003Y\003Y\000\000\000\000\000\000\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\003Y\003Y\003Y\003Y\003Y\003Y\000\000\000\000\003Y\000\000\003Y\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\003Y\003Y\000\000\003Y\003Y\003Y\003Y\000\000\000\000\000\000\003Y\000\000\003Y\003Y\000\000\t\254\003Y\003Y\003Y\003Y\003Y\000\000\000\000\003Y\003Y\n\018\000\000\000\000\000\000\000\000\003Y\003Y\003Y\003Y\003U\003U\000\000\000\000\000\000\003U\000\000\000\000\003U\000\000\000\000\003U\000\000\003U\000\000\000\000\011&\000\000\003U\003U\003U\000\000\003U\003U\003U\000\000\000\000\000\000\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\003U\000\000\000\000\000\000\000\000\000\000\003U\003U\012\030\0126\003U\000\000\000\000\000\000\000\000\003U\000\000\012N\003U\000\000\000\000\000\000\000\000\003U\003U\000\238\000\000\000\000\000\000\000\000\000\000\000\000\003U\003U\011>\011\190\012f\012~\012\174\003U\003U\000\000\000\000\003U\000\000\003U\012\198\000\000\000\000\000\000\000\000\000\000\000\000\003U\003U\012\222\000\000\003U\003U\003U\003U\000\000\000\000\000\000\003U\000\000\003U\003U\000\000\r>\003U\rV\012\150\003U\003U\000\000\000\000\003U\012\246\003U\000\000\000\000\000\000\000\000\003U\003U\r\014\r&\002I\002I\000\000\000\000\000\000\002I\000\000\000\000\002I\000\000\000\000\002I\000\000\002I\000\000\000\000\002I\000\000\002I\002I\002I\000\000\002I\002I\002I\000\000\000\000\000\000\000\000\000\000\002I\002I\002I\002I\002I\000\000\002I\000\000\000\000\000\000\000\000\000\000\002I\002I\002I\002I\002I\000\000\000\000\000\000\000\000\002I\000\000\002I\002I\000\000\000\000\000\000\000\000\002I\002I\002I\000\000\000\000\000\000\000\000\000\000\000\000\002I\002I\002I\002I\002I\002I\002I\002I\002I\000\000\000\000\002I\000\000\002I\002I\000\000\000\000\000\000\000\000\000\000\000\000\002I\002I\002I\000\000\002I\002I\002I\002I\000\000\000\000\000\000\002I\000\000\002I\002I\000\000\002I\002I\002I\002I\002I\002I\000\000\000\000\002I\002I\n\018\000\000\000\000\000\000\000\000\002I\002I\002I\002I\002M\002M\000\000\000\000\000\000\002M\000\000\000\000\002M\000\000\000\000\002M\000\000\002M\000\000\000\000\002M\000\000\002M\002M\002M\000\000\002M\002M\002M\000\000\000\000\006v\000\000\000\000\002M\002M\002M\002M\002M\000\000\002M\000\000\000\000\000\000\000\000\000\000\002M\002M\002M\002M\002M\006z\000\000\000\000\000\000\002M\000\000\002M\002M\000\000\000\000\000\000\000\000\002M\002M\002M\000\000\000\000\000\000\000\000\000\000\000\000\002M\002M\002M\002M\002M\002M\002M\002M\002M\000\000\007\233\002M\000\000\002M\002M\000\000\000\000\000\000\000\000\000\000\000\238\002M\002M\002M\000\000\002M\002M\002M\002M\007\233\000\000\000\000\002M\007\233\002M\002M\000\000\002M\002M\002M\002M\002M\002M\000\000\tv\002M\002M\n\018\000\000\000\000\000\000\000\000\002M\002M\002M\002M\001\006\000\000\000\006\000\000\000\000\004\197\002\194\002\198\006~\002\242\002\146\006\"\006\138\000\000\000\000\002\254\001\n\000\000\006\158\000\000\002\158\000\000\006\170\000\000\000\000\001\210\000\000\000\000\016\194\003\242\001\018\t\018\t\022\001\030\001\"\007\233\000\000\000\000\003\006\000\000\003\166\000\000\019\162\000\000\t:\t>\000\238\003\226\003\238\003\250\tB\007V\000\000\001:\000\000\002\186\000\000\000\000\003\246\t\254\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\n\018\001>\001B\001F\001J\001N\000\000\004\197\tV\001R\000\000\007\249\000\000\001V\000\000\tb\tz\n\030\005\186\005\190\000\000\006~\001Z\000\000\006\"\t\150\002\014\000\000\001^\000\000\007\249\006\158\000\000\002\018\007\249\006\170\002\026\000\000\001\154\006j\000\000\000\000\005\194\b\214\001\210\001\158\000\000\017J\004\130\n2\001\006\001\166\000\006\001\170\001\174\028\226\002\194\002\198\000\000\002\242\002\146\003Z\000\000\000\000\000\000\002\254\001\n\007\130\001\222\000\000\t\014\000\000\000\238\000\000\002\186\001\210\000\000\000\000\000\000\003\242\001\018\t\018\t\022\001\030\001\"\000\000\000\000\000\000\003\006\000\000\003\166\000\000\t\026\000\000\t:\t>\000\238\003\226\003\238\003\250\tB\007V\007\142\001:\000\000\002\186\b\005\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\006~\005\174\000\000\006\"\001>\001B\001F\001J\001N\b\005\006\158\tV\001R\b\005\006\170\000\000\001V\000\000\tb\tz\n\030\005\186\005\190\000\000\006~\001Z\000\000\006\"\028\230\000\000\000\000\001^\000\000\000\000\006\158\000\000\000\000\000\000\006\170\000\000\000\000\001\154\006\190\000\000\000\000\005\194\b\214\r\249\001\158\000\000\017J\004\130\n2\0059\001\166\000\006\001\170\001\174\000\246\002\194\002\198\002\202\002\242\002\146\000\000\002\001\000\000\r\249\002\254\022\130\002.\003r\000\000\0022\000\000\0059\000\000\003v\001\210\000\000\020\230\b\005\003\002\000\000\003z\003~\002>\000\000\000\000\003\130\000\000\003\006\000\000\003\166\000\n\020z\n\138\003\218\003\222\n\150\003\226\003\238\003\250\004\002\007V\000\000\000\000\020\222\002\186\000\000\002\001\003\246\020\246\002J\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\002\001\002\001\000\000\000\000\000\000\000\000\020\254\000\000\tV\000\000\nQ\000\000\000\000\000\000\000\000\tb\tz\n\030\005\186\005\190\021\018\021N\000\000\000\000\0059\0059\000\000\000\000\000\000\006\234\000\000\000\000\nQ\000\000\000\000\002N\r\249\r\229\000\000\000\000\021\138\025\142\005\194\b\214\000\000\000\145\000\000\b\238\004\130\n2\000\145\000\000\002\198\000\145\000\000\002\146\r\249\n~\000\000\002.\002\254\000\000\0022\000\145\000\000\000\145\000\000\000\145\000\000\000\145\001\210\000\238\n\182\000\000\003\002\002>\000\000\000\000\002F\r\229\n\190\000\145\000\000\003\006\000\000\003\166\000\000\000\145\000\000\000\000\000\000\000\145\000\000\003\238\001\190\018\150\000\145\000\000\002\146\000\145\002\186\000\000\002J\003\246\000\145\000\145\000\145\b\190\b\194\b\206\000\000\014\206\005\174\000\145\000\145\006~\0256\000\000\006\"\000\000\000\145\000\000\000\000\nQ\000\145\006\158\000\000\000\000\000\000\006\170\000\000\000\000\005\186\005\190\000\145\000\145\018\154\000\000\000\145\000\145\000\000\000\000\000\000\000\000\000\000\000\000\002N\000\000\000\145\000\000\018\166\000\000\025Z\000\000\000\145\000\145\005\194\b\214\000\000\000\000\000\169\b\238\004\130\000\000\000\145\000\169\000\145\002\198\000\169\000\000\002\146\000\000\n~\000\000\000\000\002\254\005\190\000\000\000\169\000\000\000\169\000\000\000\169\000\000\000\169\001\210\025f\n\182\000\000\003\002\000\000\000\000\000\000\000\000\000\000\n\190\000\169\000\000\003\006\000\000\003\166\000\000\000\169\024\250\000\000\000\000\000\169\000\000\003\238\001\190\000\000\000\169\000\000\000\000\000\169\002\186\000\000\000\000\003\246\000\169\000\169\000\169\b\190\b\194\b\206\000\000\014\206\005\174\000\169\000\169\000\000\000\000\000\000\000\000\000\000\000\169\000\000\000\000\n5\000\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\186\005\190\000\169\000\169\000\000\000\000\000\169\000\169\000\000\000\000\nb\n5\000\000\n5\n5\000\000\000\169\000\000\000\000\000\000\000\000\000\000\000\169\000\169\005\194\b\214\000\000\000\000\000\000\b\238\004\130\000\000\000\169\000\000\000\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>\t.\000\000\000\000\000B\000\000\018\150\000\000\002\014\002\146\000\000\000F\000\000\000\000\000\000\002\018\000\000\000J\002\026\000N\000R\000V\000Z\000^\000b\000f\001\210\000\000\000\000\000j\000n\000\000\000r\000\000\000v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003Z\000\000\t\254\000\000\018\154\000z\007\130\001\222\000~\000\130\n5\000\000\n\018\002\186\000\000\000\134\000\138\000\142\018\166\002\001\025:\000\000\002\001\000\146\000\150\000\154\000\158\000\000\000\162\000\166\000\170\000\000\000\000\000\000\000\174\000\178\000\182\000\000\000\000\000\000\000\186\007\142\000\190\000\194\005\190\000\n\000\000\000\000\000\000\000\000\000\198\000\000\000\202\000\000\025F\000\000\000\000\004\149\000\206\000\210\002\001\000\214\004\149\003\022\002\198\004\149\000\000\002\146\000\000\007&\000\000\024\250\002\254\002\001\002\001\004\149\000\000\000\000\000\000\004\149\000\000\004\149\001\210\000\000\007F\000\000\000\000\002\001\002\001\003\026\000\000\000\000\t\134\004\149\000\000\000\000\000\000\000\000\000\000\004\149\002\001\000\000\003&\000\000\000\000\t\178\001\190\002\001\004\149\000\000\002\001\004\149\002\186\002\001\000\n\004\006\004\149\004\149\011\249\004\n\002\001\004\018\000\000\t\194\005\174\000\000\002\001\000\000\000\000\002\001\002\001\000\000\004\149\004\149\000\000\000\000\005\178\000\000\000\000\000\000\000\000\000\000\002\001\000\000\005\186\005\190\004\149\004\149\rz\000\000\004\149\004\149\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\249\n\138\000\000\011\249\r\130\004\149\005\194\000\000\000\000\000\000\011\249\000\000\004\130\000\000\011\249\000\006\004\149\000\000\000\246\002\194\002\198\002\202\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\005Y\000\000\000\000\000\000\002\001\000\000\003v\001\210\000\000\000\000\000\000\003\002\000\000\003z\003~\000\000\000\000\000\000\003\130\000\000\003\006\000\000\003\166\000\000\020z\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\020\222\002\186\000\000\000\000\003\246\020\246\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\254\000\000\tV\000\000\031\198\000\000\000\000\000\000\000\000\tb\tz\n\030\005\186\005\190\021\018\021N\000\000\000\006\031\231\017\218\000\246\002\194\002\198\002\202\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000 \022\000\000\025\142\005\194\b\214\000\000\003v\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\003\130\000\000\003\006\000\000\003\166\000\000\020z\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\020\222\002\186\000\000\000\000\003\246\020\246\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\254\000\000\tV\000\000\031\198\000\000\000\000\000\000\000\000\tb\tz\n\030\005\186\005\190\021\018\021N\000\000\000\000\005a\000\000\000\000\000\000\000\000\000\000\001\006\000\000\000\000\000\000\000\000\000\000\003\022\002\198\006F\000\000\002\146\025\142\005\194\b\214\000\000\002\254\001\n\b\238\004\130\n2\002\158\000\000\000\000\000\000\000\000\001\210\003\158\000\000\002\198\001\014\001\018\001\022\0036\001\030\001\"\003j\000\000\000\000\003\146\000\000\000\000\b\134\003:\000\000\001.\006f\001\210\000\000\0032\001\190\0016\b\201\000\000\001:\000\000\002\186\000\000\000\000\004\006\000\000\000\000\000\000\004\n\000\000\004\018\005\162\000\000\005\174\000\000\003\154\001>\001B\001F\001J\001N\000\000\002\186\000\000\001R\005\178\000\000\b\201\001V\011\253\000\000\000\000\000\000\005\186\005\190\000\000\006\002\001Z\000\000\000\000\000\000\b\201\000\000\001^\b\201\tJ\000\000\000\000\000\000\000\000\007j\b\201\000\000\001\154\006j\b\201\000\000\005\194\000\000\011\253\001\158\000\000\001\162\004\130\001\006\000\000\001\166\000\000\001\170\001\174\003\022\002\198\t\182\011\253\002\146\000\000\011\253\r\234\000\000\002\254\001\n\000\000\000\000\011\253\002\158\000\000\000\000\011\253\000\000\001\210\000\000\000\000\000\000\001\014\001\018\001\022\0036\001\030\001\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003:\000\000\001.\006f\000\000\000\000\0032\001\190\0016\000\000\000\000\001:\000\000\002\186\000\000\000\000\004\006\000\000\000\000\000\000\004\n\000\000\004\018\005\162\000\000\005\174\000\000\000\000\001>\001B\001F\001J\001N\000\000\000\000\000\000\001R\005\178\000\000\000\000\001V\000\000\000\000\000\000\000\000\005\186\005\190\000\000\006\002\001Z\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\001\154\006j\000\000\000\000\005\194\000\000\000\000\001\158\000\000\001\162\004\130\000\000\n9\001\166\000\006\001\170\001\174\000\246\002\194\002\198\002\"\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\021\142\000\000\n9\000\000\n9\n9\003v\001\210\000\000\000\000\000\000\003\002\000\000\003z\003~\000\000\000\000\000\000\021\146\000\000\003\006\000\000\003\166\000\000\021\186\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\020\222\002\186\000\000\000\000\003\246\020\246\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022Z\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\nR\tz\n\030\005\186\005\190\021\018\022n\000\000\000\000\005-\000\000\000\000\000\000\000\000\000\000\n1\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\022~\005\194\b\214\n9\002\254\000\000\b\238\004\130\n2\n1\000\000\n1\n1\000\000\001\210\000\000\000\000\000\000\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\001\169\003\006\000\000\003\166\000\000\001\169\000\000\003\218\003\222\n\154\003\226\003\238\003\250\004\002\007V\001\202\001\206\r\134\002\186\000\000\000\000\003\246\000\000\000\000\001\169\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\001\210\001\214\001\230\000\000\000\000\000\000\tV\000\000\000\000\000\000\001\242\000\000\001\169\nR\tz\n\030\005\186\005\190\000\000\000\000\001\169\000\000\000\000\001\246\002\162\001\169\001\169\000\238\002\174\000\000\002\186\004.\004:\000\000\001\169\001\169\000\000\004F\000\000\000\000\005\194\b\214\n1\005\201\005\201\b\238\004\130\n2\005\201\000\000\005\201\005\201\000\000\005\201\004J\005\201\005\201\000\000\000\000\005\201\001\169\005\201\005\201\005\201\005\201\005\201\005\201\005\201\005\201\001\169\005\201\000\000\005\201\000\000\000\000\000\000\000\000\000\000\000\000\005\201\000\000\000\000\000\000\000\000\005\201\005\201\005\201\000\000\000\000\005\201\005\201\005\201\005\201\000\000\005\201\000\000\000\000\005\201\000\000\000\000\000\000\000\000\005\201\005\201\005\201\000\000\000\000\005\201\005\201\005\201\000\000\005\201\005\201\000\000\000\000\000\000\000\000\000\000\005\201\000\000\000\000\000\000\005\201\005\201\000\000\005\201\000\000\005\201\000\000\000\000\000\000\000\000\005\201\005\201\005\201\000\000\005\201\005\201\005\201\005\201\000\000\005\201\005\201\000\000\000\000\000\000\005\201\000\000\005\201\005\201\000\000\000\000\002\166\005\201\000\000\000\000\000\000\024\n\005\201\000\000\012\021\000\000\005\201\012\021\005\201\005\201\012\021\012\021\000\000\005\201\012\021\000\000\012\021\000\000\000\000\012\021\000\000\001*\000\000\012\021\012\021\000\000\012\021\012\021\002\001\012\021\000\000\012\021\000\000\000\000\000\000\002\001\012\021\000\000\002\001\012\021\000\000\000\000\000\000\000\000\000\000\000\000\002\001\012\021\000\000\012\021\000\000\000\000\012\021\012\021\000\n\000\000\000\000\000\000\000\000\012\021\000\000\000\000\012\021\000\000\000\000\012\021\012\021\000\000\012\021\002\001\012\021\012\021\000\000\000\000\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\002\001\012\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\021\012\021\000\000\000\000\012\021\000\000\012\021\000\000\000\000\000\000\000\000\005\222\000\000\002\001\000\000\000\000\001\202\001\206\012\021\012\021\000\000\012\021\012\021\000\000\012\021\000\000\012\021\000\000\012\021\000\000\012\021\000\000\012\021\r\185\r\185\001\210\001\250\001\230\r\185\000\000\001\206\r\185\000\000\000\000\000\000\001\242\003\134\000\000\022\174\004\214\000\000\r\185\r\185\r\185\000\000\r\185\r\185\r\185\001\246\024\006\000\000\023&\000\000\002\174\000\000\002\186\004.\004:\000\000\r\185\000\000\000\000\024\022\000\000\000\000\r\185\r\185\000\000\000\000\r\185\000\000\000\000\002\170\000\000\r\185\000\000\000\000\r\185\000\000\004J\000\000\000\000\r\185\r\185\r\185\000\000\000\000\000\000\000\000\000\000\000\000\r\185\r\185\000\000\000\000\000\000\000\000\000\000\r\185\000\000\000\000\000\000\004\222\000\000\000\000\r\185\000\000\000\000\000\000\000\000\000\000\000\000\r\185\r\185\r\185\000\000\r\185\r\185\000\000\005%\000\000\000\000\000\000\000\000\005%\000\000\r\185\005%\r\185\r\185\000\000\000\000\000\000\r\185\000\000\000\000\000\000\005%\r\185\000\000\000\000\005%\r\185\005%\r\185\r\185\n!\n!\000\000\000\000\005%\n!\000\000\001\206\n!\005%\000\000\000\000\000\000\000\000\000\000\005%\n!\000\000\n!\n!\n!\004R\n!\n!\n!\000\000\000\000\005%\005%\000\000\000\000\000\000\005%\002\234\000\000\000\000\n!\000\000\000\000\000\000\000\000\000\000\n!\n!\000\000\000\000\n!\000\000\005%\002\170\005%\n!\000\000\000\000\n!\000\000\000\000\000\000\005%\n!\n!\n!\005%\005%\002\234\000\238\005%\005%\n!\n!\000\000\000\000\004b\005%\000\000\n!\000\000\000\000\000\000\004\222\000\000\000\000\n!\005%\000\000\000\000\000\000\000\000\025\014\n!\n!\n!\000\000\n!\n!\000\000\007\237\000\000\005%\000\000\000\000\007\237\000\000\n!\007\237\n!\n!\005%\000\000\000\000\n!\000\000\000\000\000\000\007\237\n!\000\000\000\000\007\237\n!\007\237\n!\n!\n\029\n\029\000\000\000\000\000\000\n\029\000\000\001\206\n\029\007\237\000\000\000\000\000\000\000\000\000\000\007\237\n\029\000\000\n\029\n\029\n\029\000\000\n\029\n\029\n\029\000\000\000\000\007\237\000\000\000\000\000\000\000\000\007\237\007\237\000\000\000\000\n\029\000\000\000\000\000\000\000\000\000\000\n\029\n\029\000\000\000\000\n\029\000\000\007\237\002\170\000\000\n\029\000\000\000\000\n\029\000\000\000\000\000\000\000\000\n\029\n\029\n\029\007\237\007\237\020\142\000\000\007\237\007\237\n\029\n\029\000\000\000\000\000\000\000\000\000\000\n\029\000\000\000\000\000\000\004\222\021\206\000\000\n\029\007\237\000\000\000\000\000\000\000\000\000\000\n\029\n\029\n\029\000\000\n\029\n\029\000\000\000\000\000\000\002\001\002\001\000\000\000\000\002\001\n\029\002\001\n\029\n\029\002\001\002\001\002\001\n\029\002\001\002\001\002\001\002\001\n\029\000\000\002\001\000\000\n\029\002\001\n\029\n\029\002\001\002\001\000\n\000\000\002\001\000\n\002\001\000\000\002\001\000\n\002\001\002\001\000\n\000\000\002\001\007Z\000\n\002\001\002\001\002\001\002\001\018J\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\002\001\000\000\002\001\002\001\002\001\002\001\002\001\002\001\002\001\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\002\001\002\001\002\001\002\001\002\001\000\000\000\000\000\000\002\001\002\001\002\001\002\001\002\001\000\000\018\138\002\001\000\000\000\000\002\001\000\000\000\000\000\000\000\000\000\000\002\001\002\001\000\000\000\000\000\000\002\001\000\000\002\001\000\000\007^\000\000\002\001\002\001\000\000\000y\000\000\002\001\002\001\002\001\000y\000\000\000y\000y\000\000\000\000\000\000\000\000\000\000\r\249\r\229\000y\000\000\000y\000y\000\000\000\000\000y\000y\000y\000\000\t\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\249\000\000\000y\002.\000\000\000\000\0022\000\000\000y\000y\000\000\000\000\000y\002:\000\000\000y\000\000\000y\000\000\002>\000y\000\000\002F\r\229\000\000\000y\000y\000y\000\000\000\000\000\000\000\000\000\000\000\000\000y\000y\000\000\000\000\000\000\000\000\000\000\000y\000y\000\000\000\000\000y\002J\000\000\000y\000\000\000\000\000\000\000\000\000\000\000\000\000y\000y\000y\000\000\000y\000y\000\000\000\000\000\000\007y\t\185\000A\000\000\000\000\000y\000A\000A\000y\000A\000A\000\000\000y\000\000\000\000\000A\000\000\000y\000\000\000\000\007y\000y\000\000\000y\000\000\000A\002N\000\000\000\000\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000\000\000A\000\000\000A\000\000\000\000\000\000\000A\000A\000\000\000A\000A\000A\000A\000A\000\000\000\000\000\000\000A\000\000\000\000\000A\000\000\000\000\000\000\000A\000A\000A\000A\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000\000\000\000\r\249\r\229\000\000\000A\000A\000A\000A\000A\000\000\007u\000\000\000=\000\000\000\000\000\000\000=\000=\000\000\000=\000=\r\249\000\000\000\000\002.\000=\000\000\0022\000\000\000\000\007u\000A\000A\000\000\002\214\000=\000A\000A\000A\000=\002>\000=\000=\002F\r\229\000\000\000\000\000\000\000=\000\000\000=\000\000\000\000\000\000\000=\000=\000\000\000=\000=\000=\000=\000=\000\000\000\000\000\000\000=\000\000\002J\000=\000\000\000\000\000\000\000=\000=\000=\000=\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\000\000\r\129\000\000\000\000\000\000\r\129\r\129\000\000\r\129\r\129\002N\000\000\000\000\000\000\r\129\000\000\000\000\000\000\000\000\007\133\000=\000=\000\000\000\000\r\129\000=\000=\000=\r\129\000\000\r\129\r\129\000\000\000\000\000\000\000\000\000\000\r\129\000\000\r\129\000\000\000\000\000\000\r\129\r\129\000\000\r\129\r\129\r\129\r\129\r\129\000\000\000\000\000\000\r\129\000\000\000\000\r\129\000\000\000\000\000\000\r\129\r\129\r\129\r\129\000\000\r\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\129\000\000\000\000\000\000\000\000\000\000\000\000\r\129\r\129\r\129\r\129\r\129\000\000\007\129\000\000\r}\000\000\000\000\000\000\r}\r}\000\000\r}\r}\000\000\000\000\000\000\000\000\r}\000\000\000\000\000\000\000\000\007\129\r\129\r\129\000\000\000\000\r}\r\129\r\129\r\129\r}\000\000\r}\r}\000\000\000\000\000\000\000\000\000\000\r}\000\000\r}\000\000\000\000\000\000\r}\r}\000\000\r}\r}\r}\r}\r}\000\000\000\000\000\000\r}\000\000\000\000\r}\000\000\000\000\000\000\r}\r}\r}\r}\000\000\r}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r}\000\000\000\000\000\000\000\000\000\000\000\000\r}\r}\r}\r}\r}\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\r}\r}\000\000\000\000\001\210\r}\r}\r}\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\014E\003\006\000\000\003\166\000\000\014E\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\007\185\007\185\000\000\002\186\000\000\000\000\003\246\000\000\000\000\014E\b\190\b\194\b\206\b\226\000\000\005\174\004>\000\000\000\000\007\185\007\185\007\185\000\000\000\000\000\000\tV\000\000\000\000\000\000\007\185\000\000\014E\nR\tz\n\030\005\186\005\190\000\000\000\000\014E\000\000\000\000\007\185\007\185\014E\014E\000\238\007\185\000\000\007\185\007\185\007\185\000\000\014E\014E\000\000\007\185\000\000\000\000\005\194\b\214\019\142\r\189\r\189\b\238\004\130\n2\r\189\000\000\000\000\r\189\000\000\000\000\007\185\000\000\000\000\000\000\000\000\004\154\014E\r\189\r\189\r\189\000\000\r\189\r\189\r\189\000\000\014E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\189\000\000\000\000\000\000\000\000\000\000\r\189\r\189\000\000\000\000\r\189\0042\000\000\007\185\000\000\r\189\000\000\000\000\r\189\000\000\000\000\000\000\000\000\r\189\r\189\r\189\000\000\000\000\000\000\000\000\000\000\000\000\r\189\r\189\000\000\000\000\000\000\000\000\000\000\r\189\000\000\000\000\000\000\r\189\000\000\000\000\r\189\000\000\000\000\000\000\000\000\000\000\000\000\r\189\r\189\r\189\000\000\r\189\r\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\201\r\189\000\006\r\189\r\189\007\201\002\194\002\198\r\189\002\242\002\146\000\000\000\000\r\189\000\000\002\254\000\000\r\189\000\000\r\189\r\189\000\000\004\014\000\000\007\201\001\210\000\000\000\000\000\000\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\007\201\003\226\003\238\003\250\004\002\007V\000\000\000\000\007\201\002\186\000\000\000\000\003\246\007\201\007\201\000\238\b\190\b\194\b\206\b\226\000\000\005\174\007\201\007\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\nR\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\000\000\000\007\201\000\000\000\000\000\000\000\000\005%\000\000\000\006\000\000\007\201\005%\002\194\002\198\000\000\002\242\002\146\000\000\005\194\b\214\017^\002\254\000\000\b\238\004\130\n2\027\174\000\000\017r\000\000\005%\001\210\000\000\000\000\000\000\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\005%\003\226\003\238\003\250\004\002\007V\000\000\000\000\005%\002\186\000\000\000\000\003\246\005%\002\234\000\000\b\190\b\194\b\206\b\226\000\000\005\174\005%\005%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\nR\tz\n\030\005\186\005\190\000\000\005-\000\000\000\006\000\000\005%\000\246\002\194\002\198\002\"\002\242\002\146\000\000\000\000\005%\000\000\002\254\000\000\000\000\021\142\000\000\000\000\005\194\b\214\000\000\003v\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\021\146\000\000\003\006\000\000\003\166\000\000\021\186\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\020\222\002\186\000\000\000\000\003\246\020\246\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022Z\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\019\230\tz\n\030\005\186\005\190\021\018\022n\000\000\000\006\000\000\005-\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\022~\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\019z\tz\n\030\005\186\005\190\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\209\003\209\000\000\000\000\000\241\003\209\000\000\000\000\003\209\000\241\005\194\b\214\000\000\000\000\000\000\b\238\004\130\n2\003\209\003\209\003\209\000\000\003\209\003\209\003\209\000\000\000\000\000\000\000\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\209\000\000\000\000\000\000\000\000\000\000\003\209\004\146\000\000\000\000\003\209\000\000\000\000\000\000\000\241\003\209\003\018\000\000\003\209\000\000\000\000\000\000\000\241\003\209\003\209\003\209\000\000\000\241\000\000\000\000\000\000\000\000\003\209\003\209\000\000\000\000\000\241\000\241\000\000\003\209\000\000\000\000\000\000\003\209\000\000\000\000\003\209\000\000\000\000\000\000\000\000\000\000\000\000\003\209\003\209\003\209\000\000\003\209\003\209\000\000\000\000\000\000\000\241\000\000\000\000\000\000\000\000\003\209\000\000\003\209\003\209\000\241\000\000\000\000\003\209\000\000\005\249\0149\000\000\003\209\000\000\012!\000\000\003\209\012!\003\209\003\209\003\022\002\198\000\000\000\000\002\146\000\000\007&\000\000\005\249\002\254\000\000\000\000\005\249\012!\012!\000\000\012!\012!\000\000\001\210\000\000\007F\000\000\000\000\000\000\000\000\003\026\000\000\002\014\t\134\000\000\000\000\000\000\000\000\000\000\002\018\000\000\012!\002\026\003&\000\000\007\134\0032\001\190\000\000\000\000\001\210\000\000\000\000\002\186\000\000\000\000\004\006\000\000\000\000\012!\004\n\000\000\004\018\005\162\t\194\005\174\000\000\003Z\000\000\000\000\000\000\0149\0149\007\130\001\222\000\000\000\000\005\178\001\202\001\206\002\186\000\000\000\000\000\000\005\249\005\186\005\190\000\000\006\002\012!\0149\012!\0149\000\000\000\000\000\000\000\000\001\210\001\250\005\249\000\000\000\000\005\249\012!\000\000\000\000\012!\012!\007\142\005\194\000\000\012!\000\000\012!\000\000\004\130\012\029\012!\000\000\012\029\001\246\002\178\003\022\002\198\000\000\002\174\002\146\002\186\004.\004:\000\000\002\254\000\000\000\000\004F\012\029\012\029\000\000\012\029\012\029\000\000\001\210\000\000\001\202\001\206\000\000\000\000\000\000\003\026\000\000\000\000\004J\000\000\000\000\029\194\000\000\000\000\000\000\000\000\012\029\000\000\003&\001\210\001\250\006B\001\190\000\000\000\000\000\000\000\000\029\174\002\186\000\000\000\000\004\006\000\000\000\000\012\029\004\n\000\000\004\018\005\162\000\000\005\174\000\000\001\246\002\170\000\000\000\000\000\000\002\174\000\000\002\186\004.\004:\005\178\000\000\000\000\000\000\004F\000\000\018\178\000\000\005\186\005\190\000\000\006\002\012\029\000\000\012\029\000\000\000\000\000\000\000\000\000\000\000\006\004J\005\253\0149\002\194\002\198\012\029\002\242\002\146\012\029\012\029\000\000\005\194\002\254\012\029\000\000\012\029\000\000\004\130\000\000\012\029\005\253\000\000\001\210\000\000\005\253\000\000\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\0149\0149\017\246\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\005\253\002\194\002\198\000\000\002\242\002\146\0149\000\000\0149\000\000\002\254\000\000\000\000\000\000\000\000\005\253\005\194\b\214\005\253\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\t\238\tz\n\030\005\186\005\190\000\000\005Q\000\000\000\006\000\000\000\000\025\182\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\003v\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\026&\003\226\003\238\003\250\004\002\007V\000\000\000\000\020\222\002\186\000\000\000\000\003\246\020\246\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\026\202\026\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\n\002\tz\n\030\005\186\005\190\000\000\005I\000\000\000\006\000\000\005Q\022\198\002\194\002\198\000\000\002\242\002\146\000\000\000\000\027\206\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\003v\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\022\242\003\226\003\238\003\250\004\002\007V\000\000\000\000\020\222\002\186\000\000\000\000\003\246\020\246\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\023\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\nj\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\005I\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\023\130\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\n\234\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\011*\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\011B\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\011f\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\011\146\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\011\170\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\011\194\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\011\218\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\011\242\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\012\n\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\012\"\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\012:\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\012R\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\012j\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\012\130\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\012\154\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\012\178\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\012\202\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\012\226\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\012\250\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\r\018\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\r*\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\rB\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\rZ\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\014\238\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\015\022\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\015>\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\015f\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\015\138\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\015\174\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\015\218\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\015\254\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\016\"\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\016>\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\016\222\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\016\242\tz\n\030\005\186\005\190\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\194\002\198\000\000\002\242\002\146\000\000\000\000\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\003\002\000\000\003z\003~\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\000\000\000\000\000\000\003\218\003\222\000\000\003\226\003\238\003\250\004\002\007V\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\b\226\000\000\005\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tV\000\000\000\000\000\000\000\000\000\000\000\000\017\014\tz\n\030\005\186\005\190\000\000\018f\000\000\000\000\000\000\000\000\000\000\000\000\002\014\000\000\000\000\000\000\001\193\001\193\000\000\002\018\000\000\001\193\002\026\000\000\001\193\000\000\005\194\b\214\000\000\000\000\001\210\b\238\004\130\n2\001\193\001\193\001\193\000\000\001\193\001\193\001\193\000\000\000\000\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\000\000\000\001\193\007\130\001\222\000\000\000\000\000\000\001\193\001\193\002\186\000\000\001\193\000\000\000\000\000\000\000\000\001\193\000\000\000\000\001\193\000\000\000\000\000\000\000\000\001\193\001\193\001\193\000\000\000\000\000\000\000\000\000\000\000\000\001\193\001\193\000\000\000\000\007\142\000\000\000\000\001\193\000\249\000\000\000\000\001\193\000\000\000\249\001\193\000\000\000\000\000\000\000\000\000\000\000\000\001\193\001\193\001\193\000\000\001\193\001\193\000\000\000\000\000\000\000\000\000\000\000\249\000\000\000\000\001\193\000\000\001\193\001\193\003\022\002\198\000\000\001\193\002\146\000\000\007&\000\000\001\193\002\254\000\000\000\000\004\254\000\000\001\193\000\249\000\000\022\182\000\000\001\210\000\000\007F\000\000\000\249\000\000\000\000\003\026\000\000\000\249\t\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\249\003&\000\000\000\000\t\178\001\190\000\000\000\000\000\000\000\000\000\000\002\186\000\000\000\000\004\006\000\000\000\000\011\249\004\n\000\000\004\018\000\000\t\194\005\174\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\249\005\178\000\000\000\000\019\186\000\000\000\000\000\000\000\000\005\186\005\190\002\014\000\000\rz\006U\006U\000\000\000\000\002\018\006U\000\000\002\026\006U\000\000\000\000\000\000\000\000\011\249\000\000\001\210\011\249\011\249\006U\005\194\006U\000\000\006U\011\249\006U\004\130\000\000\011\249\004\209\000\000\000\000\000\000\003Z\000\000\r\157\000\000\006U\r\157\007\130\001\222\000\000\000\000\006U\006U\000\000\002\186\000\000\r\157\006U\000\000\000\000\006U\000\000\r\157\006U\000\000\000\000\000\000\000\000\006U\006U\006U\000\000\000\000\000\000\r\157\000\000\000\000\000\000\000\000\000\000\r\157\000\000\007\142\000\000\006U\006U\000\000\000\000\006U\r\157\000\000\001\006\r\157\000\000\000\000\000\000\000\000\r\157\006U\006U\006U\000\000\006U\006U\000\000\000\000\000\000\001\n\b6\000\000\000\000\002\158\000\000\r\157\000\000\006U\000\000\r\157\006U\006U\001\014\001\018\001\022\001\026\001\030\001\"\000\000\r\157\r\157\000\000\006U\r\157\000\000\001&\000\000\001.\0012\031\190\000\000\000\000\000\000\0016\000\000\000\000\001:\000\000\000\000\000\000\r\157\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>\001B\001F\001J\001N\000\000\004\025\004\025\001R\000\000\000\000\004\025\001V\000\000\004\025\000\000\000\000\000\000\000\000\000\000\000\000\001Z\000\000\004\025\004\025\000\000\004\025\001^\004\025\000\000\004\025\004\025\000\000\000\000\000\000\000\000\000\000\001\154\030\218\000\000\000\000\004\025\004\025\004\025\001\158\004\025\001\162\004\025\004\025\004\025\001\166\000\000\001\170\001\174\005\209\000\000\000\000\004\025\000\000\004\025\004\025\000\000\000\000\000\000\000\000\004\025\004\025\004\025\000\000\000\000\000\000\005\213\000\000\000\000\004\025\000\000\000\000\004\025\000\000\000\000\000\000\004\025\004\025\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\004\025\004\025\004\025\000\000\004\025\000\000\000\000\005\209\000\000\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\000\000\004\025\004\025\006I\006I\000\000\000\000\005\213\006I\000\000\000\000\006I\004\025\000\000\004\025\004\025\000\000\000\000\004\025\020\002\000\000\006I\000\000\006I\000\000\006I\002\014\006I\000\000\004\025\000\000\000\000\000\000\002\018\000\000\000\000\002\026\000\000\000\000\006I\000\000\000\000\000\000\000\000\001\210\006I\006I\000\000\000\000\000\000\000\000\b\130\000\000\000\000\006I\000\000\000\000\006I\000\000\000\000\000\000\003Z\006I\006I\000\238\000\000\000\000\007\130\001\222\000\000\000\000\000\000\000\000\000\000\002\186\000\000\000\000\000\000\006I\006I\000\000\000\000\006I\000\000\n-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006I\006I\006I\000\000\006I\006I\000\000\000\000\011&\000\000\007\142\014\162\n-\000\000\n-\n-\000\000\006I\000\000\000\000\006I\006I\011\142\011\214\011\238\011\166\012\006\000\000\000\000\001\202\002\142\000\000\006I\002\146\000\000\000\000\012\030\0126\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012N\000\000\000\000\001\210\001\250\001\230\002\150\000\000\000\238\000\000\000\000\000\000\000\000\001\242\001\006\000\000\000\000\011>\011\190\012f\012~\012\174\000\000\000\000\000\000\000\000\002\154\002\162\000\000\012\198\001\n\002\174\000\000\002\186\004.\004:\000\000\000\000\012\222\000\000\024\230\000\000\024\234\001\014\001\018\001\022\001\026\001\030\001\"\000\000\000\000\000\000\r>\000\000\rV\012\150\001&\004J\001.\0012\n-\012\246\000\000\000\000\0016\000\000\005\190\001:\000\000\r\014\r&\000\000\000\000\000\000\000\000\000\000\024\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\001B\001F\001J\001N\000\000\t\145\t\145\001R\024\250\000\000\t\145\001V\000\000\t\145\000\000\000\000\000\000\000\000\000\000\000\000\001Z\020\018\000\000\t\145\000\000\t\145\001^\t\145\002\014\t\145\000\000\000\000\000\000\000\000\000\000\002\018\001\154\030\246\002\026\000\000\000\000\t\145\000\000\001\158\000\000\001\162\001\210\t\145\t\145\001\166\000\000\001\170\001\174\000\000\000\000\000\000\t\145\000\000\000\000\t\145\000\000\000\000\000\000\003Z\t\145\t\145\t\145\000\000\000\000\007\130\001\222\000\000\000\000\000\000\000\000\000\000\002\186\000\000\000\000\000\000\t\145\000\000\000\000\000\000\t\145\014\133\014\133\000\000\000\000\000\000\014\133\000\000\000\000\014\133\t\145\t\145\t\145\000\000\t\145\t\145\000\000\000\000\000\000\014\133\007\142\014\133\000\000\014\133\t\145\014\133\000\000\t\145\001\202\001\206\000\000\t\145\000\000\000\000\000\000\000\000\000\000\014\133\000\000\000\000\004\254\000\000\t\145\014\133\014\133\014\137\014\137\001\210\001\214\004R\014\137\000\000\014\133\014\137\000\000\014\133\000\000\000\000\000\000\000\000\014\133\014\133\014\133\014\137\000\000\014\137\000\000\014\137\000\000\014\137\001\246\002\170\000\000\000\000\000\000\002\174\014\133\002\186\004.\004:\014\133\014\137\000\000\000\000\004F\000\000\018\178\014\137\014\137\000\000\014\133\014\133\014\133\004R\014\133\014\133\014\137\000\000\000\000\014\137\004b\004J\000\000\000\000\014\137\014\137\014\137\014\133\000\000\000\000\000\000\014\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\137\000\000\014\133\000\000\014\137\001\177\000\000\000\000\000\000\000\000\001\177\000\000\001\206\001\177\014\137\014\137\014\137\000\000\014\137\014\137\000\000\t\249\000\000\001\177\004b\000\000\000\000\001\177\000\000\001\177\000\000\014\137\000\000\000\000\000\000\014\137\000\000\000\000\000\000\000\000\000\000\001\177\000\000\000\000\000\000\000\000\014\137\001\177\001\177\000\000\000\000\000\000\000\000\000\000\002\170\000\000\001\177\000\000\000\000\001\177\000\000\000\000\000\000\000\000\001\177\001\177\001\177\000\000\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\177\001\177\000\000\000\000\004\222\003\253\000\000\000\000\000\000\000\000\003\253\000\000\001\206\003\253\001\177\001\177\000\000\000\000\001\177\001\177\000\000\t\245\000\000\003\253\000\000\000\000\000\000\003\253\001\177\003\253\000\000\000\000\000\000\000\000\000\000\001\177\000\000\000\000\000\000\000\000\001\177\003\253\000\000\000\000\000\000\000\000\001\177\003\253\001\173\000\000\000\000\000\000\000\000\000\000\002\170\000\000\003\253\000\000\000\000\003\253\000\000\000\000\000\000\000\000\003\253\003\253\003\253\000\000\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\253\003\253\000\000\000\000\004\222\003\249\000\000\000\000\000\000\000\000\003\249\000\000\001\206\003\249\003\253\003\253\000\000\000\000\003\253\003\253\000\000\t\245\000\000\003\249\000\000\000\000\000\000\003\249\003\253\003\249\000\000\000\000\000\000\000\000\000\000\003\253\000\000\000\000\000\000\000\000\003\253\003\249\000\000\000\000\000\000\000\000\003\253\003\249\001\173\000\000\000\153\000\000\000\000\000\000\002\170\000\153\003\249\000\000\000\153\003\249\000\000\000\000\000\000\000\000\003\249\003\249\003\249\000\000\000\153\000\000\000\153\000\000\000\153\000\000\000\153\000\000\000\000\000\000\000\000\000\000\003\249\003\249\000\000\000\000\004\222\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\153\000\000\003\249\003\249\000\153\000\000\003\249\003\249\000\000\000\153\000\000\000\000\000\153\000\000\000\000\020:\003\249\000\153\000\153\000\238\000\000\000\000\002\014\003\249\000\000\000\000\000\153\000\153\003\249\002\018\000\000\000\000\002\026\000\153\003\249\000\000\000\221\000\153\000\000\000\000\001\210\000\221\000\000\000\000\000\221\000\000\000\000\000\153\000\153\000\000\000\000\000\153\000\153\000\000\000\221\000\000\000\221\003Z\000\221\000\000\000\221\000\153\000\000\007\130\001\222\000\000\000\000\000\153\000\153\000\000\002\186\000\000\000\221\000\000\000\000\000\000\000\000\000\153\000\221\000\153\000\000\000\000\000\221\000\000\000\000\000\000\000\000\000\221\000\000\000\000\000\221\000\000\000\000\020J\000\000\000\221\000\221\000\238\007\142\000\000\002\014\000\000\000\000\000\000\000\221\000\221\000\000\002\018\000\000\000\000\002\026\000\221\000\000\000\000\000\161\000\221\000\000\000\000\001\210\000\161\000\000\000\000\000\161\000\000\000\000\000\221\000\221\000\000\000\000\000\221\000\221\000\000\000\161\000\000\000\161\003Z\000\161\000\000\000\161\000\221\000\000\007\130\001\222\000\000\000\000\000\221\000\221\000\000\002\186\000\000\000\161\000\000\000\000\000\000\000\000\000\221\000\161\000\221\000\000\000\000\000\161\000\000\000\000\000\000\000\000\000\161\000\000\000\000\000\161\000\000\000\000\000\000\000\000\000\161\000\161\000\238\007\142\000\000\000\000\000\000\000\000\000\000\000\161\000\161\000\000\000\000\000\000\000\000\000\000\000\161\000\000\000\000\000\157\000\161\000\000\000\000\000\000\000\157\000\000\000\000\000\157\000\000\000\000\000\161\000\161\000\000\000\000\000\161\000\161\000\000\000\157\000\000\000\157\000\000\000\157\000\000\000\157\000\161\000\000\000\000\000\000\000\000\000\000\000\161\000\161\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\161\000\157\000\161\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\157\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\157\000\157\000\238\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\157\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\000\001\141\000\157\000\000\000\000\000\000\001\141\000\000\000\000\001\141\000\000\000\000\000\157\000\157\000\000\000\000\000\157\000\157\000\000\001\141\000\000\000\000\000\000\001\141\000\000\001\141\000\157\000\000\000\000\000\000\000\000\000\000\000\157\000\157\000\000\000\000\000\000\001\141\001\141\000\000\000\000\000\000\000\157\001\141\000\157\000\000\000\000\000\000\000\000\005\209\000\000\000\000\001\141\000\000\000\000\001\141\000\000\000\000\000\000\000\000\001\141\001\141\001\141\000\000\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\141\000\000\000\000\000\000\001\141\014\129\014\129\000\000\000\000\000\000\014\129\000\000\000\000\014\129\001\141\001\141\000\000\000\000\001\141\001\141\000\000\000\000\000\000\014\129\005\209\014\129\000\000\014\129\001\141\014\129\000\000\000\000\000\000\000\000\001\141\001\141\000\000\000\000\000\000\000\000\001\141\014\129\000\000\000\000\000\000\000\000\001\141\014\129\014\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\129\000\000\000\000\014\129\000\000\000\000\000\000\000\000\014\129\014\129\014\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\014\129\000\000\000\000\000\000\014\129\014}\014}\000\000\000\000\000\000\014}\000\000\000\000\014}\014\129\014\129\014\129\000\000\014\129\014\129\000\000\000\000\000\000\014}\000\000\014}\000\000\014}\000\000\014}\000\000\014\129\000\000\000\000\000\000\014\129\000\000\000\000\000\000\000\000\000\000\014}\000\000\000\000\004\254\000\000\014\129\014}\014}\000\000\000\000\000\000\000\000\000\000\000\000\005-\014}\000\000\000\000\014}\000\246\000\000\000\000\002\"\014}\014}\014}\000\000\000\000\000\000\000\000\000\000\000\000\021\142\000\000\000\000\000\000\005-\000\000\003v\014}\000\000\t\149\t\149\014}\000\000\000\000\t\149\000\000\000\000\t\149\021\146\000\000\000\000\014}\014}\014}\021\186\014}\014}\t\149\000\000\t\149\000\000\t\149\000\000\t\149\000\000\007\210\020\222\000\000\014}\000\000\000\000\020\246\014}\000\000\000\000\t\149\000\000\000\000\000\000\000\000\000\000\t\149\t\149\014}\000\000\000\000\000\000\022Z\000\000\000\000\t\149\000\000\000\000\t\149\000\000\000\000\000\000\000\000\t\149\t\149\000\238\021\018\022n\000\000\000\000\005-\005-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\149\003\022\002\198\000\000\t\149\002\146\000\000\007&\022~\000\000\002\254\000\000\000\000\000\000\t\149\t\149\t\149\000\000\t\149\t\149\001\210\000\000\007F\000\000\000\000\000\000\000\000\003\026\t\149\000\000\t\134\t\149\000\000\000\000\000\000\t\149\000\000\000\000\003\189\000\000\003&\000\000\000\000\t\178\001\190\000\000\t\149\007\229\000\000\000\000\002\186\000\000\000\000\004\006\000\000\000\000\000\000\004\n\000\000\004\018\000\000\t\194\005\174\011&\000\000\000\000\007\229\000\000\000\000\000\000\007\229\000\000\000\000\000\000\005\178\000\000\000\000\011\142\011\214\011\238\011\166\012\006\005\186\005\190\000\000\000\000\003\189\000\000\000\000\000\000\000\000\012\030\0126\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012N\003\189\000\000\000\000\003\189\000\000\005\194\000\000\000\238\000\000\000\000\000\000\004\130\000\000\000\000\000\000\000\000\011>\011\190\012f\012~\012\174\000\000\000\000\000\000\000\000\001\173\000\000\007\229\012\198\000\000\001\173\000\000\001\206\001\173\000\000\000\000\000\000\012\222\000\000\000\000\000\000\t\245\000\000\001\173\000\000\000\000\000\000\001\173\000\000\001\173\000\000\r>\000\000\rV\012\150\000\000\000\000\000\000\000\000\000\000\012\246\001\173\000\000\000\000\000\000\000\000\000\000\001\173\r\014\r&\000\000\000\000\000\000\000\000\002\170\000\000\001\173\020.\000\000\001\173\000\000\000\000\000\000\000\000\001\173\001\173\001\173\000\000\000\000\000\000\000\000\000\000\000\000\011&\000\000\000\000\000\000\0202\000\000\000\000\001\173\001\173\000\000\000\000\004\222\000\000\000\000\011\142\011\214\011\238\011\166\012\006\000\000\000\000\001\173\001\173\000\000\000\000\001\173\001\173\000\000\012\030\0126\000\000\000\000\000\000\000\000\000\000\001\173\000\000\012N\000\000\000\000\000\000\000\000\001\173\000\000\000\000\000\238\000\000\001\173\000\000\000\000\000\000\000\000\000\000\001\173\011>\011\190\012f\012~\012\174\000\000\000\000\006\142\000\000\000\000\000\000\000\000\012\198\001\202\001\206\000\000\000\000\000\000\000\000\000\000\000\000\012\222\000\000\n\142\000\000\000\000\000\000\000\000\000\246\001\202\001\206\002\"\001\210\001\250\001\230\r>\0206\rV\012\150\020F\000\000\021\142\001\242\000\000\012\246\005-\000\000\003v\001\210\001\250\001\230\000\000\r\014\r&\000\000\001\246\002\162\000\000\001\242\021\146\002\174\000\000\002\186\004.\004:\021\186\000\000\000\000\000\000\004F\000\000\001\246\002\162\000\000\000\000\000\000\002\174\020\222\002\186\004.\004:\000\000\020\246\006\133\006\133\004F\004J\000\000\006\133\000\000\000\000\006\133\000\000\000\000\000\000\000\000\000\000\000\000\022Z\000\000\000\000\006\133\004J\006\133\000\000\006\133\000\000\006\133\000\000\000\000\000\000\000\000\021\018\022n\000\000\000\000\000\000\000\000\000\000\006\133\000\000\000\000\004~\000\000\004\130\006\133\006\133\006\129\007\166\000\000\000\000\b\130\006\129\022~\006\133\006\129\000\000\006\133\000\000\000\000\000\000\000\000\006\133\006\133\000\238\006\129\000\000\006\129\000\000\006\129\000\000\006\129\000\000\000\000\000\000\000\000\000\000\000\000\006\133\000\000\000\000\000\000\006\133\006\129\000\000\000\000\000\000\000\000\000\000\006\129\b\"\000\000\006\133\006\133\006\133\000\000\006\133\006\133\006\129\000\000\000\000\006\129\000\000\000\000\000\000\000\000\006\129\006\129\000\238\006\133\000\000\000\000\000\000\006\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\129\000\000\006\133\000\000\006\129\014\141\014\141\000\000\000\000\000\000\014\141\000\000\000\000\014\141\006\129\006\129\006\129\000\000\006\129\006\129\000\000\000\000\000\000\014\141\000\000\014\141\n\154\014\141\000\000\014\141\000\000\006\129\001\202\001\206\000\000\006\129\000\000\000\000\000\000\000\000\000\000\014\141\000\000\000\000\000\000\000\000\006\129\014\141\014\141\014\145\014\145\001\210\001\250\001\230\014\145\000\000\014\141\014\145\000\000\014\141\000\000\001\242\000\000\000\000\014\141\014\141\000\238\014\145\002\002\014\145\000\000\014\145\000\000\014\145\001\246\002\162\000\000\000\000\000\000\002\174\014\141\002\186\004.\004:\014\141\014\145\000\000\000\000\004F\000\000\000\000\014\145\b\"\000\000\014\141\014\141\014\141\000\000\014\141\014\141\014\145\000\000\000\000\014\145\000\000\004J\000\000\000\000\014\145\014\145\000\238\014\141\000\000\000\000\000\000\014\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\145\000\000\014\141\000\000\014\145\006\157\007\166\000\000\000\000\000\000\006\157\000\000\000\000\006\157\014\145\014\145\014\145\000\000\014\145\014\145\000\000\000\000\000\000\006\157\000\000\006\157\000\000\006\157\000\000\006\157\000\000\014\145\007\181\007\181\000\000\014\145\000\000\000\000\000\000\000\000\000\000\006\157\000\000\000\000\000\000\000\000\014\145\006\157\b\"\006\161\006\161\007\181\007\181\007\181\006\161\000\000\006\157\006\161\000\000\006\157\000\000\007\181\000\000\000\000\006\157\006\157\000\238\006\161\000\000\006\161\000\000\006\161\000\000\006\161\007\181\007\181\000\000\000\000\000\000\007\181\006\157\007\181\007\181\007\181\006\157\006\161\000\000\000\000\007\181\000\000\000\000\006\161\006\161\000\000\006\157\006\157\006\157\000\000\006\157\006\157\006\161\000\000\000\000\006\161\000\000\007\181\000\000\000\000\006\161\006\161\006\161\006\157\000\000\000\000\000\000\006\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\161\000\000\006\157\000\000\006\161\006\153\006\153\000\000\000\000\000\000\006\153\000\000\000\000\006\153\006\161\006\161\006\161\000\000\006\161\006\161\000\000\000\000\000\000\006\153\0056\006\153\000\000\006\153\000\000\006\153\000\000\006\161\000\000\000\000\000\000\006\161\000\000\000\000\000\000\000\000\000\000\006\153\000\000\000\000\000\000\000\000\bJ\006\153\b\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\153\000\000\000\000\006\153\000\000\000\000\000\000\000\000\006\153\006\153\000\238\000\000\003\245\000\000\000\000\000\000\000\000\003\245\000\000\001\206\003\245\000\000\000\000\000\000\006\153\000\000\000\000\000\000\006\153\000\000\003\245\000\000\000\000\000\000\003\245\000\000\003\245\000\000\006\153\006\153\006\153\000\000\006\153\006\153\000\000\000\000\000\000\000\000\003\245\000\000\000\000\000\000\000\000\000\000\003\245\006\153\000\000\000\000\000\000\006\153\000\000\002\170\000\000\003\245\000\000\000\000\003\245\000\000\000\000\000\000\006\153\003\245\003\245\003\245\000\000\003\241\000\000\000\000\000\000\000\000\003\241\000\000\001\206\003\241\000\000\000\000\000\000\003\245\003\245\000\000\000\000\004\222\000\000\003\241\000\000\000\000\000\000\003\241\000\000\003\241\000\000\003\245\003\245\000\000\000\000\003\245\003\245\000\000\000\000\000\000\000\000\003\241\000\000\000\000\000\000\003\245\000\000\003\241\000\000\000\000\0011\000\000\003\245\000\000\002\170\0011\003\241\003\245\0011\003\241\000\000\000\000\000\000\003\245\003\241\003\241\003\241\000\000\0011\000\000\0011\000\000\0011\000\000\0011\000\000\000\000\000\000\000\000\000\000\003\241\003\241\000\000\000\000\004\222\000\000\0011\000\000\000\000\000\000\000\000\000\000\0011\000\000\003\241\003\241\0011\000\000\003\241\003\241\000\000\0011\000\000\000\000\0011\000\000\000\000\000\000\003\241\0011\0011\000\238\000\000\001-\000\000\003\241\000\000\000\000\001-\0011\003\241\001-\000\000\000\000\000\000\0011\003\241\000\000\000\000\0011\000\000\001-\000\000\001-\000\000\001-\000\000\001-\000\000\0011\0011\0011\000\000\0011\0011\000\000\000\000\000\000\000\000\001-\000\000\000\000\000\000\0011\000\000\001-\000\000\000\000\000\000\001-\0011\000\000\000\000\000\000\001-\000\000\000\000\001-\000\000\000\000\000\000\0011\001-\001-\000\238\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\001-\000\000\000\000\000\000\001-\001i\000\000\000\000\000\000\000\000\001i\000\000\r\221\001i\001-\001-\001-\000\000\001-\001-\000\000\r\221\000\000\001i\000\000\001i\000\000\001i\001-\001i\000\000\000\000\000\000\000\000\000\000\001-\000\000\000\000\000\000\000\000\000\000\001i\000\000\000\000\000\000\000\000\001-\001i\r\221\000\000\000\000\000\000\000\000\000\000\r\221\000\000\000\000\000\000\000\000\001i\000\000\000\000\000\000\000\000\001i\001i\001i\000\000\000\000\001\029\000\000\000\000\000\000\000\000\001\029\000\000\002\025\001\029\000\000\000\000\001i\000\000\000\000\000\000\r\221\002\025\000\000\001\029\000\000\001\029\000\000\001\029\000\000\001\029\001i\001i\001i\000\000\001i\001i\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\001\029\002\025\000\000\000\000\001i\000\000\000\000\002\025\000\000\000\000\000\000\000\000\001\029\000\000\000\000\001i\000\000\001\029\001\029\001\029\000\000\001\185\000\000\000\000\000\000\000\000\001\185\000\000\018\150\001\185\000\000\002\146\000\000\001\029\000\000\000\000\000\000\002\025\000\000\001\185\000\000\000\000\000\000\001\185\000\000\001\185\000\000\001\029\001\029\001\029\000\000\001\029\001\029\000\000\000\000\000\000\000\000\001\185\000\000\000\000\000\000\000\000\000\000\001\185\000\000\000\000\000\000\000\000\001\029\018\154\000\000\000\000\001\185\000\000\000\000\001\185\000\000\000\000\000\000\001\029\001\185\001\185\000\000\018\166\005%\000\000\005%\000\000\000\000\005%\000\000\000\000\005%\000\000\005%\007\166\001\185\000\000\000\000\005%\001\185\000\000\005%\000\000\000\000\005%\005%\000\000\005%\005\190\001\185\001\185\005%\000\000\001\185\001\185\005%\005%\005%\000\000\005%\000\000\000\000\005%\001\185\000\000\005%\000\000\000\000\000\000\005%\001\185\005%\000\000\000\000\005%\005%\b\"\005%\000\000\005%\002\234\001\185\005%\002\234\005%\000\000\000\000\005%\000\000\000\000\000\000\005%\005%\002\234\000\238\005%\t!\000\000\005%\005%\000\000\t!\005%\000\000\t!\000\000\000\000\000\000\005%\005%\005%\000\000\005%\005%\t!\000\000\005%\005%\t!\000\000\t!\000\000\005%\005%\000\000\000\000\005%\005%\000\000\000\000\005%\000\000\t!\005%\000\000\000\000\007\210\000\000\t!\000\000\000\000\000\000\t!\005%\005%\000\000\000\000\t!\029*\000\000\t!\000\000\000\000\000\000\005%\t!\t!\000\238\t\029\000\000\000\000\000\000\000\000\t\029\t!\t!\t\029\000\000\000\000\000\000\000\000\t!\000\000\000\000\000\000\t!\t\029\000\000\000\000\000\000\t\029\000\000\t\029\000\000\000\000\t!\t!\t!\000\000\t!\t!\000\000\000\000\000\000\t\029\000\000\000\000\000\000\000\000\t!\t\029\000\000\000\000\000\000\t\029\000\000\t!\000\000\000\000\t\029\000\000\000\000\t\029\000\000\000\000\000\000\000\000\t\029\t\029\000\238\003\233\000\000\000\000\000\000\000\000\003\233\t\029\t\029\003\233\000\000\000\000\000\000\000\000\t\029\000\000\000\000\000\000\t\029\003\233\000\000\000\000\000\000\003\233\000\000\003\233\000\000\000\000\t\029\t\029\t\029\000\000\t\029\t\029\000\000\000\000\000\000\003\233\018\174\000\000\000\000\000\000\t\029\003\233\000\000\000\000\000\000\000\000\000\000\t\029\000\000\000\000\003\233\000\000\000\000\003\233\000\000\000\000\000\000\000\000\003\233\003\233\003\233\003\022\002\198\000\000\000\000\002\146\000\000\007&\000\000\000\000\002\254\000\000\000\000\000\000\003\233\000\000\000\000\000\000\003\233\000\000\001\210\000\000\007F\000\000\000\000\000\000\000\000\003\026\003\233\003\233\t\134\000\000\003\233\003\233\000\000\000\000\000\000\000\000\0276\000\000\003&\000\000\003\233\0032\001\190\000\000\000\000\000\000\019\014\003\233\002\186\000\000\000\000\004\006\003\233\000\000\000\000\004\n\000\000\004\018\003\233\t\194\005\174\000\000\000\000\000\000\003\022\002\198\000\000\000\000\002\146\000\000\007&\000\000\005\178\002\254\000\000\000\000\000\000\000\000\000\000\000\000\005\186\005\190\000\000\001\210\025\166\007F\000\000\000\000\000\000\000\000\003\026\000\000\000\000\t\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\002\003&\005\194\000\000\t\178\001\190\000\000\000\000\004\130\000\000\000\000\002\186\000\000\000\000\004\006\000\000\000\000\000\000\004\n\000\000\004\018\000\000\t\194\005\174\000\000\000\000\000\000\003\022\002\198\000\000\000\000\002\146\000\000\007&\000\000\005\178\002\254\000\000\000\000\000\000\000\000\000\000\000\000\005\186\005\190\000\000\001\210\rz\007F\000\000\000\000\000\000\000\000\003\026\000\000\000\000\t\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026>\003&\005\194\000\000\t\178\001\190\000\000\000\000\004\130\000\000\000\000\002\186\000\000\000\000\004\006\000\000\000\000\000\000\004\n\000\000\004\018\005\250\t\194\005\174\000\000\000\000\000\000\003\022\002\198\000\000\000\000\002\146\000\000\000\000\000\000\005\178\002\254\000\000\000\000\000\000\000\000\005\254\000\000\005\186\005\190\000\000\001\210\rz\000\000\000\000\000\000\000\000\000\000\003\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\158\003&\005\194\000\000\0032\001\190\000\000\000\000\004\130\000\000\000\000\002\186\000\000\000\000\004\006\000\000\000\000\000\000\004\n\000\000\004\018\005\162\000\000\005\174\000\000\000\000\nU\000\000\000\000\000\000\000\000\000\000\003\022\002\198\000\000\005\178\002\146\000\000\000\000\000\000\000\000\002\254\000\000\005\186\005\190\000\000\006\002\000\000\nU\000\000\000\000\001\210\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\000\000\000\000\000\000\000\000\006\190\000\000\000\000\005\194\005\r\005\r\000\000\003&\005\r\004\130\0032\001\190\000\000\005\r\000\000\000\000\000\000\002\186\000\000\005\r\004\006\000\000\000\000\005\r\004\n\000\000\004\018\005\162\000\000\005\174\005\r\026\238\000\000\000\000\027\006\000\000\000\000\000\000\000\000\000\000\000\000\005\178\000\000\005\r\000\000\000\000\005\r\005\r\000\000\005\186\005\190\000\000\006\002\005\r\000\000\000\000\005\r\000\000\000\000\000\238\005\r\000\000\005\r\005\r\000\000\005\r\003\233\000\000\000\000\000\000\000\000\003\233\000\000\005\194\003\233\nU\003\233\005\r\000\000\004\130\000\000\003\233\000\000\000\000\003\233\005\r\005\r\000\000\003\233\000\000\003\233\000\000\000\000\000\000\003\233\000\000\000\000\000\000\003\233\000\000\003\233\000\000\003\233\018\174\000\000\000\000\000\000\000\000\003\233\005\r\000\000\000\000\003\233\018\174\000\000\005\r\000\000\003\233\003\233\000\000\003\233\000\000\000\000\000\000\000\000\003\233\003\233\003\233\000\000\000\000\003\233\000\000\000\000\000\000\000\000\003\233\003\233\003\233\000\000\000\000\000\000\003\233\000\000\000\000\000\000\003\233\000\000\000\000\000\000\000\000\000\000\003\233\000\000\000\000\000\000\003\233\003\233\0292\000\000\003\233\003\233\000\000\000\000\000\000\000\000\003\233\003\233\029b\000\000\003\233\003\233\000\000\r\213\000\000\000\000\019\014\003\233\r\213\000\000\000\000\r\213\003\233\000\000\000\000\000\000\019\014\003\233\000\000\000\000\000\000\r\213\003\233\000\000\000\000\r\213\000\000\r\213\000\000\000\000\000\000\000\000\000\000\005\201\000\000\000\000\000\000\000\246\000\000\r\213\002\202\000\000\000\000\000\000\000\000\r\213\000\000\000\000\000\000\000\000\005Y\000\000\000\000\000\000\r\213\000\000\003v\r\213\000\000\000\000\000\000\000\000\r\213\r\213\000\000\000\000\000\000\000\000\003\130\000\000\0075\000\000\000\000\000\000\020z\000\000\000\000\002\198\r\213\000\000\002\146\000\000\r\213\028N\000\000\002\254\020\222\000\000\000\000\000\000\0075\020\246\r\213\r\213\002\138\001\210\r\213\r\213\000\000\003\002\000\000\000\000\000\000\000\000\000\000\000\000\r\213\020\254\003\006\000\000\003\166\000\000\000\000\r\213\000\000\000\000\007]\000\000\003\238\001\190\000\000\021\018\021N\002\198\r\213\002\186\002\146\000\000\003\246\000\000\000\000\002\254\b\190\b\194\b\206\000\000\007]\005\174\000\000\000\000\000\000\001\210\025\142\000\000\000\000\003\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\006\000\000\003\166\005\186\005\190\000\000\000\000\000\000\000\000\000\000\003\238\001\190\000\000\000\000\000\000\000\000\000\000\002\186\000\000\000\000\003\246\000\000\000\000\000\000\b\190\b\194\b\206\005\194\b\214\005\174\000\000\000\000\b\238\004\130\006!\000\000\000\000\000\000\000\000\006!\000\000\000\000\006!\000\000\000\000\000\000\000\000\000\000\000\000\005\186\005\190\000\000\006!\000\000\000\000\000\000\006!\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\006!\000\000\000\000\005\194\b\214\000\000\006!\000\000\b\238\004\130\000\000\000\000\b\130\000\000\000\000\006!\000\000\000\000\006!\000\000\000\000\000\000\000\000\006!\006!\000\238\000\000\006)\000\000\000\000\000\000\000\000\006)\000\000\000\000\006)\000\000\000\000\000\000\006!\006!\000\000\000\000\006!\000\000\006)\000\000\000\000\000\000\006)\000\000\006)\000\000\006!\006!\000\000\000\000\006!\006!\000\000\000\000\000\000\000\000\006)\000\000\000\000\000\000\000\000\000\000\006)\000\000\003\233\000\000\000\000\006!\b\130\003\233\000\000\006)\003\233\000\000\006)\000\000\000\000\000\000\006!\006)\006)\000\238\003\233\000\000\000\000\000\000\003\233\000\000\003\233\000\000\000\000\000\000\000\000\000\000\000\000\006)\006)\000\000\000\000\006)\003\233\018\174\000\000\000\000\000\000\000\000\003\233\000\000\000\000\006)\006)\000\000\000\000\006)\006)\003\233\000\000\000\000\003\233\000\000\000\000\000\000\000\000\003\233\003\233\003\233\006\229\000\000\000\000\000\000\006)\006\229\000\000\000\000\006\229\000\000\000\000\000\000\000\000\003\233\000\000\006)\000\000\003\233\006\229\000\000\000\000\000\000\006\229\000\000\006\229\000\000\000\000\003\233\003\233\021^\000\000\003\233\003\233\000\000\000\000\000\000\006\229\000\000\000\000\000\000\000\000\000\000\006\229\000\000\000\000\000\000\000\000\019\014\003\233\000\000\000\000\006\229\000\000\000\000\006\229\000\000\000\000\000\000\000\000\006\229\006\229\000\238\000\000\000\000\000\000\000\000\000\000\029\n\000\000\000\000\000\000\000\000\000\000\003\022\002\198\006\229\000\000\002\146\000\000\006\229\000\000\000\000\002\254\000\000\000\000\000\000\000\000\000\000\000\000\006\229\006\229\0252\001\210\006\229\006\229\000\000\000\000\000\000\000\000\003\026\000\000\000\000\000\000\006\229\000\000\000\000\r\213\000\000\000\000\000\000\006\229\r\213\003&\000\000\r\213\0032\001\190\000\000\000\000\000\000\000\000\006\229\002\186\000\000\r\213\004\006\000\000\000\000\r\213\004\n\r\213\004\018\005\162\000\000\005\174\000\000\005\201\000\000\000\000\000\000\000\000\000\000\r\213\000\000\000\000\000\000\005\178\000\000\r\213\000\000\000\000\000\000\000\000\000\000\005\186\005\190\000\000\006\002\000\000\000\000\r\213\000\000\000\000\000\000\000\000\r\213\r\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\194\000\000\007\018\r\213\tn\006&\004\130\000\000\000\000\000\000\000\000\003\022\002\198\000\000\000\000\002\146\000\000\r\213\r\213\002\138\002\254\r\213\r\213\000\000\000\000\000\000\000\000\004\014\000\000\000\000\001\210\r\213\000\000\000\000\000\000\030\030\000\000\003\026\r\213\000\000\000\000\006\130\000\000\000\000\000\000\000\000\000\000\003\022\002\198\r\213\003&\002\146\000\000\0032\001\190\000\000\002\254\000\000\000\000\000\000\002\186\000\000\000\000\004\006\000\000\000\000\001\210\004\n\000\000\004\018\005\162\000\000\005\174\003\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\178\000\000\003&\000\000\000\000\0032\001\190\000\000\005\186\005\190\000\000\006\002\002\186\000\000\000\000\004\006\000\000\000\000\000\000\004\n\000\000\004\018\005\162\000\000\005\174\000\000\000\000\006\162\000\000\000\000\000\000\000\000\005\194\003\022\002\198\000\000\005\178\002\146\004\130\000\000\000\000\000\000\002\254\000\000\005\186\005\190\000\000\006\002\000\000\006\214\000\000\000\000\001\210\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\000\000\000\000\0079\000\000\000\000\000\000\000\000\005\194\003\022\002\198\000\000\003&\002\146\004\130\0032\001\190\000\000\002\254\000\000\000\000\000\000\002\186\0079\000\000\004\006\000\000\000\000\001\210\004\n\000\000\004\018\005\162\000\000\005\174\003\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\178\000\000\003&\000\000\000\000\0032\001\190\000\000\005\186\005\190\000\000\006\002\002\186\000\000\000\000\004\006\000\000\000\000\000\000\004\n\000\000\004\018\005\162\000\000\005\174\000\000\000\000\014\n\000\000\000\000\000\000\000\000\005\194\003\022\002\198\000\000\005\178\002\146\004\130\000\000\000\000\000\000\002\254\000\000\005\186\005\190\000\000\000\000\000\000\000\000\000\000\000\000\001\210\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\000\000\000\000\014\022\000\000\000\000\000\000\000\000\005\194\003\022\002\198\000\000\003&\002\146\004\130\0032\001\190\000\000\002\254\000\000\000\000\000\000\002\186\000\000\000\000\004\006\000\000\000\000\001\210\004\n\000\000\004\018\005\162\000\000\005\174\003\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\178\000\000\003&\000\000\000\000\0032\001\190\000\000\005\186\005\190\000\000\006\002\002\186\000\000\000\000\004\006\000\000\000\000\000\000\004\n\000\000\004\018\005\162\000\000\005\174\000\000\000\000\014\"\000\000\000\000\000\000\000\000\005\194\003\022\002\198\000\000\005\178\002\146\004\130\000\000\000\000\000\000\002\254\000\000\005\186\005\190\000\000\006\002\000\000\000\000\000\000\000\000\001\210\000\000\000\000\000\000\000\000\000\000\000\000\003\026\000\000\000\000\007\241\007\166\000\000\000\000\000\000\007\241\005\194\000\000\007\241\000\000\003&\000\000\004\130\0032\001\190\000\000\000\000\000\000\007\241\000\000\002\186\000\000\007\241\004\006\007\241\000\000\000\000\004\n\000\000\004\018\005\162\000\000\005\174\000\000\000\000\000\000\007\241\000\000\000\000\000\000\000\000\000\000\007\241\b\"\005\178\000\000\000\000\000\000\000\000\000\000\000\000\007\241\005\186\005\190\007\241\006\002\000\000\000\000\000\000\007\241\007\241\000\238\001\153\000\000\000\000\000\000\000\000\001\153\000\000\000\000\001\153\000\000\000\000\000\000\000\000\007\241\005\194\000\000\000\000\007\241\001\153\000\000\004\130\000\000\001\153\000\000\001\153\000\000\000\000\007\241\007\241\000\000\000\000\007\241\007\241\000\000\000\000\000\000\001\153\000\000\000\000\000\000\000\000\000\000\001\153\000\000\001\189\000\000\000\000\000\000\007\241\001\189\000\000\001\153\001\189\000\000\001\153\000\000\000\000\000\000\000\000\001\153\001\153\001\153\001\189\000\000\000\000\000\000\001\189\000\000\001\189\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\000\000\000\000\001\153\001\189\000\000\000\000\000\000\000\000\000\000\001\189\000\000\000\000\001\153\001\153\000\000\000\000\001\153\001\153\001\189\000\000\000\000\001\189\021j\000\000\000\000\000\000\001\189\001\189\000\000\000\000\000\000\000\000\000\000\001\153\000\000\000\000\000\000\000\000\001\153\000\000\000\000\000\000\001\189\000\000\006\233\000\000\001\189\000\000\000\000\006\233\000\000\000\000\006\233\000\000\000\000\000\000\001\189\001\189\000\000\000\000\001\189\001\189\006\233\000\000\000\000\000\000\006\233\000\000\006\233\000\000\001\189\000\000\000\000\000\000\000\000\000\000\000\000\001\189\000\000\000\000\006\233\000\000\025\014\000\000\000\000\000\000\006\233\000\000\001\189\000\000\000\000\000\000\000\000\000\000\000\000\006\233\000\000\000\000\006\233\000\000\000\000\000\000\000\000\006\233\006\233\000\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\006\233\000\000\r\213\000\000\006\233\000\000\000\000\r\213\000\000\000\000\r\213\000\000\000\000\000\000\006\233\006\233\000\000\000\000\006\233\006\233\r\213\000\000\000\000\000\000\r\213\000\000\r\213\000\000\006\233\000\000\000\000\000\000\005\201\000\000\000\000\006\233\000\000\000\000\r\213\000\000\000\000\000\000\000\000\000\000\r\213\000\000\006\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\213\000\000\000\000\000\000\000\000\r\213\r\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\141\000\000\002\198\r\141\000\000\031\206\000\000\r\213\000\000\000\000\031\210\000\000\000\000\r\141\000\000\000\000\000\000\000\000\000\000\r\141\000\000\r\213\r\213\002\138\000\000\r\213\r\213\000\000\000\000\000\000\000\000\r\141\000\000\000\000\000\000\r\213\000\000\r\141\000\000\030V\000\000\000\000\r\213\001\002\001\190\000\000\r\141\000\000\000\000\r\141\000\000\000\000\000\000\r\213\r\141\000\000\000\000\000\000\000\000\000\000\tQ\tQ\031\214\000\000\tQ\000\000\000\000\000\000\000\000\tQ\r\141\000\000\000\000\000\000\r\141\019V\000\000\000\000\000\000\tQ\000\000\000\000\000\000\031\218\r\141\r\141\tQ\000\000\r\141\005%\000\000\000\000\000\000\000\000\005%\000\000\000\000\005%\000\000\tQ\000\000\000\000\tQ\tQ\000\000\r\141\000\000\005%\000\000\tQ\000\000\005%\tQ\005%\000\000\000\000\tQ\000\000\tQ\tQ\000\000\tQ\000\000\000\000\000\000\005%\000\000\000\000\000\000\000\000\000\000\005%\000\000\tQ\000\000\000\000\000\000\b\130\000\000\000\000\005%\tQ\tQ\005%\000\000\000\000\000\000\000\000\005%\002\234\000\238\000\000\001U\000\000\000\000\000\000\000\000\001U\000\000\000\000\001U\000\000\000\000\000\000\005%\tQ\000\000\000\000\005%\000\000\001U\tQ\001U\000\000\001U\000\000\001U\000\000\005%\005%\000\000\000\000\005%\005%\000\000\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\209\000\000\000\000\005%\000\000\000\209\000\000\000\000\000\209\000\000\001U\000\000\000\000\000\000\000\000\001U\001U\000\238\000\209\000\000\000\000\000\000\000\209\000\000\000\209\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\209\000\000\000\000\000\000\000\000\000\000\000\209\000\000\000\000\001U\001U\001U\000\000\001U\001U\000\209\000\000\000\000\000\209\000\000\000\000\000\000\000\000\000\209\000\209\000\238\000\000\000\213\000\000\000\000\001U\000\000\000\213\000\000\000\000\000\213\000\000\000\000\000\000\000\209\000\000\001U\000\000\000\209\000\000\000\213\000\000\000\000\000\000\000\213\000\000\000\213\000\000\000\209\000\209\000\000\000\000\000\209\000\209\000\000\000\000\000\000\000\000\000\213\000\000\000\000\000\000\000\000\000\000\000\213\000\000\007\237\000\000\000\000\000\209\000\000\007\237\000\000\000\213\007\237\000\000\000\213\000\000\000\000\000\000\000\209\000\213\000\213\000\238\007\237\000\000\000\000\000\000\007\237\000\000\007\237\000\000\000\000\000\000\000\000\000\000\000\000\000\213\000\000\000\000\000\000\000\213\007\237\000\000\000\000\000\000\000\000\000\000\007\237\000\000\000\000\000\213\000\213\000\000\000\000\000\213\000\213\007\237\000\000\000\000\007\237\000\000\000\000\000\000\000\000\007\237\007\237\000\000\000\000\006\221\000\000\000\000\000\213\000\000\006\221\000\000\000\000\006\221\000\000\000\000\000\000\007\237\000\000\000\213\021:\007\237\000\000\006\221\000\000\000\000\000\000\006\221\000\000\006\221\000\000\007\237\007\237\020\142\000\000\007\237\007\237\000\000\000\000\000\000\000\000\006\221\000\000\000\000\000\000\000\000\000\000\006\221\000\000\0061\007\166\000\000\007\237\000\000\0061\000\000\006\221\0061\000\000\006\221\000\000\000\000\000\000\000\000\006\221\006\221\000\000\0061\000\000\000\000\000\000\0061\000\000\0061\000\000\000\000\000\000\000\000\r=\000\000\006\221\000\000\000\000\r=\006\221\0061\r=\000\000\000\000\000\000\000\000\0061\b\"\000\000\006\221\006\221\r=\000\000\006\221\006\221\r=\000\000\r=\0061\000\000\000\000\000\000\000\000\0061\0061\000\238\000\000\000\000\000\000\r=\006\221\000\000\000\000\000\000\000\000\r=\000\000\000\000\000\000\0061\000\000\000\000\001\202\002\142\r=\000\000\002\146\r=\000\000\000\000\000\000\000\000\r=\0061\0061\000\000\000\000\0061\0061\000\000\000\000\001\210\001\250\001\230\000\000\000\000\000\000\000\000\r=\011\022\000\000\001\242\r=\000\000\0061\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r=\r=\002\154\002\162\r=\r=\000\000\002\174\000\000\002\186\004.\004:\004\253\000\000\000\000\000\000\024\230\004\253\030\002\004\245\004\253\r=\000\000\000\000\004\245\000\000\000\000\004\245\000\000\000\000\004\253\000\000\rn\004J\004\253\000\000\004\253\004\245\000\000\000\000\000\000\004\245\005\190\004\245\000\000\000\000\000\000\000\000\004\253\000\000\000\000\000\000\030\014\000\000\004\253\004\245\000\000\000\000\000\000\000\000\000\000\004\245\000\000\004\253\000\000\000\000\004\253\000\000\000\000\024\250\004\245\004\253\000\000\004\245\000\000\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\253\000\000\000\000\000\000\004\253\005\021\000\000\004\245\000\000\000\000\005\021\004\245\004\229\005\021\004\253\004\253\000\000\004\229\004\253\004\253\004\229\004\245\004\245\005\021\000\000\004\245\004\245\005\021\000\000\005\021\004\229\000\000\000\000\000\000\004\229\004\253\004\229\000\000\000\000\000\000\000\000\005\021\004\245\000\000\000\000\000\000\020\182\005\021\004\229\000\000\005%\000\000\000\000\023\198\004\229\005%\005\021\000\000\005%\005\021\000\000\000\000\000\000\004\229\005\021\000\000\004\229\000\000\005%\000\000\000\000\004\229\005%\000\000\005%\000\000\000\000\000\000\000\000\000\000\005\021\000\000\000\000\000\000\005\021\000\000\005%\004\229\000\000\000\000\000\000\004\229\005%\000\000\005\021\005\021\000\000\000\000\005\021\005\021\000\000\004\229\004\229\000\000\005%\004\229\004\229\000\000\000\000\005%\002\234\000\000\000\000\000\000\000\000\005\021\001\202\001\206\000\000\000\000\000\000\000\000\004\229\000\000\000\000\005%\024\170\000\000\000\000\000\000\002\158\000\000\000\000\028\"\000\000\001\210\001\250\001\230\000\000\005%\005%\000\000\000\000\005%\005%\001\242\005\005\000\000\000\000\b6\000\000\005\005\002\002\000\000\005\005\000\000\000\000\000\000\001\246\002\162\005%\000\000\000\000\002\174\005\005\002\186\004.\004:\005\005\000\000\005\005\000\000\004F\000\000\000\000\004\237\000\000\000\000\000\000\000\000\004\237\000\000\005\005\004\237\000\000\000\000\000\000\000\000\005\005\004J\000\000\000\000\000\000\004\237\000\000\000\000\000\000\004\237\000\000\004\237\005\005\005\029\000\000\000\000\000\000\005\005\005\029\000\000\000\000\005\029\000\000\004\237\000\000\000\000\000\000\000\000\000\000\004\237\018\158\005\029\000\000\005\005\000\000\005\029\000\000\005\029\000\000\000\000\000\000\004\237\000\000\000\000\001\202\001\206\004\237\005\005\005\005\005\029\000\000\005\005\005\005\000\000\000\000\005\029\000\000\000\000\000\000\000\000\004\014\000\000\004\237\001\210\001\250\001\230\000\000\005\029\005\005\000\000\000\000\000\000\005\029\001\242\000\000\000\000\004\237\004\237\000\000\022\n\004\237\004\237\000\000\000\000\000\000\000\000\001\246\002\162\005\029\000\000\000\000\002\174\000\000\002\186\004.\004:\000\000\004\237\000\000\000\000\004F\000\000\005\029\005\029\000\000\000\000\005\029\005\029\024R\000\000\000\000\000\000\000\000\000\000\0059\000\000\000\000\004J\000\000\000\246\000\000\b\157\002\202\005\029\b\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003r\000\000\024\210\000\000\0059\000\000\003v\000\000\b\157\b\157\000\000\b\157\b\157\000\000\000\000\000\000\000\000\000\000\003\130\000\000\000\000\004~\000\000\004\130\020z\b\177\000\000\000\000\b\177\000\000\000\000\000\000\b\157\028N\000\000\000\000\020\222\000\000\000\000\000\000\000\000\020\246\000\000\000\000\b\177\b\177\000\000\b\177\b\177\000\000\b\157\000\000\000\000\000\000\000\000\000\000\000\000\020\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\177\000\000\000\000\021\018\021N\000\000\000\000\0059\0059\000\000\000\000\000\000\b\157\000\000\b\157\000\000\000\000\000\000\000\238\000\000\000\000\000\000\000\000\000\000\025\142\000\000\006\026\000\000\000\000\b\157\b\157\000\000\b\137\000\000\b\157\b\137\b\157\000\000\000\000\000\000\b\157\b\181\000\000\000\000\b\181\000\000\000\000\000\000\b\177\000\000\b\177\b\137\b\137\000\000\b\137\b\137\000\000\000\000\000\000\000\000\b\181\b\181\b\177\b\181\b\181\006\"\b\177\000\000\b\165\000\000\b\177\b\165\b\177\000\000\000\000\b\137\b\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\181\000\000\000\000\b\165\b\165\000\000\b\165\b\165\000\000\b\137\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\000\000\000\b\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\137\000\000\b\137\000\000\000\000\000\000\000\238\000\000\000\000\b\181\000\000\b\181\000\000\000\000\b\137\000\000\000\000\006\"\b\137\000\000\014\149\014\149\b\137\b\181\b\137\000\000\006\"\b\181\b\137\000\000\000\000\b\181\000\000\b\181\000\000\000\000\b\165\b\181\b\165\014\149\014\149\014\149\007\186\000\000\000\000\000\000\000\000\000\000\000\000\014\149\006~\000\000\000\000\006\"\b\165\000\000\000\000\000\000\b\165\000\000\b\165\000\000\014\149\014\149\b\165\000\000\000\000\014\149\000\000\014\149\014\149\014\149\000\000\000\000\000\000\000\000\014\149\001\202\001\206\026B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202\001\206\026\162\000\000\000\000\014\149\000\000\000\000\001\210\001\214\001\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\242\001\210\001\214\001\230\000\246\000\000\000\000\002\202\000\000\000\000\000\000\001\242\000\000\001\246\002\162\000\000\000\000 \022\002\174\000\000\002\186\004.\004:\003v\001\246\002\162\000\000\004F\000\000\002\174\000\000\002\186\004.\004:\000\000\003\130\000\000\000\000\004F\000\000\000\000\020z\000\000\000\000\004J\000\000\000\000\000\000\001\202\001\206\028N\000\000\000\000\020\222\000\000\004J\000\000\000\000\020\246\000\000\000\000\000\000\000\000\001\202\001\206\000\000\000\000\001\210\001\250\000\000\000\000\000\000\000\000\000\000\020\254\000\000\000\000\000\000\031\198\000\000\000\000\000\000\001\210\001\250\000\000\000\000\000\000\000\000\021\018\021N\001\246\002\178\005a\000\000\000\000\002\174\000\000\002\186\004.\004:\000\000\000\000\000\000\000\000\004F\001\246\002\178\000\000\000\000\025\142\002\174\000\000\002\186\004.\004:\000\000\000\000\000\000\000\000\004F\000\000\004J\000\000\000\000\005\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004J\000\000\000\000\005\157\029\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\174"))
  
  and lhs =
    (8, "\014\r\012\011\n\t\b\007\006\005\004\003\002\001\000\231\231\230\230\229\228\228\227\227\227\227\227\227\227\227\227\227\226\226\225\224\223\223\223\223\223\223\223\223\222\222\222\222\222\222\222\222\221\221\221\220\220\219\218\218\218\217\217\216\216\216\216\216\216\215\215\215\215\215\215\215\215\214\214\214\214\214\214\214\214\213\213\213\213\212\211\210\210\210\210\209\209\209\209\208\208\208\207\207\207\207\206\205\205\205\204\204\203\203\202\202\202\201\201\201\201\201\201\201\201\201\200\200\199\199\198\198\197\196\195\194\193\193\192\192\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\191\190\190\189\188\188\188\188\187\187\187\187\186\186\185\185\185\185\185\185\184\183\182\182\181\181\180\180\179\178\178\177\176\176\175\174\173\173\173\172\172\171\170\170\170\170\170\170\169\169\169\169\169\169\169\169\168\168\167\167\167\167\167\167\166\166\165\165\165\164\164\163\163\163\163\162\162\161\161\160\160\159\159\158\158\157\157\156\156\155\155\154\154\153\153\152\152\152\151\151\151\151\150\150\149\149\148\148\147\147\147\147\147\146\146\146\146\145\145\145\144\144\144\144\144\144\144\143\143\143\143\143\143\143\142\142\141\141\140\140\140\140\140\140\139\139\138\138\137\137\136\136\135\135\135\134\133\133\133\133\132\132\132\131\131\131\131\131\131\131\131\131\131\130\130\129\129\128\128\128\128\128\128\128\128\128\128\128\128\128\127~}||{{{{{zyyxxwwwwwwwwwwwwwwvvuuttsssssssssssssssssssssssssssssssrrqqppoonnmmlllkkjjiihhggffffffffffffffffffedcba`_^]\\[ZZZZZZZZZZYYYXXXWWWWWVVVVVVVVVUUTTTTTSSRRQPOONNNNNMMLLKKKJJJJJJIIIHHGGFFEEDDCCBBBAA@@??>>==<<;;::::::998877777766655544433210000000000000000000/////.......-----------------------------------------------------------------,,++++++++++++++++++++++***************************************************))((''&&&&&&&&&&&&&&&&%%$$#######\"\"\"\"!!     \031\031\030\029\028\028\028\027\027\026\026\026\026\026\026\026\026\026\026\025\025\024\024\024\024\023\023\022\021\021\021\021\021\020\019\019\018\018\018\017\017\017\016\016\016\016\016\016\015\015")
  
  and goto =
    ((16, "\001\164\001\141\000G\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\239\000\006\000)\001{\000\219\001X\000w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\029\022\000\000\000\000\000\000\000v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022N\001p\000\000\001\244\000\145\001|\000\000\000\000\000\000\001\006Vj\002\016\0018\001\238\000\000\000\000\000\000\002(\000\000\000\000\000\222\000\000\000\000\000\000\000\000\003\154\000\000\002\130\000\000\000\000\000\000\000\000\000\000\000(\000\000\002\184\003\228\b\184\000\000\000\000\n6\022N\000\000\000\000\016N\000\000\017\210\000\0008&\001\246\003\006\000\000\000\000\002\192\001\182\004\194\005\150\003\002\003\228\004`\000\t\001\248\0008\003~\002L\r\174\000\000\007\200\003\212\002\150\004\bID\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\176\000\000\0042\002\220\005(\000\000\000\000\000\000\000\000\005(\000\000\000\000\002\244\001n\003\b\0064\007\160\000\000\000\000\000\000\004\166\004\174\003n\001\172\000\000\000\000\003b\003\1683\234\004\204\003\170\001\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\022\000\000\000\000\000\000\004\234\004R\014\002\004\210\007\200 d\000\0008r\001\184909\164\000\000\001\024\000\000\000\000\000\000\000\000\005\178I\014\005\200\000\000\011\004\005\228\000\000\0110\r\170\000\203\000\000\000\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\190\005\136\000\000\000\000\000\000I\004\000\000\nb\000\000\000\000\005\142I\156\018$\000\000Xr\000\000\000\000\000\000\000\000\000\000\000\000\003P\030\024\003P\000y\000\000\000\000\000\000\005n\000\000\000\000\000\000\000\000\005\228\000\000\000\000\003P\000\000\000\000\000\000\000\000\000\000\014\166\000\000\004\212\006p\000\000I\254\004\228V\012\000\000\000\000\000\000\000\000\005n\000\000\000\000\000\000\011\234\000\000\000\000\000\000\000\000\000\000\000\000\003\244\006~\000\000\000\000\000\000\005n\006\166J\152\006\000\004\238#\238\000\000\003l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\000\000\000\000\000\000\000\000\007\132J\168\000\000\000\000\006\128\006\nJ\230\000\000\000\000\000\000K \006zK\168\000\000\006z\000\000K\180\006z\000\000L \015\176\007T\007\196\000\000\000\000-\022\000\000\000\000\000\000\000\000\000\000\000\000\006z\000\000\000\000L<\000\000\006zK\238\000\000\005n\000\000\000\000L\136\000\000\006z\001\152\000\000\000\000\006z\006z\000\000\000\000\006z\000\000\000\0009\164\000\000\000\000\000\000\000\000\006z9\220\000\000\000\000\006z\000\000\001F\007\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\018\000\000\007p\000\000L\184\005n\000\000\000\000\000\000\000\000\007\140\bf\014V\007\190\007\212\007\226\006l\004t\006\162\002\028\b\132\000\000\000\000\005\178\007\016\000\000\007\232\006\208\002j\b:\011H\000\000\004,\003*\006\222\000\174\t\156\000\000\000\000V\148\000\000V\192\t@\000\000L\226\005nL\252\005n\000\000\002\026\000\239\000\000\011\134\004,\000\000\000\000\b\182\000\000\000\000\000\000\000\000\000\000\012\016\004,\0122\004,\000\000\000G\000\000\000\000\000\r\000\000\000\000\000\000\n<\000\000\000\000\000\000\004,\004,\000\000\000\000\004,\000\000\b:\005B\000\000\000\133\003b\000\000\000\133\000\000\000\000\r@\004,\000\000\000\000\000\000\000\000\000\000\000\000\000\133\015\130 n\n\000\t\2029f\006\210\000\000\t*\007L\015\140\t6\007V/\1449v\000\000\000\000\000\000\000\000\000\000\005\002\012\n\000\000\000\000\000\000\tL\007|\005\202\000\133\r\152\000\000\004,\000\000\000\000\000\000\001\184\000\000M&\005n\015\192\t~\007\152\016z\t\152\007\158\006\178:L\006z\016\174\t\154\007\178:>\n\142\000\000:\224\006zM\190\005n\n\148\000\000\000\000\000\000\000\000\015\176\nv\000\000\000\000E\210\000\000\000\000W\024\000\000\000\000\n\188\"\250\003P\000\000\016\184\n\016\007\196!f\000\000:\146\n$\b\b!p\000\000;h\000\000\000\000\nF\b\014Nh\006z\017x\nN\b\030J\026\000\000T\156\000\000\000\000\"\018\nR\bZ\"\n\000\000\"l;\184\nv\br\"\210\000\0001\234\000\000\000\000\011\200N\"\000\000\005nC^\000\000\005nN\162\005n\000\000\000\000\000\000\000\000\000\000Y\154\000\000\000\000\000\000\001\202\017\130\000\000\000\000\000\000\000\000<\012\n\130\b\158#\014\000\000Z6\000\000\000\000\000\000\000\000\000\000\nX\018B\000\000\000\000\nj<\020\n\166\b\162#v\000\000\nj<`\n\182\t6#\168\000\000\nj\000\000ZV\000\000<\180\n\192\tt$\016\000\000\nj\018v\0024\018\128\000\000\000\000=\026\n\194\t\130$J\000\000\nj=\158\n\196\t\150$\136\000\000\nj=\198\n\210\t\210%\018\000\000\nj>\134\n\224\t\218%H\000\000\nj>\154\n\232\t\220%\180\000\000\nj>\174\n\238\t\246%\232\000\000\nj?T\n\250\n\004&\028\000\000\nj?\168\011\000\n\006&N\000\000\nj?\188\011\030\n\016&\176\000\000\nj@\\\0110\n\"&\238\000\000\nj@h\011:\n&'T\000\000\nj@\144\011N\nL'\182\000\000\njAP\011V\nV'\232\000\000\njAd\011t\nX(P\000\000\njB\016\011z\n\128(Z\000\000\njB$\011\128\n\134(\140\000\000\njB8\011\134\n\166(\244\000\000\njB\134\011\146\n\172)`\000\000\njB\228\011\216\n\178)l\000\000\njC\012\012.\n\180*\006\000\000\nj\n\210*\018\019J\019\254\000\000C^\012\214\000\000N\186\005n\020\006\000\000\000\000\012d\000\000N\228\005n\020Z\000\000\000\000\020\208\000\000\000\000\004\198\000\000\000\000\021\014\000\000\000\000\000\000\000\000N\246\005n\021\216\000\000\012(\021\224\000\000O\230\000\000\006zPb\000\000\006zPn\000\000\006z\005\204\000\000\000\000\000\000\000\000\000\000P\166\006z\000\000\004\230\005\020\000\000\000\000\000\000\nj\022:\000\000\000\000\000\000\022\170\000\000\000\000\000\000\000\000\000\000*r\000\000\000\000\000\000\nj*z\000\000+\026\000\000\000\000\000\000+&\000\000\000\000\000\000\000\000Zf\000\000\000\000,\014\000\000\000\000\000\000C\204\012f\n\226+\158\000\000\nj,\022\000\000\000\000\000\000Dn\012\130\011 ,\182\000\000\nj-\002\000\000\000\000\000\000Dx\012\136\011@-\"\000\000\nj\002\208\022\222\000\000\000\000D\204\012\138\011L-\194\000\000\nj\023\158\000\000\000\000D\212\012\144\011p..\000\000\nj\023\210\000\000\000\000Et\012\154\011v.:\000\000\nj\000\000\000\000.\156\000\000\000\000E\128\012\156\011\154.\206\000\000\nj/<\000\000\000\000E\218\012\166\011\170/D\000\000\nj00\000\000\000\000Fz\012\210\011\1740P\000\000\nj\000\000F\134\012\216\011\1800\158\000\000\nj\000\000)\160\000\000\000\000\nj\000\000\000\000\000\0000\146\000\000\000\0000\252\000\000\000\000\012\222\000\000\000\000\024B\000\000\024\140\000\000\000\000\000\000\nj\000\000\000\000\024\192\000\000\024\202\000\000\000\000\000\000\000\000\000\000F\142\r\002\011\2241\202\000\000Gv\r\014\012\0001\254\000\000\nj\njG~\r4\012\00226\000\000\nj\000\000\012(\025\246\000\000\000\000\026J\000\000G\138\000\000\000\0009v\000\000\000\000\000\0002\164\000\000\000\000\000\000\000\0002\216\000\000\000\000\000\000\000\000\014\140\000\000\000\000\000\000.\240\000\000\000N\000\000\005\242\014.\000\000\003\132\000\000\000\000\000\000\000\000\000\000\000\000\005\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\144\012\n3\174\000\000\nj\000\000\014\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\022\b\176\000\133\026R\000\000\r\156\012 \0144\006\166\t\138\000\133\0202\000\000\004,\t\148\000\133\000\000\026\158\000\000\006\222\000\000\r\186\012$\006\000\000\000\000\000\000\000\000\000\000\000\r\228\002b\001(\000\000\000\000\000\000G\204\000\000Wv\000\000\012*\000\000\0120\000\000\000\000\000\000\000\000\002\n\000\000\000\000\000\000*>\003P\000\000\003P\012\182\000\000\005`\000\000*\208\003P\003P\000\000+r\003P\003P\012:\000\000\026\242\000\000\000\000\012B\014\198\000\0003\160\006\022\000\000\000\000\000\000\000\000\000\000\000\000\r\220\012`4R\000\000\nj\000\000\000\000\000\000\000\000\000\000\r\224\012f\t\204\000\133\000\000\021<\000\000\004,\000\000\015>\000\000\000\000\000\000\000\000\000\0004`\000\000\r\246\012l4n\000\000\000\000\000\000\022\146\000\000\004,\000\000\023&\000\000\004,\000\000\024\248\004,\000\000\nj\000\000\000\000\025\140\000\000\004,\000\000\025\224\000\000\004,\000\000\027\176\004,\000\000\000\133\000\000\012\170\t\226\002\b\000\000\014\014\014\016\012\190\014D\015J\027\206\004,\007v\000\000\012\200\015\030\015@\006\228\007\154\015\012\012\206\015F\007\232\b\152\015\024\000\000\000\000\b\168\t\014\000\000\003\234\003fP\222\006z\027\222\000\000\007\190\001D\014\200\012\218\n$\004\252\000\000\014\202\r\014\tl\000\0005\012\000\000P\168\005n\000\000\015v\015\128\000\000\tT\000\000\005n\014\230\r\026\007\254\015\006\000\223\000\000\000\000\000\000\000\000\r \t\206\000\000\r&\t\230\000\000\b|X\176\014\238\014\240\r*\004\152\n.\000\000\r<\005\234\nx\000\000\014\244\014\250\rH\0152\015J\031\182\004,\000\000\r\\\015\156\000\000\007\022\000\000\n\130\000\000\015\168\000\000  \006\234\015t\rr\015\210\000\000 x\007\018\015\176\000\000\000\000\003\194\002\212\000\000\n\168\000\000!6\004,\011P\000\000\004\b\000\000\000\000\015d\r\152$\022\007N\000\000\015f\r\154\bt\015\006\015n\015p\r\156\016\224\000\000\015\142\0014\000\000\000\000\000\000\000\000\001\254\r\158\015dQj\005n\000\000\002\020\r\164\016$\000\000\000\000\000\000\000\000\000\000\000\000Q\132\b\000\000\000\r\172\016\128\000\000\000\000\000\000\000\000\000\000\000\0005H\011l\000\000\r\184\003F\000\000\r\212\r\216\004\226\000\000\007l\030\134\000\000\000\230\000\000Q\234\005n\005n\000\000\000\000\b \000\000\007`\000\000\br\b \b \000\000\r\234!\188\005nR&\005n\011r\000\000\000\000\000\000\000\000\011\200\000\000\000\000\003,\000\000\bb\015\224\014\n\017\002\015\178\000\000\000\000\t\174\b\134\015\248\000\000\000\000\014P\017\026\015\192\000\000\000\000RN\000\000\021\142\000\000Rx\012x\005n\000\000S\022PB\000\000SN\000\000\000\000\000\000\b \000\000\000\000\012,\016\004\014R\017 \015\214\000\000\000\000S^\012\128\016 \000\000\000\000\000\000X\244\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\130\000\000\0160\014T\007J\000\000\017.\016\224\012\134\016<\000\000\000\000\016@\014X\b^\000\000\000\000\t\030\r\170\004\172\000\000\000\000\000\000\b\200\016\004\014^\000\000\016\b\b\200\000\000\016\234\012\156\016H\000\000\000\000\000\000\005n\003\176\006\200\005\012\000\000\000\000\000\000\000\000\016\012\014p\000\000\005\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005n\015\242\014~\017\\\016\002\000\000\b\216\000\221\014\134\015\212\000q\000\212\014\140\016\152\000\000\017R\028\000\000\000\000\000\028(\000\000\r\004\000\000\001\"\000\000\000\000\000\000\000\000\000\000\000\000T\000\005n\000\000\017T\028\\\000\000\000\000\028\204\000\000\000\161\014\142\016\248\000\000\000\0005z5\246\016\166\000\000TB\005n\029\192\000\000\000\000\029\226\000\000\000\000\rZ\000\000\001\192\000\000\000\000\000\000\000\000\000\000\000\0006\134\000\000\000\0006\"6\222\016\168\000\000TT\005n\0300\000\000\000\000\030\138\000\000\000\000\014\144\031\\\r\150\000\000\014\154\014\160\000\191\000\161\014\196\t\"\014\198\017\0027x\r\194\000\000\014\204\014\240\b\178\000\000\000\133G\242\000\000\002\246\000\000\014\242\004\230W\142\0014\015\212\002t\000\000@|)\160\000\000\005\252\000\000\000\000\005\252\000\000\000\000\005\252\b\232\000\000\002\142\005\252\017\0067\130\r\216\000\000\005\252\000\000\000\000T\214\000\000\000\000\000\000\005\252\000\000\000\000\r\232\000\000\003\174\t\232\014\002\000\000\014\246H:\014\018\000\000\000\000\000\000\000\000\014\020\000\000\000\000\004d\000\000\005\252U\002\000\000\004\022\005\252W\214\000\000\014P\016h\014\254\017\142\0164\000\000X@\014\178\016v\000\000\000\000\000\000\000T\007\190\000\000\000\000\000\000\000\000\000\000\000\000\nX\014\208\000\000\016\134\000\000\000\000\000\000\000\000\014\228Y \000\000\000\000\000\000\nX\000\000\000\000\000\000\000\000\0158Y\176\000\000\000\000\000\000\000\000\000\000\000\133\004,\000\000\000\000\006z\000\000U(\005n\000\000\005x\000\000\000\000\000\000\000\0008*\000\000\000\000\000\000\000\000\000\000\000\000\0170\006\b\t|\016\004\005\250\015\b\000\000\002,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\012\006\024\015\n\000\000\b\006\017\146\017F\015H\000\000\000\000\017:\006\220\002\192\000\000\000\000\000\000\0150\000\000\0156\019\202\000\000\000\000\003P D\000\000\000\000\000\000\000\000\000\000X\180\000\000\000\000\b\212\007@\000\000\000\000U\184\005n\005nU\202\005n\006\162\000\000\000\000\000\000\005n\000\000\000\000\tf\017T\015\176\000\000\000\000\017H\003\170\000\028\000\000\000\000\000\000\000\000\b\234\017\146\t\244\017Z\015\186\000\000\000\000\017P\003\182\000z\000\000\000\000\000\000\000\000\004,\000\000\016\000\000\000\000\000\000\000\031\154\000\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\031\138\000\000\000\000\000\000\001\004\000w\000\000\000\000\000\000\000\000\000\000\002\006\000w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\024\000\000\000\000\000\000H\160\000\000\005n\000\000\r`\000\000\000\000\000\000\003t\000\000\000\000\000\000\001\142\000\000\000\000\000\000\000\003\000\000\000\133\000\000\006\"\000\000\004,\000\000\004\154\000\000\000\000\000\000>>\006z\000\000\000\000\002\004\000\000\000\000\000\000\000\000\005\002\004r\016\136\000\023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025>\000\000\016\022\000\000\000\000\000\000\000\000\005F\007\"\000\r\002\216\000\000\000\000\016\024\0278\000\000\000\000\000\000\016$X\198\000\000\000\000\000\000\000\000"), (16, "\007\018\000;\002=\002>\001s\000\238\001\252\0007\000\242\000\243\000?\007\248\002>\001s\007\018\003\149\002\000\002\154\007\019\007\"\002\004\007\021\001\027\005Z\000\238\002\159\000\242\000\242\000\243\b\007\007\022\007#\b\b\0007\001\020\007\021\002*\007\168\002\185\000\238\001\027\001\030\000\242\000\243\007\022\0007\000\151\000@\007\018\000\160\002=\002>\001s\001\023\000\238\006\207\000m\000\242\000\243\001\027\007\023\002\005\007\018\006\155\007&\002\154\007\019\007\"\000\238\007\021\006\207\000\242\000\243\002\159\007\023\001\020\006\157\003\149\007\022\007#\007\019\001\027\001\030\007\021\000\131\006\207\002\185\005\026\006\209\001y\000\244\004h\007\022\006\248\007\220\003\149\005]\007\024\001\153\006\207\002\r\002\031\002\191\006\209\006\210\000\245\001\027\007\025\007\023\006\212\001\031\007\024\007&\007\000\002A\000\245\002\193\000\242\006\209\006\210\006\251\007\025\007\023\007\249\006\212\002\193\000\242\006x\006\235\002\016\007\221\007'\006\209\002,\006\210\001\027\000\242\000\151\006\253\006\212\000\156\b\n\003\149\006\228\000\245\007\024\007(\000\\\006\210\007G\002\191\0019\000\245\006\212\007\185\007\025\007\028\006\219\002+\007\024\007\027\007\030\002A\006\127\002\193\000\242\006\254\007\144\002\200\007\025\007\028\002\201\000\157\000\238\007 \007\030\000\242\001\006\002\194\007'\000\151\000`\007\018\000\156\002=\002>\001s\002\215\007 \001\153\002\196\000:\007!\007\026\007(\000q\001s\002-\007\145\002\154\007\019\007\"\000d\007\021\007\028\007\166\007!\002\159\007\027\007\030\004i\002\217\007\022\007#\007\158\005\167\002\200\0009\007\028\002\201\002\185\000\238\007 \007\030\000\242\001\006\002\194\001\173\001s\000=\007\018\007\186\002=\002>\001s\002\215\007 \001\153\002\196\000y\007!\006\162\007\023\001\201\001s\007\145\007&\002\154\007\019\007\174\001\020\007\021\001z\007E\007!\002\159\001\027\001\030\001\237\002\217\007\022\007#\006z\001t\002R\007\187\001v\001w\002\185\006\131\007\194\001\027\004\175\000\151\000\238\007\148\001\249\000\242\001\006\007\024\007\236\002>\001s\007\192\002\191\002\031\001\007\000\136\000\238\007\025\007\023\000\242\000\243\0007\0007\007\216\002A\000\238\002\193\000\242\000\242\001\006\000\151\006\166\000\161\001\249\004J\003\143\003\144\001\196\007\195\001\n\000\139\007'\0074\001\232\002\031\002,\007\162\006\207\000\242\004\186\004\188\004\190\0007\002\000\005\211\007\024\007(\002\004\000\245\001\027\002\191\007\217\001\n\001#\000\242\007\025\007\028\007\196\002\029\003\149\001\141\007\030\002A\005\025\002\193\000\242\002,\007\238\002\200\000\242\006\209\002\201\001|\000\245\007 \000\242\007\197\003\149\002\194\007'\002*\003\162\000\128\004\191\000\242\001\006\006\210\002\215\002\005\001\153\002\196\006\212\007!\000\181\007(\006\216\007\140\001\230\000\245\002-\004M\004R\007\018\004\175\007\028\007)\002\006\007\176\001\020\007\030\007\239\002\217\002\193\000\242\001\027\001\030\002\200\b\007\003\179\002\201\b\b\002\011\007 \007\021\000\242\007\018\002\194\002=\002>\001s\002-\005\030\007\022\007H\005\232\002\215\001\143\001\153\002\196\002\017\007!\001(\002\154\007\019\007\"\001\144\007\021\001\153\001z\007Q\002\159\003\149\004\189\004\188\004\190\007\022\007#\007\193\001)\002\217\005\235\000\245\007\023\002\185\001\027\001/\000\238\000\130\000\191\000\242\000\243\005\215\001:\007\018\002\022\002=\002>\001s\005\237\000\238\007R\000\138\000\242\000\243\005\216\007\023\001n\002\018\005\240\007f\002\154\007\019\007\"\007S\007\021\000\176\000\188\006\207\002\159\007\024\005\238\001\020\002+\007\022\007#\000\196\000\155\001\027\001/\007\025\006\207\002\185\003\241\002\022\005\142\000\242\001\006\000\242\0011\000\154\004m\0012\007\024\007e\0013\0014\002\225\002\191\004\194\b\t\006\209\000\238\007\025\007\023\000\242\000\243\000\245\007+\001\020\002A\000\209\002\193\000\242\006\209\001\027\001/\006\210\000\185\007\027\004\014\004\195\006\212\000\218\002\031\007R\006\213\007'\007\212\007\028\006\210\007\143\0007\000\220\007\030\006\212\006C\007\157\007S\006\223\000\180\007\024\007(\001\020\000\245\005\239\002\191\007 \001\020\001\027\001\030\007\025\007\028\002#\001\027\001/\002,\007\030\002A\000\242\002\193\000\242\001\020\001b\002\200\007!\007\213\002\201\001\027\001/\007 \005\235\001\027\000\238\002\194\007'\000\242\001\006\007\018\000\245\002=\002>\001s\002\215\000\228\001\153\002\196\006\202\007!\005\237\007(\000\245\007\251\007\252\000\238\002\154\007\254\000\242\000\243\007\021\007\028\000\245\005\146\002\159\003\149\007\030\005\215\002\217\007\022\b\000\004i\005\238\002\200\000\233\000\236\002\201\002\185\001e\007 \005\216\002-\000\186\002\194\005\223\000\151\006\207\007\\\001\249\002=\002>\001s\002\215\003t\001\153\002\196\000\190\007!\005\150\007\023\001r\001s\007\146\007\147\002\154\006J\006K\000\238\007\146\007\147\000\242\000\243\002\159\000\245\004u\001s\002\217\005\148\004\242\006\209\001t\002s\002\031\001v\001w\002\185\006[\006T\004\211\000\246\006T\004\211\007\228\006T\004\211\006\210\007\024\005v\006\207\000\195\006\212\002\191\000\245\000\245\006\241\007\018\007\025\002=\002>\001s\b\015\002.\005\148\002A\002,\002\193\000\242\000\242\003\149\000\251\b\007\006\255\002\154\b\b\007\229\003u\007\021\b\003\001#\003\149\002\159\006\209\004\175\005i\002\000\007\022\b\016\0059\002\004\001\027\001\027\003\149\000m\002\185\007=\007(\000\208\006\210\006\251\002\191\002*\000\151\006\212\000\183\001\249\007\028\007\004\000\245\004\191\001{\007\030\002A\007\200\002\193\000\242\007\023\006\253\002\200\001\255\005\206\002\201\001|\000\242\007 \000\242\003\141\001s\002\194\002-\002\005\004\175\006<\004\188\004\190\001U\002\031\002\215\000\245\001\153\002\196\003\151\007!\001S\002\197\006\254\001\232\005Z\001k\0075\000\242\000\212\005D\007\024\003t\005\027\002\000\006\205\002\191\000\227\002\004\002\217\001\027\007\025\003\150\002 \002\200\001(\002,\002\201\002A\000\242\002\193\000\242\000\235\007\018\002\194\002=\002>\001s\006P\004\188\004\190\b\020\001)\002\215\001\143\001\153\002\196\000\250\001\027\001/\002\154\007\019\0071\001\152\007\021\001\153\001z\001g\002\159\002\005\007(\000\245\002\031\007\022\007#\007P\006\218\002\217\007>\000\245\007\028\002\185\001\014\001\232\000\245\007\030\002\027\002\006\007\201\003\149\001\153\002+\002\200\002\000\004j\002\201\001\017\002\004\007 \001\027\002-\002J\002\194\007\023\002,\006\251\006\238\000\242\007\224\001r\001s\002\215\0011\001\153\002\196\0012\007!\001\"\0013\0014\004\175\005m\004\199\006\253\002=\002>\001s\001\027\005Z\001t\001\132\000\242\001v\001w\000\151\002\217\001\236\001\249\002\005\001\232\007\024\001C\007\225\005Z\004\202\002\191\000\242\004f\001>\002\000\007\025\006\254\0045\002\004\004n\001\027\002\006\002A\001\131\002\193\000\242\004\217\007\018\001B\002=\002>\001s\001O\002-\006X\004\188\004\190\006C\001\133\007'\001\134\002]\b\007\004{\002\154\b\b\007d\001d\007\021\007T\007U\001\191\002\159\000\151\007(\006-\001\249\007\022\b\011\002\005\003\149\001j\007V\007W\007\028\002\185\007N\004\175\001\153\007\030\004\171\004\211\001\218\001\141\007X\004\211\002\200\002\006\004\158\002\201\003\149\007Z\007 \001\153\006\214\001|\002\194\007\023\000\242\002@\007\018\000\245\002=\002>\001s\002\215\002\135\001\153\002\196\001\220\007!\004r\001\189\002\193\000\242\001\006\004\162\002\154\007\019\005,\003\149\007\021\002=\002>\001s\002\159\007\130\004\188\004\190\002\217\007\022\007-\001\229\001\232\007\024\001\130\002\024\0007\002\185\002\191\003\149\004\161\005\130\002\000\007\025\004\232\005|\002\004\004i\001\027\000\245\002A\001\027\002\193\000\242\006J\006K\001\140\003\149\001\143\007\023\007a\005\136\001\149\b\014\007T\007U\001\020\001\144\004\161\001\153\001z\004\161\001\027\001\030\002\194\006S\000\245\007V\007W\006T\004\211\005\220\007(\002\195\000\242\001\153\002\196\002\005\001\020\007X\004\211\005\155\007\028\0028\001\027\001\030\007\024\007\030\002;\000\245\000\151\002\191\0067\001\249\002\200\002\006\007\025\002\201\003\149\006\031\007 \005'\001\255\002A\002\194\002\193\000\242\002I\001\148\001#\001\195\002@\001$\002\215\003\149\001\153\002\196\001\207\007!\005-\0070\002X\001\255\002A\002[\002\193\000\242\006 \006a\006!\001\232\001\212\007z\002\023\002a\007(\001&\002\217\0051\001#\002\000\005\215\001$\002~\002\004\007\028\001\027\003\149\001r\001s\007\030\000\245\001\255\007{\005\216\001\020\000\245\002\200\005\217\006\"\002\201\001\027\001/\007 \007\154\003\149\001&\002\194\001t\002s\005\188\001v\001w\004\219\003\149\000\245\002\215\002\131\001\153\002\196\002\138\007!\001,\004\212\006C\002\005\005\224\002\194\002\143\000\245\001#\004\161\000\245\001$\004\142\006#\002\195\001(\001\153\002\196\002\217\001\217\000\245\002\006\0007\006$\006%\002\031\006&\001\020\005?\000\245\001,\001\223\001)\001\027\001\030\001&\002\151\005\241\001\027\001/\005H\001s\005W\004\211\001#\001(\007\135\001$\002\157\006b\002\021\003\149\0056\006C\004\144\005\249\001\242\002,\006\197\001>\000\242\000\242\001)\000\245\0052\001{\000\245\001\244\001\027\001/\002\189\001&\002\205\006(\000\245\005\218\001\020\001|\006*\0064\000\242\001,\001\027\001/\001;\006\221\003\149\001\020\000\242\006C\005\215\006^\0011\001\027\001/\0012\001(\006F\0013\0014\006c\005\159\004\211\005\216\000\245\004\161\002\003\005\222\005\218\006_\006J\006K\007\005\001)\001;\001#\000\245\001,\001$\001\027\001/\002-\0011\0057\0015\0012\005\218\001?\0013\0014\006L\006\\\001(\007\137\002\031\006T\004\211\002\020\000\245\002\031\000\245\001\143\001&\006@\004\211\004\135\002\211\003\149\001#\001)\001\152\001$\001\153\001z\0015\001\027\001/\001?\005R\003\149\006C\006J\006K\004\152\007\007\001;\002,\002\031\004\157\000\242\001#\002,\004\131\0011\000\242\001&\0012\002\220\002\031\0013\0014\006L\006\\\0027\002\231\001\020\006T\004\211\001,\002:\006\242\001\027\001\030\006C\002\237\003\149\004\236\006J\006K\002,\002H\001;\000\242\001(\007\151\0015\006\189\005\029\001?\0011\002,\002\031\0012\000\242\000\245\0013\0014\006L\006\\\005_\001)\001,\006T\004\211\002\243\002W\001\027\001/\002\249\002\255\002-\005b\003\149\007L\004\211\002-\001(\003\149\002Z\002`\005C\0015\003\005\002,\001?\000\245\000\242\002l\005\215\003\011\003\017\001#\000\245\001)\001$\003\023\003\149\001F\001(\001\027\001/\005\216\000\245\002-\003\029\005\248\003#\005j\006J\006K\002i\002o\001;\001#\002-\001)\001$\001G\001&\001F\0011\001\027\001/\0012\001_\003)\0013\0014\006L\006\\\003/\0035\000\245\006T\004\211\002z\000\245\000\245\002}\001G\001&\006J\006K\006\214\005n\001;\001]\002-\002\130\005}\000\245\003;\0015\0011\003A\001?\0012\000\245\000\245\0013\0014\007\133\007\134\000\245\001,\002\137\006T\004\211\005\143\002\142\003G\002\150\000\245\003M\000\245\0011\003S\003Y\0012\001(\003\149\0013\0014\001L\001#\0015\001,\001$\001?\002\156\001F\002\171\003]\000\245\003\149\002\188\001)\003\149\000\245\000\245\003\190\001(\001\027\001/\003\152\001L\001#\001D\002\214\001$\001G\001&\001F\002\204\002=\002>\001s\001H\001)\000\245\001\232\002\210\000\245\001\233\001\027\001/\002\219\002\230\002\236\002\154\002\000\003\200\001G\001&\002\004\002\242\001\027\002\159\000\245\001[\003\149\000\245\002\248\004T\000\245\000\245\002\254\003\210\001;\003\004\002\185\001\232\005\147\003\220\001\254\003\n\0011\001,\003\016\0012\000\245\002\000\0013\0014\001V\002\004\005\199\001\027\000\245\005\231\001;\003\229\001(\003\022\003\238\002\005\001L\001#\0011\001,\001$\0012\003\028\001W\0013\0014\001V\003\"\0015\001)\003\149\001?\003\249\002\006\001(\001\027\001/\003(\001L\000\245\004\002\003.\004\011\001Y\001&\004\018\002\005\000m\001#\005\209\0015\001)\005\236\001?\002\191\000\245\0034\001\027\001/\003:\001\232\000\245\003@\002\b\002\006\003F\002A\004:\002\193\000\242\002\000\003L\003\149\003\149\002\004\003\149\001\027\001\232\004\191\000\245\002\n\001;\000\245\004?\004F\004\197\003\149\002\000\004\128\0011\001,\002\004\0012\001\027\004\143\0013\0014\001V\002\197\004\149\000\245\004\165\006\020\001;\004\182\001(\003R\004\184\000\245\001L\000\245\0011\004\208\000\245\0012\002\005\004\213\0013\0014\001V\002\200\0015\001)\002\201\001?\002=\002>\001s\001\027\001/\002\194\004\225\002\005\002\006\004\235\000\245\001(\004\252\003\149\002\215\002\154\001\153\002\196\0015\006\028\006)\001?\0061\002\159\003X\002\006\000\245\000\245\001)\007\208\003c\000\245\003j\006H\001\027\001/\002\185\000\245\002\217\002=\002>\001s\000\245\005\028\000\245\001#\003\142\000\245\001$\001;\000\245\001W\003\189\005\"\002\154\000\245\003\149\0011\005)\000\245\0012\005/\002\159\0013\0014\006\007\003\199\005B\007A\003\209\003\219\001Y\001&\003\228\000\245\002\185\007\210\000\245\003\237\003\248\000\245\002=\002>\001s\004\001\006y\003\149\001\232\0011\0015\002'\0012\001?\005G\0013\0014\002\154\002\000\004\203\005V\002\191\002\004\005^\001\027\002\159\005a\004\n\005h\003\149\004\017\004\247\000\245\002A\004&\002\193\000\242\005l\002\185\001,\003\149\004\206\000\245\005r\002=\002>\001s\000\245\003\149\006\156\000\245\0049\001\232\005x\001(\002M\000\245\004>\001L\002\154\002\191\003\149\002\000\002\005\005\132\002\197\002\004\002\159\001\027\003\149\003\149\001)\002A\004\218\002\193\000\242\004E\001\027\001/\006\182\002\185\002\006\000\245\005\153\005\158\005\163\005\173\002\200\000\245\005\179\002\201\000\245\001#\005\190\000\245\001$\000\245\002\194\001F\005\201\003\149\006\193\002\191\004b\002\197\000\245\002\215\002\005\001\153\002\196\004k\000\245\006\227\005\219\002A\005\205\002\193\000\242\001K\001&\006\239\000\245\004\127\001;\005\226\002\006\002\200\004\133\004\148\002\201\002\217\0011\000\245\006\243\0012\004\150\002\194\0013\0014\001V\005\243\006\247\006\252\004\164\002\191\002\215\002\197\001\153\002\196\003\149\004\207\000\245\000\245\000\245\000\245\004\215\002A\000\245\002\193\000\242\004\224\000\245\004\234\0015\003\149\001,\001?\000\245\002\200\002\217\004\245\002\201\007\b\004\251\003\149\005\253\006\022\006,\002\194\0066\001(\000\245\006B\000\245\001L\005(\005!\002\215\002\197\001\153\002\196\006V\000\245\005#\002=\002>\001s\001)\006f\002=\002>\001s\006l\001\027\001/\006p\006\140\006\180\000\245\002\154\002\200\002\217\006\240\002\201\002\154\006\185\003\149\002\159\001r\001s\002\194\007\015\002\159\004\141\003\149\002=\002>\001s\004x\002\215\002\185\001\153\002\196\006\224\006\190\002\185\007\029\006\220\001t\001\132\002\154\001v\001w\000\245\000\245\000\245\007$\000\245\002\159\001;\000\245\005&\0055\002\217\004I\006\196\006\204\0011\006\245\000\245\0012\002\185\007\n\0013\0014\001V\000\245\007O\007[\005+\000\245\0054\0050\000\245\000\245\000\245\003\149\0053\005A\005F\000\245\003\149\001\133\000\245\001\134\001\157\005Q\007i\007.\0015\007k\005P\001?\005U\002\191\005`\007`\005k\005g\002\191\005w\000\245\000\245\005q\001#\000\245\002A\007t\002\193\000\242\000m\002A\005s\002\193\000\242\005\139\003\149\001\141\002=\002>\001s\005\127\005\138\000\245\000\245\002\191\000\245\003\149\003\149\001|\000\245\001&\000\242\002\154\003\149\000\245\000\245\002A\002\197\002\193\000\242\002\159\005\133\002\197\002=\002>\001s\0046\007\139\002=\002>\001s\005\137\007\153\002\185\000\245\005\152\005\157\000\245\002\154\002\200\005\252\005\162\002\201\002\154\002\200\005\165\002\159\002\201\002\197\002\194\005\169\002\159\004.\005\177\002\194\005\184\005\195\005\251\002\215\002\185\001\153\002\196\005\244\002\215\002\185\001\153\002\196\007\165\005\245\005\250\002\200\001(\001\143\002\201\005\254\005\255\006\030\006\023\b\001\b\012\002\194\001\144\002\217\001\153\001z\b\017\006\024\002\217\001)\002\215\006\029\001\153\002\196\0063\001\027\001/\006/\002\191\0060\0062\006]\006A\006E\006G\006I\006U\006e\006g\006h\002A\006m\002\193\000\242\002\217\006q\006u\006\135\006\142\006\146\006\170\006\191\006\215\006\225\002\191\002=\002>\001s\007\017\002\191\002=\002>\001s\007\011\007\012\007\016\002A\007\031\002\193\000\242\002\154\002A\002\197\002\193\000\242\002\154\007J\007^\002\159\0011\007_\007c\0012\002\159\004#\0013\0014\007\138\007\142\002\182\007\152\002\185\007\156\007\243\002\200\000\000\002\185\002\201\002\197\000\000\000\000\000\000\000\000\002\197\002\194\000\000\000\000\000\000\001#\000\000\000\000\0015\000\000\002\215\000\000\001\153\002\196\000\000\000\000\000\000\002\200\000\000\000\000\002\201\000\000\003w\000\000\000\000\002\201\004-\002\194\000\000\000\000\000\000\000\000\002\194\000\000\002\217\000\000\002\215\000\000\001\153\002\196\000\000\002\215\000\000\001\153\002\196\000\000\001#\000\000\000\000\001-\000\000\000\000\002\191\002=\002>\001s\000\000\002\191\000\000\000\000\002\217\000\000\000\000\000\000\002A\002\217\002\193\000\242\002\154\002A\000\000\002\193\000\242\001&\000\000\000\000\002\159\000\000\000\000\002=\002>\001s\002\199\000\000\002=\002>\001s\000\000\000\000\002\185\000\000\000\000\000\000\001(\002\154\000\000\002\197\000\000\000\000\002\154\000\000\002\197\002\159\000\000\000\000\000\000\000\000\002\159\002\227\000\000\001)\000\000\000\000\002\226\000\000\002\185\001\027\001/\002\200\007r\002\185\002\201\000\000\002\200\000\000\000\000\002\201\000\000\002\194\000\000\000\000\000\000\000\000\002\194\001(\000\000\000\000\002\215\000\000\001\153\002\196\000\000\002\215\000\000\001\153\002\196\000\000\000\000\000\000\000\000\000\000\001)\000\000\002\191\000\000\000\000\000\000\001\027\001/\000\000\000\000\002\217\000\000\000\000\000\000\002A\002\217\002\193\000\242\000\000\0011\000\000\000\000\0012\000\000\000\000\0013\0014\000\000\002\191\000\000\000\000\000\000\000\000\002\191\000\000\001r\001s\000\000\000\000\000\000\002A\000\000\002\193\000\242\003o\002A\002\197\002\193\000\242\000\000\000\000\007n\003r\000\000\000\000\001t\002s\000\000\001v\001w\0011\000\000\000\000\0012\000\000\000\000\0013\0014\002\200\000\000\000\000\002\201\002\197\000\000\000\000\000\000\000\000\002\197\002\194\000\000\000\000\000\000\000\000\002t\000\000\000\000\000\000\002\215\000\000\001\153\002\196\000\000\0015\000\000\002\200\000\000\000\000\002\201\000\000\002\200\000\000\000\000\002\201\000\000\002\194\000\000\001#\000\000\000\000\002\194\000\000\002\217\000\000\002\215\000\000\001\153\002\196\000\000\002\215\000\000\001\153\002\196\000\000\000\000\002=\002>\001s\000\000\002=\002>\001s\000\000\000\000\000\000\001{\001r\001s\002\217\000\000\002\154\000\000\000\000\002\217\002\154\000\000\000\000\001|\002\159\000\000\000\242\000\000\002\159\004\222\003`\000\000\001t\002s\003g\001v\001w\002\185\000\000\000\000\000\000\002\185\000\000\000\000\000\000\000\000\000\000\002=\002>\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002u\000\000\002t\000\000\002\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\001(\000\000\000\000\000\000\000\000\003n\000\000\003s\003y\000\000\000\000\000\000\002\185\000\000\000\000\000\000\001\143\001)\000\000\000\000\000\000\000\000\000\000\001\027\001/\001\152\007m\001\153\001z\000\000\002\191\000\000\000\000\000\000\002\191\002=\002>\001s\000\000\000\000\001{\000\000\002A\000\000\002\193\000\242\002A\000\000\002\193\000\242\002\154\000\000\001|\000\000\000\000\000\242\000\000\000\000\002\159\001\232\000\000\000\000\004\155\000\000\003q\000\000\002=\002>\001s\002\000\000\000\002\185\000\000\002\004\002\197\001\027\002\191\0011\002\197\000\000\0012\002\154\000\000\0013\0014\000\000\000\000\002u\002A\002\159\002\193\000\242\000\000\000\000\000\000\000\000\002\200\000\000\000\000\002\201\002\200\000\000\002\185\002\201\000\000\000\000\002\194\003s\003y\007n\002\194\000\000\000\000\000\000\002\005\002\215\001\143\001\153\002\196\002\215\002\197\001\153\002\196\000\000\000\000\001\152\000\000\001\153\001z\000\000\000\000\000\000\002\006\000\000\000\000\002\191\000\000\000\000\001#\002\217\000\000\006\004\002\200\002\217\000\000\002\201\000\000\002A\000\000\002\193\000\242\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\001\153\002\196\001&\002\191\002=\002>\001s\000\000\002=\002>\001s\000\000\000\000\000\000\000\000\002A\002\197\002\193\000\242\002\154\000\000\000\000\002\217\002\154\000\000\000\000\000\000\002\159\000\000\001\232\000\000\002\159\004\240\003~\000\000\000\000\000\000\003\129\002\200\002\000\002\185\002\201\000\000\002\004\002\185\001\027\000\000\002\197\002\194\000\000\000\000\000\000\000\000\002=\002>\001s\000\000\002\215\000\000\001\153\002\196\000\000\000\000\001(\000\000\000\000\000\000\000\000\002\154\003w\000\000\001#\002\201\003x\001$\000\000\002\159\000\000\000\000\002\194\001)\002\217\003\155\000\000\002\005\000\000\001\027\001/\002\215\002\185\001\153\002\196\000\000\000\000\000\000\000\000\000\000\000\000\001&\000\000\007w\000\000\002\006\000\000\002\191\000\000\000\000\000\000\002\191\002=\002>\001s\002\217\000\000\000\000\000\000\002A\000\000\002\193\000\242\002A\000\000\002\193\000\242\002\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\000\000\000\000\002=\002>\001s\003\159\000\000\0011\000\000\000\000\0012\001,\002\185\0013\0014\002\197\000\000\002\154\000\000\002\197\002\191\000\000\000\000\000\000\000\000\002\159\001(\000\000\000\000\000\000\000\000\003\215\002A\000\000\002\193\000\242\000\000\002\200\002\185\0015\002\201\002\200\000\000\001)\002\201\000\000\000\000\002\194\000\000\001\027\001/\002\194\000\000\000\000\000\000\000\000\002\215\000\000\001\153\002\196\002\215\000\000\001\153\002\196\002\197\000\000\000\000\001\232\000\000\000\000\005\002\000\000\000\000\000\000\000\000\000\000\002\191\002\000\000\000\000\000\002\217\002\004\000\000\001\027\002\217\000\000\002\200\000\000\002A\002\201\002\193\000\242\000\000\000\000\000\000\001;\002\194\000\000\002=\002>\001s\000\000\002\191\0011\000\000\002\215\0012\001\153\002\196\0013\0014\007~\000\000\002\154\002A\000\000\002\193\000\242\000\000\000\000\002\197\002\159\002\005\000\000\002=\002>\001s\003\224\000\000\002\217\000\000\000\000\000\000\000\000\002\185\0015\000\000\000\000\001?\002\154\002\006\001\232\002\200\000\000\005\006\002\201\002\197\002\159\000\000\000\000\000\000\002\000\002\194\003\233\000\000\002\004\000\000\001\027\000\000\000\000\002\185\002\215\000\000\001\153\002\196\000\000\000\000\000\000\002\200\000\000\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\002=\002>\001s\000\000\000\000\002\217\000\000\002\215\000\000\001\153\002\196\000\000\000\000\000\000\000\000\002\154\002\005\000\000\002\191\000\000\000\000\000\000\000\000\002\159\000\000\000\000\000\000\000\000\000\000\004'\002A\002\217\002\193\000\242\002\006\000\000\002\185\002=\002>\001s\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\154\000\000\000\000\000\000\002A\000\000\002\193\000\242\002\159\000\000\002\197\002=\002>\001s\004)\000\000\002=\002>\001s\000\000\000\000\002\185\000\000\000\000\000\000\000\000\002\154\000\000\000\000\000\000\000\000\002\154\002\200\000\000\002\159\002\201\002\197\000\000\000\000\002\159\0040\000\000\002\194\000\000\000\000\0043\000\000\002\185\002\191\000\000\000\000\002\215\002\185\001\153\002\196\000\000\000\000\000\000\002\200\000\000\002A\002\201\002\193\000\242\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\007\018\000\000\000\000\002\217\000\000\002\215\000\000\001\153\002\196\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\007\254\000\000\002\197\007\021\000\000\000\000\000\000\002A\000\000\002\193\000\242\002\217\007\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002\200\000\000\002\191\002\201\000\000\000\000\000\000\000\000\000\000\002A\002\194\002\193\000\242\000\000\002A\002\197\002\193\000\242\007\023\002\215\000\000\001\153\002\196\000\000\000\000\000\000\000\000\000\000\001\232\000\000\000\000\005\t\000\000\000\000\000\000\000\000\000\000\002\200\002\000\000\000\002\201\002\197\002\004\002\217\001\027\000\000\002\197\002\194\000\000\000\000\000\000\000\000\002=\002>\001s\007\024\002\215\000\000\001\153\002\196\000\000\000\000\000\000\002\200\000\000\007\025\002\201\002\154\002\200\000\000\000\000\002\201\000\000\002\194\000\000\002\159\000\000\000\000\002\194\000\000\002\217\004L\002\215\002\005\001\153\002\196\007\255\002\215\002\185\001\153\002\196\000\000\000\000\000\000\002=\002>\001s\000\000\002=\002>\001s\002\006\001\232\000\000\007\027\005\016\002\217\000\000\000\000\002\154\000\000\002\217\002\000\002\154\007\028\000\000\002\004\002\159\001\027\007\030\000\000\002\159\000\000\004O\000\000\000\000\000\000\004\146\000\000\000\000\002\185\000\000\007 \000\000\002\185\000\000\002=\002>\001s\000\000\000\000\000\000\000\000\000\000\001\232\000\000\000\000\005\020\000\000\000\000\007!\002\154\002\191\000\000\002\000\000\000\000\000\002\005\002\004\002\159\001\027\000\000\000\000\000\000\002A\004\160\002\193\000\242\000\000\000\000\000\000\000\000\002\185\000\000\000\000\002\006\000\000\000\000\002=\002>\001s\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\154\002\191\000\000\002\197\000\000\002\191\002\005\000\000\002\159\000\000\000\000\000\000\000\000\002A\004\210\002\193\000\242\002A\007\018\002\193\000\242\002\185\000\000\000\000\002\006\002\200\000\000\000\000\002\201\000\000\000\000\000\000\000\000\b\007\000\000\002\194\b\b\000\000\000\000\007\021\000\000\000\000\000\000\002\191\002\215\002\197\001\153\002\196\007\022\002\197\000\000\000\000\000\000\000\000\000\000\002A\000\000\002\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\200\002\217\000\000\002\201\002\200\000\000\000\000\002\201\000\000\000\000\002\194\007\023\000\000\000\000\002\194\000\000\000\000\000\000\002\191\002\215\002\197\001\153\002\196\002\215\000\000\001\153\002\196\000\000\000\000\000\000\002A\000\000\002\193\000\242\000\000\000\000\002=\002>\001s\000\000\000\000\000\000\002\200\002\217\000\000\002\201\000\000\002\217\007\024\000\000\000\000\002\154\002\194\002=\002>\001s\000\000\000\000\007\025\002\159\000\000\002\215\002\197\001\153\002\196\005=\000\000\000\000\002\154\000\000\000\000\000\000\002\185\002=\002>\001s\002\159\000\000\b\r\000\000\000\000\000\000\006t\000\000\002\200\002\217\000\000\002\201\002\154\002\185\000\000\000\000\000\000\000\000\002\194\000\000\002\159\007\027\000\000\002=\002>\001s\006w\002\215\000\000\001\153\002\196\007\028\000\000\002\185\000\000\000\000\007\030\000\000\002\154\000\000\001\232\000\000\000\000\005\023\000\000\000\000\002\159\000\000\000\000\007 \002\000\002\217\006\134\000\000\002\004\001\232\001\027\000\000\005%\002\185\002\191\000\000\000\000\000\000\000\000\002\000\000\000\007!\000\000\002\004\000\000\001\027\002A\000\000\002\193\000\242\000\000\002\191\000\000\002=\002>\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\000\002\193\000\242\000\000\002\154\002\005\000\000\002\191\000\000\000\000\000\000\000\000\002\159\000\000\002\197\000\000\000\000\000\000\006\137\002A\002\005\002\193\000\242\002\006\000\000\002\185\000\000\000\000\000\000\000\000\000\000\002\197\000\000\002\191\001#\000\000\002\200\001$\002\006\002\201\000\000\000\000\000\000\000\000\000\000\002A\002\194\002\193\000\242\000\000\000\000\002\197\000\000\002\200\000\000\002\215\002\201\001\153\002\196\000\000\000\000\001&\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005J\002\215\002\200\001\153\002\196\002\201\002\197\000\000\002\217\000\000\000\000\000\000\002\194\000\000\000\000\000\000\007\164\000\000\002\191\000\000\000\000\002\215\000\000\001\153\002\196\002\217\000\000\000\000\002\200\000\000\002A\002\201\002\193\000\242\000\000\000\000\001,\000\000\002\194\000\000\002=\002>\001s\000\000\000\000\002\217\000\000\002\215\000\000\001\153\002\196\001(\000\000\000\000\000\000\002\154\000\000\002=\002>\001s\000\000\000\000\002\197\002\159\000\000\000\000\000\000\000\000\001)\006\150\000\000\002\217\002\154\000\000\001\027\001/\002\185\000\000\000\000\000\000\002\159\000\000\000\000\000\000\002\200\000\000\006\153\002\201\000\000\000\000\000\000\000\000\001#\002\185\002\194\000\000\002=\002>\001s\000\000\000\000\000\000\000\000\002\215\000\000\001\153\002\196\000\000\000\000\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\001;\000\000\000\000\000\000\000\000\006\174\000\000\002\217\0011\000\000\000\000\0012\002\185\000\000\0013\0014\005S\000\000\000\000\000\000\002\191\002=\002>\001s\000\000\000\000\000\000\001#\000\000\000\000\001$\000\000\002A\000\000\002\193\000\242\002\154\002\191\000\000\000\000\0015\000\000\000\000\001?\002\159\000\000\000\000\000\000\000\000\002A\006\177\002\193\000\242\000\000\001&\000\000\000\000\002\185\000\000\005\209\001(\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\001)\000\000\000\000\000\000\002\197\000\000\001\027\001/\000\000\002\200\000\000\002A\002\201\002\193\000\242\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\001,\000\000\000\000\002\200\000\000\002\215\002\201\001\153\002\196\000\000\000\000\000\000\000\000\002\194\000\000\001(\000\000\000\000\000\000\000\000\002\197\002\191\002\215\000\000\001\153\002\196\002=\002>\001s\002\217\000\000\000\000\001)\002A\000\000\002\193\000\242\0011\001\027\001/\0012\002\154\002\200\0013\0014\002\201\002\217\006\031\000\000\002\159\000\000\000\000\002\194\000\000\000\000\006\181\000\000\002=\002>\001s\000\000\002\215\002\185\001\153\002\196\002\197\000\000\000\000\000\000\0017\000\000\000\000\002\154\000\000\000\000\006 \007\178\006!\000\000\000\000\002\159\000\000\000\000\000\000\001;\002\217\007\169\002\200\000\000\000\000\002\201\000\000\0011\002\185\000\000\0012\000\000\002\194\0013\0014\005\214\000\000\000\000\000\000\000\000\000\000\002\215\006\"\001\153\002\196\002=\002>\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0015\002\154\002\191\001?\000\000\000\000\002\217\000\000\000\000\002\159\000\000\000\000\000\000\000\000\002A\007\171\002\193\000\242\000\000\006#\000\000\000\000\002\185\000\000\000\000\000\000\001#\000\000\000\000\006$\006%\000\000\006&\002\191\002=\002>\001s\000\000\000\000\002=\002>\001s\000\000\000\000\000\000\002A\002\197\002\193\000\242\002\154\001\232\000\000\000\000\005u\002\154\006b\000\000\002\159\000\000\000\000\002\000\000\000\002\159\000\000\002\004\000\000\001\027\004\229\002\200\000\000\002\185\002\201\004\138\000\000\000\000\002\185\000\000\002\197\002\194\006(\007\180\000\000\000\000\000\000\006*\0064\002\191\002\215\000\000\001\153\002\196\000\000\000\000\000\000\000\000\000\000\000\000\006^\002A\002\200\002\193\000\242\002\201\001\232\000\000\002\005\005\129\000\000\000\000\002\194\000\000\002\217\000\000\002\000\001(\006_\000\000\002\004\002\215\001\027\001\153\002\196\000\000\002\006\000\000\000\000\000\000\000\000\000\000\000\000\002\197\001)\000\000\000\000\002\191\000\000\000\000\001\027\001/\002\191\007p\000\000\002\217\000\000\000\000\000\000\002A\001\232\002\193\000\242\005\135\002A\002\200\002\193\000\242\002\201\000\000\002\000\002\005\000\000\000\000\002\004\002\194\001\027\001r\001s\000\000\000\000\000\000\001r\001s\002\215\000\000\001\153\002\196\000\000\002\006\000\000\002\197\000\000\000\000\000\000\000\000\002\197\001t\001\132\000\000\001v\001w\001t\001\132\0011\001v\001w\0012\002\217\000\000\0013\0014\000\000\000\000\000\000\002\005\003\168\000\000\000\000\000\000\002\127\003\168\000\000\002\194\000\000\002\132\000\000\001#\002\194\000\000\001$\000\000\002\215\002\006\001\153\002\196\007n\002\215\000\000\001\153\002\196\001\133\000\000\001\134\002]\000\000\001\133\000\000\001\134\002]\000\000\000\000\000\000\000\000\001&\001\232\002\217\000\000\005\145\001r\001s\002\217\002=\002>\001s\002\000\000\000\000\000\000\000\002\004\000\000\001\027\000\000\000\000\000\000\000\000\001\141\002\154\000\000\001t\001\132\001\141\001v\001w\000\000\002\159\000\000\000\000\001|\000\000\000\000\000\242\000\000\001|\000\000\004\027\000\242\000\000\002\185\002\135\001,\000\000\002\152\000\000\002\135\000\000\000\000\002=\002>\001s\002\005\000\000\000\000\000\000\000\000\001(\000\000\000\000\000\000\000\000\000\000\000\000\002\154\001\133\000\000\001\134\002]\000\000\002\006\000\000\002\159\000\000\001)\000\000\000\000\000\000\000\000\000\000\001\027\001/\004\026\000\000\000\000\002\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\143\000\000\000\000\000\000\000\000\001\143\001\141\001r\001s\001\144\002\191\001\153\001z\000\000\001\144\000\000\001\153\001z\001|\000\000\000\000\000\242\002A\000\000\002\193\000\242\000\000\001t\001\132\002\135\001v\001w\001;\000\000\001#\000\000\000\000\001r\001s\000\000\0011\000\000\000\000\0012\000\000\000\000\0013\0014\005\227\000\000\002\158\005\230\000\000\000\000\002\197\002\191\000\000\001t\001\132\000\000\001v\001w\000\000\000\000\000\000\000\000\000\000\002A\000\000\002\193\000\242\001\133\0015\001\134\002]\001?\000\000\000\000\000\000\003\168\002\190\000\000\001\143\000\000\000\000\000\000\002\194\000\000\000\000\001r\001s\001\144\000\000\001\153\001z\002\215\000\000\001\153\002\196\002\197\000\000\001\133\000\000\001\134\002]\000\000\001\141\000\000\000\000\001t\001\132\000\000\001v\001w\001r\001s\000\000\000\000\001|\002\217\000\000\000\242\001(\000\000\003\168\000\000\000\000\000\000\000\000\002\135\000\000\002\194\002\206\000\000\001t\001\132\001\141\001v\001w\001)\002\215\000\000\001\153\002\196\000\000\001\027\001/\000\000\001|\001r\001s\000\242\000\000\001\133\000\000\001\134\002]\002\212\000\000\002\135\000\000\000\000\000\000\000\000\002\217\000\000\001r\001s\000\000\001t\001u\000\000\001v\001w\000\000\000\000\000\000\000\000\001\133\000\000\001\134\002]\001\143\000\000\000\000\000\000\001t\001\132\001\141\001v\001w\001\144\000\000\001\153\001z\001r\001s\000\000\000\000\0011\001|\000\000\0012\000\242\000\000\0013\0014\000\000\000\000\002\221\000\000\002\135\001\143\001\141\000\000\001t\001\132\000\000\001v\001w\000\000\001\144\000\000\001\153\001z\001|\001r\001s\000\242\000\000\001\133\002y\001\134\002]\000\000\000\000\002\135\000\000\002\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001t\001\132\001{\001v\001w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\133\001|\001\134\002]\000\242\001\143\001\141\000\000\000\000\000\000\002\238\000\000\001\232\000\000\001\144\005\154\001\153\001z\001|\000\000\000\000\000\242\002\000\000\000\000\000\000\000\002\004\000\000\001\027\002\135\001\143\001\133\000\000\001\134\002]\001\141\001r\001s\000\000\001\144\000\000\001\153\001z\000\000\000\000\000\000\000\000\001|\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\001t\001\132\002\135\001v\001w\000\000\000\000\001r\001s\001\143\001\141\002\005\000\000\000\000\000\000\000\000\000\000\000\000\001\152\000\000\001\153\001z\001|\002\244\000\000\000\242\001\143\001t\001\132\002\006\001v\001w\000\000\002\135\000\000\001\144\000\000\001\153\001z\000\000\000\000\000\000\000\000\000\000\001\133\000\000\001\134\002]\000\000\000\000\002\250\000\000\000\000\000\000\000\000\001\143\000\000\000\000\000\000\000\000\000\000\001r\001s\000\000\001\144\000\000\001\153\001z\000\000\000\000\000\000\001\133\000\000\001\134\002]\000\000\000\000\000\000\000\000\001\141\000\000\001t\001\132\000\000\001v\001w\001\143\001r\001s\000\000\000\000\001|\000\000\000\000\000\242\001\144\000\000\001\153\001z\000\000\000\000\000\000\002\135\000\000\003\000\000\000\001\141\001t\001\132\000\000\001v\001w\000\000\001r\001s\000\000\000\000\000\000\001|\000\000\000\000\000\242\000\000\000\000\000\000\001\133\000\000\001\134\002]\002\135\003\006\000\000\000\000\001t\001\132\000\000\001v\001w\001r\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\133\000\000\001\134\002]\001\143\003\012\000\000\001t\001\132\001\141\001v\001w\000\000\001\144\000\000\001\153\001z\000\000\000\000\000\000\000\000\001|\000\000\000\000\000\242\000\000\001\133\000\000\001\134\002]\003\018\001\143\002\135\000\000\000\000\001\141\001r\001s\000\000\000\000\001\144\000\000\001\153\001z\000\000\000\000\000\000\001|\000\000\000\000\000\242\001\133\000\000\001\134\002]\000\000\001t\001\132\002\135\001v\001w\001\141\000\000\000\000\000\000\000\000\000\000\001r\001s\000\000\000\000\000\000\000\000\001|\000\000\000\000\000\242\000\000\000\000\003\024\000\000\000\000\000\000\000\000\002\135\001\143\001\141\001t\001\132\000\000\001v\001w\000\000\000\000\001\144\000\000\001\153\001z\001|\000\000\001\133\000\242\001\134\002]\000\000\000\000\000\000\000\000\000\000\002\135\003\030\001\143\000\000\000\000\000\000\000\000\000\000\000\000\001r\001s\001\144\000\000\001\153\001z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\133\000\000\001\134\002]\001\141\000\000\001\143\001t\001\132\000\000\001v\001w\000\000\000\000\000\000\001\144\001|\001\153\001z\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\135\000\000\000\000\003$\001\143\000\000\000\000\000\000\001\141\001r\001s\000\000\000\000\001\144\000\000\001\153\001z\000\000\000\000\000\000\001|\000\000\000\000\000\242\001\133\000\000\001\134\002]\000\000\001t\001\132\002\135\001v\001w\001r\001s\000\000\000\000\000\000\000\000\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*\001\143\001t\001\132\000\000\001v\001w\001\141\000\000\000\000\001\144\000\000\001\153\001z\000\000\000\000\000\000\000\000\000\000\001|\000\000\001\133\000\242\001\134\002]\0030\000\000\000\000\000\000\000\000\002\135\000\000\001\143\000\000\001r\001s\000\000\000\000\000\000\001r\001s\001\144\000\000\001\153\001z\000\000\001\133\000\000\001\134\002]\000\000\000\000\000\000\000\000\001t\001\132\001\141\001v\001w\001t\001\132\000\000\001v\001w\001r\001s\000\000\000\000\001|\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\0036\000\000\002\135\000\000\001\141\003<\001\143\001t\001\132\000\000\001v\001w\000\000\000\000\000\000\001\144\001|\001\153\001z\000\242\000\000\001\133\000\000\001\134\002]\000\000\001\133\002\135\001\134\002]\003B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001r\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\133\000\000\001\134\002]\001\143\001\141\000\000\000\000\001t\001\132\001\141\001v\001w\001\144\000\000\001\153\001z\001|\000\000\000\000\000\242\000\000\001|\000\000\000\000\000\242\000\000\000\000\002\135\001\143\000\000\003H\000\000\002\135\000\000\001\141\000\000\000\000\001\144\000\000\001\153\001z\001r\001s\000\000\000\000\000\000\001|\001r\001s\000\242\000\000\001\133\000\000\001\134\002]\000\000\000\000\002\135\000\000\000\000\000\000\001t\001\132\000\000\001v\001w\000\000\001t\001\132\000\000\001v\001w\002=\002>\001s\000\000\000\000\000\000\000\000\000\000\001\143\000\000\000\000\000\000\003N\001\143\001\141\000\000\000\000\001\144\003T\001\153\001z\000\000\001\144\004\021\001\153\001z\001|\000\000\000\000\000\242\000\000\000\000\000\000\001\133\000\000\001\134\002]\002\135\001\143\001\133\000\000\001\134\002]\000\000\000\000\000\000\000\000\001\144\000\000\001\153\001z\000\000\001r\001s\000\000\000\000\000\000\000\000\003^\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\141\000\000\000\000\000\000\001t\001\132\001\141\001v\001w\000\000\003z\001\132\001|\001v\001w\000\242\000\000\000\000\001|\001#\000\000\000\242\001\143\002\135\000\000\000\000\000\000\003Z\000\000\002\135\000\000\001\144\002@\001\153\001z\000\000\000\000\002=\002>\001s\000\000\002=\002>\001s\002A\000\000\002\193\000\242\001\133\000\000\001\134\002]\002\154\003\127\003\143\003\144\002\154\000\000\000\000\000\000\002\159\000\000\000\000\000\000\002\159\000\000\000\000\000\000\000\000\000\000\003\165\000\000\000\000\002\185\003\170\000\000\001\143\002\185\000\000\000\000\004\023\000\000\001\143\001\141\000\000\001\144\000\000\001\153\001z\001\141\000\000\001\144\001#\001\153\001z\001|\000\000\000\000\000\242\000\000\000\000\001|\000\000\000\000\000\242\000\000\002\135\001(\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\195\000\000\001\153\002\196\002=\002>\001s\001)\000\000\000\000\002=\002>\001s\001\027\001/\000\000\000\000\003\147\003\148\002\154\002\191\000\000\000\000\000\000\002\191\002\154\000\000\002\159\000\000\000\000\000\000\000\000\002A\002\159\002\193\000\242\002A\003\172\002\193\000\242\002\185\000\000\001\143\003\176\000\000\000\000\002\185\000\000\001\143\000\000\000\000\001\144\000\000\001\153\001z\000\000\001#\001\144\000\000\001\153\001z\000\000\000\000\001(\002\197\000\000\000\000\0011\002\197\000\000\0012\001r\001s\0013\0014\000\000\000\000\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\001\027\001/\000\000\003\168\000\000\001t\001\132\003\168\001v\001w\002\194\000\000\000\000\004\193\002\194\000\000\000\000\000\000\002\191\002\215\000\000\001\153\002\196\002\215\002\191\001\153\002\196\000\000\003\191\000\000\002A\000\000\002\193\000\242\000\000\000\000\002A\000\000\002\193\000\242\002=\002>\001s\002\217\002=\002>\001s\002\217\000\000\001\133\000\000\001\134\002]\000\000\0011\002\154\000\000\0012\001(\002\154\0013\0014\002\197\002\159\000\000\000\000\000\000\002\159\002\197\000\000\000\000\000\000\000\000\003\184\000\000\001)\002\185\003\194\000\000\000\000\002\185\001\027\001/\000\000\001\141\000\000\004\201\003\168\000\000\000\000\000\000\000\000\000\000\003\168\002\194\000\000\001|\000\000\000\000\000\242\002\194\000\000\000\000\002\215\000\000\001\153\002\196\002\135\000\000\002\215\000\000\001\153\002\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001r\001s\002\217\000\000\000\000\000\000\000\000\000\000\002\217\000\000\0011\000\000\000\000\0012\000\000\002\191\0013\0014\000\000\002\191\001t\001\132\000\000\001v\001w\000\000\000\000\002A\000\000\002\193\000\242\002A\000\000\002\193\000\242\001\143\000\000\002=\002>\001s\000\000\000\000\004\205\003\201\001\144\000\000\001\153\001z\001r\001s\000\000\000\000\002\154\000\000\001r\001s\000\000\000\000\000\000\002\197\002\159\000\000\000\000\002\197\001\133\000\000\001\134\002]\001t\001\151\003\204\001v\001w\002\185\001t\001\132\000\000\001v\001w\000\000\000\000\000\000\000\000\000\000\003\168\000\000\000\000\000\000\003\168\000\000\000\000\002\194\000\000\000\000\000\000\002\194\000\000\003\211\000\000\001\141\002\215\000\000\001\153\002\196\002\215\000\000\001\153\002\196\000\000\000\000\000\000\001|\000\000\000\000\000\242\000\000\000\000\000\000\001\133\000\000\001\134\002]\002\135\000\000\002\217\000\000\000\000\000\000\002\217\000\000\000\000\000\000\000\000\000\000\001r\001s\000\000\002\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001{\000\000\002A\000\000\002\193\000\242\001\141\001t\001\132\000\000\001v\001w\001|\000\000\000\000\000\242\000\000\000\000\001|\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001\143\002\135\003\221\000\000\000\000\000\000\002\197\000\000\000\000\001\144\000\000\001\153\001z\001r\001s\000\000\000\000\000\000\000\000\001r\001s\000\000\000\000\001\133\000\000\001\134\002]\000\000\000\000\000\000\000\000\003\168\000\000\001t\001\132\000\000\001v\001w\002\194\001t\001\132\000\000\001v\001w\000\000\000\000\000\000\002\215\001\143\001\153\002\196\000\000\000\000\000\000\001\143\000\000\003\230\001\152\001\141\001\153\001z\000\000\003\239\001\144\000\000\001\153\001z\002=\002>\001s\001|\002\217\000\000\000\242\000\000\000\000\000\000\001\133\000\000\001\134\002]\002\135\002\154\001\133\000\000\001\134\002]\000\000\000\000\000\000\002\159\000\000\000\000\001r\001s\000\000\000\000\000\000\000\000\000\000\003\244\000\000\000\000\002\185\000\000\000\000\000\000\000\000\000\000\002=\002>\001s\001\141\001t\001\132\000\000\001v\001w\001\141\000\000\000\000\000\000\000\000\000\000\001|\000\000\000\000\000\242\000\000\000\000\001|\000\000\004f\000\242\001\143\002\135\003\250\000\000\000\000\004n\000\000\002\135\000\000\001\144\000\000\001\153\001z\002=\002>\001s\000\000\000\000\001r\001s\000\000\000\000\000\000\001\133\000\000\001\134\002]\000\000\002\154\004o\000\000\000\000\000\000\002\191\000\000\000\000\002\159\000\000\001t\001\132\000\000\001v\001w\000\000\000\000\002A\003\253\002\193\000\242\002\185\000\000\000\000\000\000\000\000\001\143\002=\002>\001s\001\141\000\000\001\143\004\003\000\000\001\144\000\000\001\153\001z\000\000\000\000\001\144\001|\001\153\001z\000\242\000\000\002@\000\000\002\197\004v\000\000\000\000\002\135\001\133\000\000\001\134\002]\000\000\004r\000\000\002\193\000\242\001\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\168\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\002\191\000\000\000\000\000\000\001\141\002\215\000\000\001\153\002\196\000\000\000\000\004i\002A\000\000\002\193\000\242\001|\000\000\000\000\000\242\000\000\001\143\002=\002>\001s\000\000\000\000\002\135\000\000\002\217\001\144\000\000\001\153\001z\000\000\000\000\000\000\002\154\002\194\001r\001s\000\000\002@\000\000\002\197\002\159\000\000\002\195\000\000\001\153\002\196\000\000\000\000\000\000\002A\004\006\002\193\000\242\002\185\001t\001\132\000\000\001v\001w\000\000\000\000\000\000\000\000\000\000\003\168\000\000\002=\002>\001s\000\000\000\000\002\194\000\000\001r\001s\001\143\000\000\004\012\000\000\000\000\002\215\002\154\001\153\002\196\001\144\000\000\001\153\001z\000\000\002\159\000\000\000\000\000\000\001t\001\132\000\000\001v\001w\001\133\004\030\001\134\002]\002\185\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\004\019\002\191\000\000\002=\002>\001s\002\195\000\000\001\153\002\196\000\000\000\000\000\000\002A\000\000\002\193\000\242\001\141\002\154\000\000\000\000\001\133\000\000\001\134\002]\000\000\002\159\000\000\000\000\001|\000\000\000\000\000\242\000\000\000\000\000\000\004!\000\000\000\000\002\185\002\135\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\000\000\001\141\000\000\000\000\000\000\000\000\000\000\002A\000\000\002\193\000\242\000\000\000\000\001|\000\000\003\168\000\242\000\000\000\000\000\000\000\000\000\000\002\194\000\000\002\135\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\001\153\002\196\000\000\000\000\000\000\001\143\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\002\191\001\153\001z\000\000\001r\001s\000\000\002\217\000\000\000\000\000\000\000\000\002A\000\000\002\193\000\242\003\168\000\000\000\000\002=\002>\001s\000\000\002\194\001t\001\132\000\000\001v\001w\001\143\001r\001s\002\215\000\000\001\153\002\196\000\000\000\000\001\144\000\000\001\153\001z\004\021\000\000\002\197\000\000\000\000\004;\000\000\000\000\001t\001\132\000\000\001v\001w\000\000\002\217\000\000\001r\001s\000\000\000\000\000\000\000\000\000\000\000\000\004\022\000\000\001\133\003\168\001\134\002]\000\000\004@\000\000\000\000\002\194\000\000\001t\001\132\000\000\001v\001w\000\000\000\000\002\215\000\000\001\153\002\196\000\000\000\000\000\000\000\000\000\000\001\133\000\000\001\134\002]\000\000\000\000\000\000\004G\000\000\001\141\000\000\000\000\000\000\000\000\000\000\002\217\000\000\000\000\002=\002>\001s\001|\000\000\000\000\000\242\002@\000\000\000\000\001\133\000\000\001\134\002]\002\135\002\154\000\000\001\141\000\000\002A\000\000\002\193\000\242\002\159\000\000\000\000\002=\002>\001s\001|\000\000\000\000\000\242\004Y\000\000\000\000\002\185\000\000\000\000\000\000\002\135\002\154\000\000\000\000\000\000\001\141\000\000\000\000\000\000\002\159\000\000\000\000\000\000\000\000\000\000\004\024\000\000\001|\000\000\004^\000\242\000\000\002\185\000\000\000\000\000\000\000\000\001\143\002\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\000\000\001\153\001z\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\195\001\143\001\153\002\196\000\000\000\000\000\000\000\000\002\191\000\000\001\144\000\000\001\153\001z\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\000\002\193\000\242\000\000\000\000\000\000\000\000\000\000\001\143\000\000\000\000\000\000\000\000\002\191\003^\001s\000\000\001\144\000\000\001\153\001z\001r\001s\000\000\000\000\002A\000\000\002\193\000\242\000\000\000\000\002\197\000\000\000\000\003z\001\132\000\000\001v\001w\000\000\000\000\001t\001\132\000\000\001v\001w\000\000\000\000\000\000\000\000\002=\002>\001s\000\000\000\000\000\000\003\168\002\197\000\000\000\000\000\000\000\000\000\000\002\194\004\129\002\154\000\000\000\000\000\000\000\000\000\000\000\000\002\215\002\159\001\153\002\196\000\000\003\127\003\143\003\144\000\000\000\000\003\168\000\000\000\000\001\133\002\185\001\134\002]\002\194\000\000\000\000\000\000\000\000\000\000\000\000\002\217\000\000\002\215\000\000\001\153\002\196\000\000\001r\001s\000\000\000\000\000\000\000\000\000\000\001r\001s\000\000\001\141\000\000\000\000\000\000\001r\001s\000\000\001\141\000\000\002\217\001t\001\132\001|\001v\001w\000\242\000\000\001t\001\132\001|\001v\001w\000\242\000\000\001t\001\132\000\000\001v\001w\000\000\002\135\000\000\000\000\004\226\000\000\000\000\000\000\002\191\000\000\000\000\004\249\000\000\000\000\000\000\000\000\003\147\004\216\004\253\000\000\002A\000\000\002\193\000\242\000\000\001\133\000\000\001\134\002]\000\000\000\000\000\000\001\133\000\000\001\134\002]\000\000\000\000\000\000\001\133\000\000\001\134\002]\000\000\000\000\000\000\000\000\001\143\000\000\000\000\000\000\000\000\002\197\000\000\001\143\000\000\001\144\000\000\001\153\001z\001\141\001#\000\000\001\144\001$\001\153\001z\001\141\000\000\000\000\000\000\000\000\001|\000\000\001\141\000\242\000\000\005\011\000\000\001|\000\000\000\000\000\242\002\135\002\194\000\000\001|\000\000\001&\000\242\002\135\001#\000\000\002\215\001$\001\153\002\196\002\135\005J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001r\001s\000\000\000\000\000\000\005M\000\000\000\000\002\217\001&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\154\000\000\005J\001t\002s\000\000\001v\001w\001,\000\000\001\143\000\000\000\000\000\000\000\000\000\000\000\000\001\143\005\198\001\144\000\000\001\153\001z\001(\001\143\000\000\001\144\000\000\001\153\001z\000\000\002t\000\000\001\144\000\000\001\153\001z\000\000\001,\000\000\001)\000\000\000\000\000\000\000\000\000\000\001\027\001/\000\000\000\000\000\000\000\000\001#\001(\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\001r\001s\000\000\001)\000\000\000\000\000\000\000\000\000\000\001\027\001/\000\000\001&\000\000\000\000\001{\000\000\006\178\000\000\000\000\001t\002s\005J\001v\001w\001;\000\000\001|\000\000\000\000\000\242\000\000\000\000\0011\000\000\000\000\0012\000\000\006\151\0013\0014\005S\000\000\000\000\000\000\000\000\000\000\000\000\002t\000\000\000\000\000\000\000\000\000\000\000\000\001;\000\000\001#\001,\000\000\001$\000\000\002u\0011\000\000\0015\0012\000\000\001?\0013\0014\005S\000\000\001(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003s\003y\001&\000\000\000\000\000\000\000\000\000\000\001)\001\143\000\000\000\000\005J\0015\001\027\001/\001?\001{\001\152\001#\001\153\001z\001$\000\000\000\000\000\000\000\000\000\000\006\165\001|\000\000\000\000\000\242\000\000\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\001,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005J\000\000\000\000\000\000\001;\000\000\000\000\001(\002u\000\000\000\000\000\000\0011\000\000\000\000\0012\006\175\000\000\0013\0014\005S\000\000\000\000\000\000\001)\000\000\000\000\000\000\003s\003y\001\027\001/\000\000\003^\001s\000\000\001,\001\143\003^\001s\000\000\000\000\000\000\000\000\0015\000\000\001\152\001?\001\153\001z\000\000\001(\000\000\003z\001\132\000\000\001v\001w\003z\001\132\000\000\001v\001w\000\000\000\000\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\001\027\001/\001;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\000\000\000\000\0012\000\000\000\000\0013\0014\005S\000\000\000\000\000\000\003\127\003\143\003\144\000\000\000\000\003\127\003\143\003\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0015\000\000\000\000\001?\001;\000\000\001r\001s\000\000\000\000\000\000\001#\0011\000\000\001$\0012\001\141\000\000\0013\0014\005S\001\141\000\000\000\000\000\000\000\000\001t\001\132\001|\001v\001w\000\242\000\000\001|\000\000\000\000\000\242\000\000\001&\000\000\000\000\002=\002>\001s\0015\000\000\000\000\001?\004\178\007D\000\000\000\000\000\000\000\000\000\000\000\000\002\154\000\000\000\000\000\000\000\000\003\147\006\192\007h\002\159\000\000\003\147\006\226\000\000\000\000\001\133\000\000\001\134\002]\000\000\000\000\000\000\002\185\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\001\143\000\000\000\000\000\000\000\000\001\143\000\000\001(\000\000\001\144\000\000\001\153\001z\001\141\001\144\000\000\001\153\001z\000\000\000\000\000\000\000\000\000\000\000\000\001)\001|\000\000\000\000\000\242\000\000\001\027\001/\000\000\000\000\000\000\000\000\002\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001r\001s\000\000\000\000\002\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\000\002\193\000\242\001t\001\132\000\000\001v\001w\000\000\002=\002>\001s\000\000\001\198\001;\000\000\000\000\002=\002>\001s\000\000\000\000\0011\000\000\002\154\0012\000\000\001\143\0013\0014\000\000\002\197\002\159\000\000\000\000\000\000\001\144\000\000\001\153\001z\002?\001r\001s\000\000\000\000\002\185\000\000\001\133\000\000\001\134\001\186\000\000\000\000\000\000\0015\000\000\004\227\004\185\000\000\000\000\000\000\001t\001\132\002\194\001v\001w\000\000\000\000\000\000\001r\001s\001\183\002\215\000\000\001\153\002\196\000\000\000\000\000\000\000\000\000\000\000\000\001\141\000\000\000\000\000\000\000\000\000\000\000\000\001t\001\132\000\000\001v\001w\001|\000\000\002\217\000\242\000\000\001\188\000\000\000\000\000\000\000\000\000\000\001\133\000\000\001\134\001\186\002\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\001r\001s\000\000\002A\000\000\002\193\000\242\001r\001s\000\000\000\000\002A\000\000\002\193\000\242\001\133\000\000\001\134\001\186\000\000\001t\002s\001\141\001v\001w\000\000\000\000\001t\001\132\000\000\001v\001w\000\000\000\000\001|\002\197\000\000\000\242\000\000\000\000\001\143\002=\002>\001s\000\000\000\000\000\000\000\000\002t\001\144\001\141\001\153\001z\000\000\000\000\000\000\002\154\000\000\000\000\000\000\004\130\000\000\001|\000\000\002\159\000\242\000\000\002\194\000\000\000\000\000\000\001\133\000\000\001\134\002]\002\194\002\215\002\185\001\153\002\196\000\000\001r\001s\000\000\002\195\000\000\001\153\002\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\143\001{\002\217\001t\001\132\000\000\001v\001w\001\141\001\144\000\000\001\153\001z\001|\000\000\000\000\000\242\000\000\000\000\000\000\001|\000\000\000\000\000\242\000\000\000\000\000\000\000\000\001\143\000\000\000\000\0044\000\000\000\000\000\000\000\000\000\000\001\144\000\000\001\153\001z\000\000\000\000\002\191\000\000\000\000\000\000\001\133\002u\001\134\002e\001r\001s\000\000\000\000\002A\000\000\002\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002w\003y\000\000\001t\001\132\000\000\001v\001w\000\000\001\143\000\000\000\000\000\000\000\000\001\141\000\000\001\143\000\000\001\152\002\197\001\153\001z\002=\002>\001s\001\144\001|\001\153\001z\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\000\000\004,\002\159\000\000\001\133\000\000\001\134\002]\002\194\000\000\000\000\000\000\000\000\002h\000\000\002\185\000\000\002\215\000\000\001\153\002\196\002=\002>\001s\000\000\002=\002>\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\154\000\000\000\000\001\141\002\154\002\217\000\000\000\000\002\159\000\000\000\000\001\143\002\159\000\000\000\000\001|\000\000\000\000\000\242\000\000\001\144\002\185\001\153\001z\000\000\002\185\002\134\002=\002>\001s\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\154\002\191\000\000\000\000\000\000\000\000\000\000\000\000\002\159\000\000\000\000\000\000\000\000\002A\000\000\002\193\000\242\000\000\000\000\000\000\000\000\002\185\000\000\000\000\000\000\000\000\000\000\002=\002>\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\143\000\000\000\000\000\000\000\000\002\154\002\191\000\000\002\197\001\144\002\191\001\153\001z\002\159\000\000\000\000\000\000\000\000\002A\000\000\002\193\000\242\002A\000\000\002\193\000\242\002\185\000\000\000\000\000\000\000\000\000\000\000\000\004\025\000\000\000\000\000\000\000\000\000\000\000\000\002\194\002=\002>\001s\000\000\000\000\000\000\000\000\002\191\002\215\002\197\001\153\002\196\000\000\002\197\000\000\002\154\000\000\000\000\000\000\002A\000\000\002\193\000\242\002\159\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\217\000\000\003\153\000\000\002\185\000\000\002\207\000\000\000\000\002\194\000\000\000\000\000\000\002\194\000\000\000\000\000\000\002\191\002\215\002\197\001\153\002\196\002\215\000\000\001\153\002\196\000\000\000\000\000\000\002A\000\000\002\193\000\242\000\000\002=\002>\001s\000\000\000\000\000\000\000\000\000\000\002\217\000\000\002\213\000\000\002\217\000\000\000\000\002\154\000\000\002\194\000\000\000\000\002=\002>\001s\002\159\000\000\000\000\002\215\002\197\001\153\002\196\000\000\000\000\000\000\000\000\002\191\002\154\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\159\000\000\000\000\002A\000\000\002\193\000\242\002\217\000\000\002\222\000\000\000\000\000\000\002\185\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\001\153\002\196\000\000\000\000\000\000\000\000\000\000\000\000\002\197\000\000\000\000\001r\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\001t\001\132\002\233\001v\001w\000\000\000\000\000\000\000\000\002\194\000\000\002A\000\000\002\193\000\242\002=\002>\001s\002\215\002\191\001\153\002\196\000\000\000\000\000\000\002=\002>\001s\000\000\000\000\002\154\002A\000\000\002\193\000\242\002=\002>\001s\002\159\000\000\002\154\000\000\002\217\002\197\001\133\000\000\001\134\007\232\002\159\007\234\002\154\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\159\000\000\000\000\002\185\000\000\002\197\000\000\000\000\000\000\000\000\002\239\000\000\000\000\002\185\000\000\000\000\000\000\002\194\000\000\000\000\000\000\001\141\000\000\000\000\000\000\000\000\002\215\000\000\001\153\002\196\002\245\000\000\000\000\001|\000\000\000\000\000\242\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\001\153\002\196\002\217\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002=\002>\001s\000\000\000\000\000\000\000\000\002\191\000\000\002A\002\217\002\193\000\242\000\000\000\000\002\154\000\000\002\191\000\000\002A\000\000\002\193\000\242\002\159\000\000\000\000\000\000\000\000\000\000\002A\000\000\002\193\000\242\000\000\000\000\000\000\002\185\001\143\000\000\000\000\000\000\002\197\002=\002>\001s\000\000\001\144\000\000\001\153\001z\000\000\002\197\002=\002>\001s\000\000\000\000\002\154\000\000\000\000\000\000\002\197\000\000\000\000\000\000\002\159\002\251\002\154\000\000\000\000\000\000\000\000\000\000\002\194\000\000\002\159\003\001\000\000\002\185\000\000\000\000\000\000\002\215\002\194\001\153\002\196\003\007\000\000\002\185\000\000\000\000\000\000\002\215\002\194\001\153\002\196\000\000\000\000\000\000\000\000\002\191\000\000\002\215\000\000\001\153\002\196\002\217\000\000\000\000\000\000\000\000\000\000\002A\000\000\002\193\000\242\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\217\000\000\000\000\000\000\000\000\000\000\002=\002>\001s\000\000\000\000\000\000\002=\002>\001s\000\000\002\191\000\000\002\197\000\000\000\000\002\154\002=\002>\001s\000\000\002\191\002\154\002A\002\159\002\193\000\242\002=\002>\001s\002\159\000\000\000\000\002A\000\000\002\193\000\242\002\185\003\r\000\000\004\021\000\000\002\154\002\185\000\000\002\194\000\000\000\000\000\000\000\000\002\159\000\000\000\000\000\000\002\215\002\197\001\153\002\196\000\000\000\000\000\000\000\000\000\000\002\185\006\211\002\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\002\217\000\000\003\019\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\003\025\000\000\000\000\000\000\000\000\000\000\002\215\002\194\001\153\002\196\000\000\002\191\000\000\000\000\000\000\000\000\002\215\002\191\001\153\002\196\000\000\000\000\000\000\002A\000\000\002\193\000\242\002@\000\000\002A\002\217\002\193\000\242\002=\002>\001s\000\000\002\191\000\000\002A\002\217\002\193\000\242\002=\002>\001s\000\000\000\000\002\154\002A\000\000\002\193\000\242\000\000\000\000\002\197\002\159\000\000\002\154\000\000\000\000\002\197\000\000\000\000\000\000\000\000\002\159\000\000\000\000\002\185\000\000\000\000\000\000\000\000\000\000\004\024\000\000\000\000\000\000\002\185\003\031\002\197\000\000\000\000\000\000\000\000\003%\002\194\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\002\215\000\000\001\153\002\196\000\000\000\000\002\215\002\194\001\153\002\196\003+\000\000\000\000\000\000\000\000\000\000\002\195\002\194\001\153\002\196\000\000\000\000\000\000\000\000\002\217\000\000\002\215\000\000\001\153\002\196\002\217\000\000\000\000\002=\002>\001s\000\000\002\191\000\000\000\000\000\000\000\000\000\000\002=\002>\001s\000\000\002\191\002\154\002A\002\217\002\193\000\242\002=\002>\001s\002\159\000\000\002\154\002A\000\000\002\193\000\242\000\000\000\000\000\000\002\159\000\000\002\154\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\159\000\000\000\000\002\185\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\197\002=\002>\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0031\002\154\000\000\000\000\000\000\000\000\000\000\002\194\000\000\002\159\0037\000\000\000\000\000\000\000\000\000\000\002\215\002\194\001\153\002\196\000\000\000\000\002\185\000\000\000\000\000\000\002\215\002\191\001\153\002\196\000\000\000\000\000\000\002=\002>\001s\000\000\002\191\000\000\002A\002\217\002\193\000\242\000\000\000\000\000\000\000\000\002\191\002\154\002A\002\217\002\193\000\242\002=\002>\001s\002\159\000\000\000\000\002A\000\000\002\193\000\242\000\000\000\000\000\000\000\000\000\000\002\154\002\185\000\000\002\197\000\000\000\000\000\000\000\000\002\159\000\000\000\000\000\000\000\000\002\197\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002\185\000\000\002\197\000\000\000\000\000\000\000\000\003=\000\000\002A\000\000\002\193\000\242\001#\002\194\000\000\001$\003C\000\000\000\000\000\000\000\000\000\000\002\215\002\194\001\153\002\196\003I\000\000\000\000\000\000\000\000\000\000\002\215\002\194\001\153\002\196\000\000\000\000\000\000\001&\002\197\000\000\002\215\002\191\001\153\002\196\002\217\000\000\000\000\003h\000\000\000\000\000\000\000\000\000\000\002A\002\217\002\193\000\242\002=\002>\001s\000\000\002\191\000\000\003O\002\217\000\000\000\000\000\000\000\000\000\000\002\194\000\000\002\154\002A\000\000\002\193\000\242\000\000\000\000\002\215\002\159\001\153\002\196\001,\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\185\000\000\000\000\000\000\000\000\001(\000\000\000\000\000\000\000\000\002\217\000\000\002\197\000\000\000\000\000\000\000\000\003U\000\000\000\000\000\000\000\000\001)\000\000\002\194\000\000\000\000\000\000\001\027\001/\000\000\000\000\000\000\002\215\000\000\001\153\002\196\003[\000\000\000\000\000\000\000\000\000\000\000\000\002\194\002=\002>\001s\000\000\000\000\002=\002>\001s\002\215\000\000\001\153\002\196\002\217\000\000\000\000\002\154\000\000\000\000\000\000\002\191\002\154\000\000\000\000\002\159\000\000\000\000\000\000\000\000\002\159\001;\000\000\002A\002\217\002\193\000\242\000\000\002\185\0011\000\000\000\000\0012\002\185\000\000\0013\0014\002\168\000\000\002=\002>\001s\000\000\002=\002>\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\154\002\197\000\000\000\000\002\154\000\000\000\000\0015\002\159\000\000\001?\000\000\002\159\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\185\000\000\000\000\000\000\002\185\003\192\000\000\000\000\000\000\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\002\215\002\191\001\153\002\196\000\000\000\000\000\000\000\000\002A\000\000\002\193\000\242\000\000\002A\000\000\002\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\217\000\000\000\000\002=\002>\001s\000\000\000\000\000\000\002=\002>\001s\000\000\000\000\000\000\000\000\002\197\000\000\002\154\002\191\000\000\002\197\000\000\002\191\002\154\000\000\002\159\000\000\000\000\000\000\000\000\002A\002\159\002\193\000\242\002A\000\000\002\193\000\242\002\185\000\000\003\202\000\000\000\000\000\000\002\185\003\212\000\000\002\194\000\000\000\000\001r\001s\002\194\002=\002>\001s\002\215\000\000\001\153\002\196\000\000\002\215\002\197\001\153\002\196\000\000\002\197\000\000\002\154\000\000\001t\002r\000\000\001v\001w\000\000\002\159\000\000\000\000\000\000\002\217\000\000\000\000\000\000\000\000\002\217\000\000\003\222\000\000\002\185\000\000\003\231\000\000\000\000\002\194\000\000\000\000\000\000\002\194\000\000\000\000\000\000\002\191\002\215\000\000\001\153\002\196\002\215\002\191\001\153\002\196\000\000\000\000\000\000\002A\000\000\002\193\000\242\000\000\000\000\002A\000\000\002\193\000\242\000\000\000\000\000\000\002\217\000\000\000\000\000\000\002\217\000\000\002=\002>\001s\000\000\000\000\000\000\002=\002>\001s\000\000\002=\002>\001s\002\197\000\000\002\154\001{\000\000\000\000\002\197\002\191\002\154\000\000\002\159\000\000\002\154\000\000\000\000\001|\002\159\000\000\000\242\002A\002\159\002\193\000\242\002\185\000\000\003\240\000\000\000\000\000\000\002\185\000\000\003\251\002\194\002\185\000\000\000\000\000\000\000\000\002\194\000\000\000\000\002\215\000\000\001\153\002\196\000\000\000\000\002\215\000\000\001\153\002\196\002\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\002\217\000\000\000\000\000\000\000\000\000\000\002\217\000\000\000\000\000\000\000\000\004\004\000\000\000\000\001\143\000\000\000\000\000\000\002\194\000\000\000\000\000\000\002\191\001\152\000\000\001\153\001z\002\215\002\191\001\153\002\196\000\000\002\191\000\000\002A\000\000\002\193\000\242\000\000\000\000\002A\000\000\002\193\000\242\002A\000\000\002\193\000\242\002=\002>\001s\002\217\002=\002>\001s\000\000\000\000\000\000\000\000\001\201\001s\000\000\000\000\002\154\000\000\000\000\002\197\002\154\000\000\000\000\000\000\002\159\002\197\000\000\000\000\002\159\002\197\000\000\000\000\001t\002R\000\000\001v\001w\002\185\000\000\000\000\000\000\002\185\000\000\000\000\004\r\000\000\000\000\000\000\000\000\000\000\004\020\002\194\001#\000\000\004B\001$\000\000\002\194\000\000\000\000\002\215\002\194\001\153\002\196\000\000\000\000\002\215\000\000\001\153\002\196\002\215\001#\001\153\002\196\001$\004J\003\143\003\144\000\000\001&\000\000\000\000\000\000\000\000\002\217\000\000\000\000\000\000\000\000\004\178\002\217\000\000\000\000\000\000\002\217\000\000\000\000\000\000\001&\000\000\000\000\002\191\000\000\006\200\004\181\002\191\000\000\001#\000\000\000\000\001$\001\141\000\000\002A\000\000\002\193\000\242\002A\000\000\002\193\000\242\000\000\000\000\001|\000\000\001,\000\242\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\001(\000\000\000\000\000\000\001,\002\197\000\000\000\000\000\000\002\197\000\000\000\000\004Q\000\000\000\000\000\000\000\000\001)\001#\001(\000\000\001$\000\000\001\027\001/\000\000\000\000\000\000\000\000\000\000\004A\000\000\000\000\000\000\004H\000\000\001)\002\194\000\000\000\000\001,\002\194\001\027\001/\000\000\001&\002\215\001\143\001\153\002\196\002\215\000\000\001\153\002\196\000\000\001(\001\144\000\000\001\153\001z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001#\001;\002\217\001$\001)\001#\002\217\000\000\001$\0011\001\027\001/\0012\000\000\000\000\0013\0014\000\000\000\000\007\204\001;\000\000\000\000\001,\000\000\001r\001s\001&\0011\000\000\000\000\0012\001&\000\000\0013\0014\005\214\000\000\001(\000\000\000\000\0015\000\000\000\000\004\185\001t\001\132\000\000\001v\001w\000\000\000\000\000\000\000\000\000\000\001)\001;\000\000\000\000\000\000\0015\001\027\001/\001?\0011\000\000\000\000\0012\000\000\000\000\0013\0014\005\227\001,\000\000\006\246\001#\000\000\001,\001$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001(\001\133\000\000\001\134\0078\001(\000\000\000\000\0015\000\000\000\000\001?\000\000\000\000\000\000\001&\000\000\001)\000\000\001;\000\000\000\000\001)\001\027\001/\000\000\000\000\0011\001\027\001/\0012\000\000\000\000\0013\0014\007\205\001\141\001#\000\000\000\000\001$\000\000\000\000\002=\002>\001s\000\000\000\000\001|\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0015\000\000\001,\001?\000\000\001&\000\000\002\144\000\000\000\000\001E\000\000\000\000\001P\000\000\001;\000\000\001(\0011\000\000\000\000\0012\000\000\0011\0013\0014\0012\000\000\000\000\0013\0014\001f\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\001\027\001/\000\000\000\000\000\000\000\000\000\000\000\000\001r\001s\0015\001,\000\000\001\143\000\000\0015\001r\001s\001?\000\000\000\000\000\000\001\144\000\000\001\153\001z\001(\000\000\001t\001\132\000\000\001v\001w\000\000\000\000\000\000\001t\001\132\000\000\001v\001w\000\000\000\000\001)\002@\000\000\001;\001r\001s\001\027\001/\000\000\000\000\000\000\0011\000\000\002A\0012\002\193\000\242\0013\0014\001<\000\000\000\000\000\000\000\000\001t\001\132\000\000\001v\001w\001\133\000\000\001\134\001\190\001r\001s\000\000\000\000\001\133\000\000\001\134\001\178\000\000\000\000\0015\000\000\000\000\001?\000\000\000\000\000\000\000\000\000\000\001;\001t\001\132\000\000\001v\001w\000\000\000\000\0011\000\000\000\000\0012\001\141\000\000\0013\0014\001\133\000\000\001\134\001\175\001\141\000\000\000\000\000\000\001|\002\194\000\000\000\242\000\000\000\000\000\000\000\000\001|\000\000\002\195\000\242\001\153\002\196\000\000\000\000\0015\000\000\000\000\001T\000\000\001\133\000\000\001\134\001\136\001r\001s\001\141\000\000\000\000\000\000\001r\001s\000\000\000\000\000\000\000\000\000\000\000\000\001|\000\000\000\000\000\242\000\000\000\000\001t\001\132\000\000\001v\001w\000\000\001t\001\132\000\000\001v\001w\001\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\143\000\000\000\000\001#\001|\000\000\001$\000\242\001\143\001\144\000\000\001\153\001z\000\000\000\000\000\000\000\000\001\144\000\000\001\153\001z\001r\001s\000\000\000\000\001\133\000\000\001\134\001\139\000\000\001&\001\133\000\000\001\134\001\142\001r\001s\000\000\000\000\001\143\000\000\001t\001\132\000\000\001v\001w\000\000\000\000\001\144\000\000\001\153\001z\000\000\000\000\000\000\001t\001\132\000\000\001v\001w\001\141\000\000\000\000\000\000\000\000\000\000\001\141\000\000\001\143\000\000\000\000\000\000\001|\001r\001s\000\242\001,\001\144\001|\001\153\001z\000\242\000\000\000\000\000\000\001\133\000\000\001\134\001\174\000\000\000\000\001(\000\000\001t\001\132\000\000\001v\001w\000\000\001\133\000\000\001\134\001\162\000\000\001#\000\000\000\000\001$\001)\000\000\000\000\000\000\000\000\000\000\001\027\001/\000\000\000\000\000\000\000\000\001\141\000\000\000\000\000\000\000\000\001#\000\000\000\000\001$\000\000\000\000\001&\001|\000\000\001\141\000\242\001\143\001\133\001#\001\134\001\170\001$\001\143\000\000\000\000\001\144\001|\001\153\001z\000\242\000\000\001\144\001&\001\153\001z\000\000\000\000\000\000\000\000\001#\001;\000\000\001$\000\000\000\000\001&\000\000\000\000\0011\000\000\000\000\0012\001\141\000\000\0013\0014\001\165\001,\000\000\000\000\000\000\000\000\000\000\000\000\001|\000\000\001&\000\242\000\000\000\000\000\000\000\000\001(\000\000\000\000\000\000\001\143\000\000\001,\000\000\0015\000\000\000\000\001?\000\000\001\144\000\000\001\153\001z\001)\001\143\001,\000\000\001(\000\000\001\027\001/\000\000\000\000\001\144\000\000\001\153\001z\000\000\000\000\000\000\001(\000\000\000\000\000\000\001)\000\000\001,\000\000\000\000\001#\001\027\001/\001$\000\000\000\000\000\000\000\000\001)\000\000\000\000\000\000\001(\001\143\001\027\001/\000\000\000\000\000\000\000\000\000\000\000\000\001\144\000\000\001\153\001z\001;\001&\000\000\001)\000\000\000\000\000\000\000\000\0011\001\027\001/\0012\000\000\000\000\0013\0014\001\206\000\000\000\000\000\000\000\000\001;\000\000\000\000\001#\000\000\000\000\001$\000\000\0011\000\000\000\000\0012\000\000\001;\0013\0014\001\246\000\000\000\000\0015\000\000\0011\001?\000\000\0012\000\000\001,\0013\0014\001\248\001&\001r\001s\000\000\001;\000\000\000\000\000\000\000\000\000\000\0015\001(\0011\001?\000\000\0012\000\000\000\000\0013\0014\002T\001t\001\132\0015\001v\001w\001?\000\000\001)\000\000\000\000\000\000\000\000\000\000\001\027\001/\000\000\001#\000\000\000\000\001$\000\000\000\000\000\000\0015\000\000\001,\001?\000\000\001#\000\000\000\000\001$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001(\000\000\000\000\001&\001\133\000\000\001\134\002\139\000\000\001#\000\000\000\000\001$\000\000\000\000\001&\000\000\001)\001#\001;\000\000\001$\000\000\001\027\001/\000\000\000\000\0011\000\000\000\000\0012\000\000\000\000\0013\0014\002g\001&\000\000\000\000\001\141\000\000\000\000\000\000\000\000\000\000\001&\000\000\000\000\000\000\001,\000\000\001|\000\000\000\000\000\242\000\000\000\000\000\000\000\000\0015\000\000\001,\001?\000\000\001(\000\000\000\000\000\000\000\000\001;\000\000\000\000\000\000\000\000\000\000\000\000\001(\0011\000\000\000\000\0012\001)\001,\0013\0014\002\165\000\000\001\027\001/\000\000\000\000\001,\000\000\001)\000\000\000\000\000\000\001(\000\000\001\027\001/\000\000\000\000\000\000\000\000\000\000\001(\000\000\000\000\0015\000\000\000\000\001?\000\000\001)\001\143\000\000\000\000\000\000\000\000\001\027\001/\000\000\001)\001\144\000\000\001\153\001z\000\000\001\027\001/\001r\001s\001;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\000\000\000\000\0012\001;\000\000\0013\0014\002\170\000\000\001t\001\132\0011\001v\001w\0012\000\000\000\000\0013\0014\003e\000\000\000\000\000\000\000\000\001;\000\000\000\000\000\000\000\000\000\000\000\000\0015\0011\001;\001?\0012\000\000\000\000\0013\0014\003l\0011\001#\0015\0012\006\011\001?\0013\0014\003|\000\000\001r\001s\001\133\000\000\001\134\003\132\001r\001s\000\000\000\000\000\000\000\000\000\000\0015\000\000\000\000\001?\000\000\001&\000\000\001t\001\132\0015\001v\001w\001?\001t\001\132\000\000\001v\001w\000\000\000\000\000\000\001r\001s\000\000\001\141\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\242\000\000\001t\001\132\000\000\001v\001w\000\000\000\000\000\000\001r\001s\001\133\000\000\001\134\003\135\000\000\001&\001\133\000\000\001\134\003\138\000\000\000\000\000\000\000\000\000\000\001(\000\000\000\000\001t\001\132\000\000\001v\001w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\001\133\001\141\001\134\003\146\001\027\001/\000\000\001\141\000\000\000\000\000\000\000\000\000\000\001|\000\000\001\143\000\242\001,\000\000\001|\000\000\000\000\000\242\000\000\001\144\000\000\001\153\001z\001\133\000\000\001\134\005;\001(\000\000\000\000\001\141\000\000\000\000\000\000\000\000\000\000\001#\000\000\000\000\001$\000\000\000\000\001|\000\000\001)\000\242\000\000\000\000\000\000\001#\001\027\001/\001$\0011\000\000\000\000\0012\000\000\001\141\0013\0014\000\000\000\000\001&\000\000\000\000\000\000\000\000\000\000\000\000\001|\000\000\001\143\000\242\000\000\000\000\001&\000\000\001\143\000\000\000\000\001\144\000\000\001\153\001z\0015\000\000\001\144\000\000\001\153\001z\000\000\000\000\000\000\000\000\000\000\001;\000\000\000\000\000\000\001#\000\000\000\000\001$\0011\000\000\001\143\0012\000\000\001,\0013\0014\005L\000\000\000\000\001\144\000\000\001\153\001z\000\000\000\000\000\000\001,\000\000\001(\000\000\000\000\001&\000\000\000\000\001#\000\000\000\000\001$\001\143\000\000\0015\001(\000\000\001?\000\000\001)\000\000\001\144\000\000\001\153\001z\001\027\001/\000\000\001#\000\000\000\000\006\b\001)\000\000\000\000\001&\000\000\000\000\001\027\001/\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001#\000\000\001,\006\b\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\001(\000\000\000\000\000\000\000\000\001;\000\000\000\000\000\000\000\000\001&\000\000\000\000\0011\000\000\001,\0012\001)\001;\0013\0014\005\175\000\000\001\027\001/\000\000\0011\000\000\000\000\0012\001(\000\000\0013\0014\005\187\006\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0015\000\000\001)\001?\000\000\001(\000\000\000\000\001\027\001/\000\000\006\n\000\000\0015\000\000\000\000\001?\001#\000\000\000\000\006\b\000\000\001)\000\000\001;\000\000\001(\000\000\001\027\006\r\000\000\000\000\0011\000\000\000\000\0012\000\000\000\000\0013\0014\005\213\000\000\000\000\001)\001&\001#\000\000\000\000\006\b\001\027\006\r\000\000\000\000\001#\001;\000\000\006\b\000\000\000\000\000\000\000\000\000\000\0011\000\000\0015\0012\000\000\001?\0013\0014\005\229\000\000\001&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001&\000\000\0011\000\000\000\000\006\014\000\000\000\000\0013\0014\006\n\000\000\000\000\000\000\0015\000\000\000\000\001?\005\216\000\000\006\019\000\000\006\016\0011\000\000\001(\006\014\000\000\000\000\0013\0014\000\000\000\000\000\000\0015\000\000\000\000\000\000\006\n\005\216\000\000\006\018\001)\006\016\000\000\000\000\006\n\000\000\001\027\006\r\000\000\000\000\000\000\001(\001#\0015\000\000\001$\000\000\000\000\000\000\001(\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\001\027\006\r\001)\000\000\000\000\001&\000\000\000\000\001\027\006\r\000\000\001#\000\000\000\000\001$\000\000\000\000\000\000\000\000\000\000\001#\000\000\000\000\001$\000\000\000\000\0011\000\000\000\000\006\014\000\000\000\000\0013\0014\000\000\000\000\000\000\000\000\001&\000\000\000\000\000\000\005\216\000\000\006\017\000\000\006\016\001&\002=\002>\001s\001,\000\000\000\000\0011\000\000\000\000\006\014\0015\000\000\0013\0014\0011\000\000\000\000\006\014\001(\000\000\0013\0014\005\216\002\146\006\015\000\000\006\016\000\000\000\000\000\000\005\216\000\000\006\027\000\000\006\016\001)\001,\001#\0015\000\000\006\b\001\027\001/\000\000\000\000\001,\0015\000\000\000\000\000\000\000\000\001(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001#\001(\000\000\006\b\000\000\001&\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\001\027\001/\000\000\001)\001#\000\000\000\000\001$\000\000\001\027\001/\000\000\001&\001;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\000\000\000\000\0012\000\000\002@\0013\0014\006\130\000\000\001&\000\000\000\000\000\000\000\000\006\n\000\000\002A\000\000\002\193\000\242\000\000\000\000\000\000\000\000\001;\000\000\000\000\000\000\000\000\001(\000\000\0015\0011\001;\001?\0012\006\n\000\000\0013\0014\006\148\0011\000\000\000\000\0012\000\000\001)\0013\0014\006\172\000\000\001(\001\027\006\r\001#\001,\000\000\001$\000\000\000\000\000\000\000\000\000\000\001#\0015\000\000\001$\001?\001)\000\000\001(\000\000\000\000\0015\001\027\006\r\001?\000\000\000\000\000\000\002\194\001&\000\000\000\000\000\000\000\000\000\000\001)\000\000\002\195\001&\001\153\002\196\001\027\001/\000\000\001#\000\000\000\000\001$\000\000\000\000\000\000\000\000\000\000\000\000\0011\000\000\000\000\006\014\000\000\000\000\0013\0014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\216\001&\006\232\000\000\006\016\001,\0011\000\000\000\000\006\014\000\000\006\031\0013\0014\001,\000\000\0015\001;\000\000\000\000\001(\000\000\005\216\000\000\007\002\0011\006\016\000\000\0012\001(\000\000\0013\0014\007;\000\000\000\000\000\000\001)\0015\006 \007\159\006!\001#\001\027\001/\001$\001)\001,\000\000\000\000\000\000\000\000\001\027\001/\000\000\000\000\000\000\0015\000\000\000\000\001?\000\000\001(\000\000\001#\000\000\000\000\001$\000\000\001&\000\000\006\"\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\001\027\001/\000\000\000\000\001;\000\000\001&\000\000\000\000\000\000\000\000\000\000\0011\001;\000\000\0012\001r\001s\0013\0014\007}\0011\006#\000\000\0012\000\000\000\000\0013\0014\007\128\001,\000\000\006$\006%\000\000\006&\001t\002s\000\000\001v\001w\000\000\000\000\000\000\0015\001(\001;\001?\000\000\000\000\000\000\000\000\001,\0015\0011\000\000\001?\0012\006b\000\000\0013\0014\001)\000\000\000\000\000\000\000\000\001(\001\027\001/\001#\000\000\000\000\001$\000\000\001r\001s\000\000\000\000\000\000\000\000\000\000\006(\000\000\001)\000\000\0015\006*\0064\001R\001\027\001/\000\000\000\000\000\000\001t\002s\001&\001v\001w\006^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001r\001s\000\000\001;\001{\000\000\000\000\006_\000\000\000\000\000\000\0011\000\000\000\000\0012\000\000\001|\0013\0014\000\242\001t\002s\000\000\001v\001w\001;\000\000\000\000\000\000\000\000\000\000\000\000\001,\0011\000\000\000\000\0012\000\000\000\000\0013\0014\000\000\000\000\0015\000\000\000\000\001\241\001(\000\000\000\000\000\000\002u\000\000\001r\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001{\001)\0015\000\000\000\000\001\243\000\000\001\027\001/\002v\001t\002s\001|\001v\001w\000\242\000\000\001\143\000\000\000\000\000\000\000\000\001#\000\000\000\000\001$\001\152\000\000\001\153\001z\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\006\031\000\000\000\000\000\000\006\205\001|\001&\000\000\000\242\000\000\001;\007\018\001#\000\000\000\000\001$\000\000\000\000\0011\000\000\000\000\0012\000\000\000\000\0013\0014\b\007\000\000\006 \b\b\006!\000\000\007\021\001\143\006\031\000\000\000\000\000\000\000\000\001&\007\005\007\022\001\152\000\000\001\153\001z\001{\000\000\000\000\000\000\0015\000\000\001,\004\180\000\000\006\217\007\018\000\000\001|\000\000\006\"\000\242\006 \000\000\006!\000\000\000\000\001(\000\000\001\143\000\000\007\023\000\000\000\000\007\019\000\000\000\000\007\021\001\152\000\000\001\153\001z\000\000\000\000\001)\001,\007\022\000\000\000\000\000\000\001\027\001/\007\006\007\005\006\"\000\000\006#\000\000\000\000\000\000\001(\000\000\000\000\000\000\000\000\000\000\006$\006%\007\024\006&\000\000\000\000\000\000\000\000\000\000\000\000\007\023\001)\007\025\002=\002>\001s\001\143\001\027\001/\000\000\000\000\000\000\007\018\000\000\006#\001\152\006`\001\153\001z\000\000\0010\000\000\b\018\000\000\006$\006%\002\177\006&\0011\007\014\007\019\0012\000\000\007\021\0013\0014\000\000\007\024\000\000\000\000\006(\007\027\007\022\000\000\000\000\006*\0064\007\025\000\000\000\000\006'\007\028\000\000\007v\000\000\000\000\007\030\000\000\006^\000\000\0015\0011\000\000\000\000\0012\000\000\000\000\0013\0014\007 \000\000\007%\007\023\000\000\006(\000\000\006_\000\000\000\000\006*\0064\002=\002>\001s\000\000\000\000\007\027\007!\000\000\000\000\000\000\000\000\006^\0015\000\000\000\000\007\028\002=\002>\001s\000\000\007\030\000\000\002@\002\192\002=\002>\001s\000\000\007\024\006_\000\000\000\000\000\000\007 \002A\000\000\002\193\000\242\007\025\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\181\000\000\000\000\000\000\007!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007/\000\000\000\000\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\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\028\000\000\000\000\000\000\000\000\007\030\000\000\000\000\000\000\000\000\000\000\002\194\000\000\002@\000\000\000\000\000\000\000\000\007 \000\000\002\195\000\000\001\153\002\196\000\000\002A\000\000\002\193\000\242\002@\000\000\000\000\000\000\000\000\000\000\000\000\007!\002@\000\000\000\000\000\000\002A\000\000\002\193\000\242\000\000\000\000\000\000\000\000\002A\000\000\002\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\195\000\000\001\153\002\196\000\000\000\000\000\000\002\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\194\002\195\000\000\001\153\002\196\000\000\000\000\000\000\000\000\002\195\000\000\001\153\002\196"))
  
  and semantic_action =
    [|
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3972 "parsing/parser.mly"
                                                ( "+" )
# 1453 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3973 "parsing/parser.mly"
                                                ( "+." )
# 1478 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.core_type) = 
# 3469 "parsing/parser.mly"
      ( _1 )
# 1503 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = ty;
                MenhirLib.EngineTypes.startp = _startpos_ty_;
                MenhirLib.EngineTypes.endp = _endpos_ty_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _2_inlined1 : (Asttypes.label) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let ty : (Parsetree.core_type) = Obj.magic ty in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_ty_ in
        let _endpos = _endpos__2_inlined1_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 =
            let tyvar =
              let (_endpos__2_, _2) = (_endpos__2_inlined1_, _2_inlined1) in
              let _endpos = _endpos__2_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 3417 "parsing/parser.mly"
    ( mkrhs _2 _sloc )
# 1556 "parsing/parser.ml"
              
            in
            
# 3472 "parsing/parser.mly"
        ( Ptyp_alias(ty, tyvar) )
# 1562 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__2_inlined1_, _startpos_ty_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 1572 "parsing/parser.ml"
          
        in
        
# 3474 "parsing/parser.mly"
    ( _1 )
# 1578 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = body;
            MenhirLib.EngineTypes.startp = _startpos_body_;
            MenhirLib.EngineTypes.endp = _endpos_body_;
            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 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let body : (Parsetree.pattern * Parsetree.expression *
  Parsetree.value_constraint option * bool) = Obj.magic body in
        let _1_inlined1 : (Parsetree.attributes) = 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_inlined2_ in
        let _v : (let_binding) = let attrs2 =
          let _1 = _1_inlined2 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 1627 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined2_ in
        let attrs1 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 1636 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_attrs2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2705 "parsing/parser.mly"
    (
      let attrs = attrs1 @ attrs2 in
      mklb ~loc:_sloc false body attrs
    )
# 1648 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = 
# 3856 "parsing/parser.mly"
      ( _1 )
# 1673 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Asttypes.label) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = 
# 3857 "parsing/parser.mly"
                                 ( Lident _1 )
# 1698 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = type_;
          MenhirLib.EngineTypes.startp = _startpos_type__;
          MenhirLib.EngineTypes.endp = _endpos_type__;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let type_ : (Parsetree.core_type) = Obj.magic type_ in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_type__ in
        let _endpos = _endpos_type__ in
        let _v : (Parsetree.core_type) = 
# 3605 "parsing/parser.mly"
      ( type_ )
# 1723 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 =
            let tid =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 1754 "parsing/parser.ml"
              
            in
            let tys = 
# 3638 "parsing/parser.mly"
      ( [] )
# 1760 "parsing/parser.ml"
             in
            
# 3609 "parsing/parser.mly"
        ( Ptyp_constr (tid, tys) )
# 1765 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 1774 "parsing/parser.ml"
          
        in
        
# 3623 "parsing/parser.mly"
  ( _1 )
# 1780 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = ty;
            MenhirLib.EngineTypes.startp = _startpos_ty_;
            MenhirLib.EngineTypes.endp = _endpos_ty_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let ty : (Parsetree.core_type) = Obj.magic ty in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_ty_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 =
            let tid =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 1818 "parsing/parser.ml"
              
            in
            let tys = 
# 3640 "parsing/parser.mly"
      ( [ ty ] )
# 1824 "parsing/parser.ml"
             in
            
# 3609 "parsing/parser.mly"
        ( Ptyp_constr (tid, tys) )
# 1829 "parsing/parser.ml"
            
          in
          let _startpos__1_ = _startpos_ty_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 1839 "parsing/parser.ml"
          
        in
        
# 3623 "parsing/parser.mly"
  ( _1 )
# 1845 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = 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 _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let xs : (Parsetree.core_type list) = Obj.magic xs in
        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 : (Parsetree.core_type) = let _1 =
          let _1 =
            let tid =
              let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 1898 "parsing/parser.ml"
              
            in
            let tys =
              let tys =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 1906 "parsing/parser.ml"
                 in
                
# 1143 "parsing/parser.mly"
    ( xs )
# 1911 "parsing/parser.ml"
                
              in
              
# 3642 "parsing/parser.mly"
      ( tys )
# 1917 "parsing/parser.ml"
              
            in
            
# 3609 "parsing/parser.mly"
        ( Ptyp_constr (tid, tys) )
# 1923 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 1933 "parsing/parser.ml"
          
        in
        
# 3623 "parsing/parser.mly"
  ( _1 )
# 1939 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Longident.t) = 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 : (Parsetree.core_type) = let _1 =
          let _1 =
            let cid =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 1977 "parsing/parser.ml"
              
            in
            let tys = 
# 3638 "parsing/parser.mly"
      ( [] )
# 1983 "parsing/parser.ml"
             in
            
# 3613 "parsing/parser.mly"
        ( Ptyp_class (cid, tys) )
# 1988 "parsing/parser.ml"
            
          in
          let _startpos__1_ = _startpos__2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 1998 "parsing/parser.ml"
          
        in
        
# 3623 "parsing/parser.mly"
  ( _1 )
# 2004 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = ty;
              MenhirLib.EngineTypes.startp = _startpos_ty_;
              MenhirLib.EngineTypes.endp = _endpos_ty_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let ty : (Parsetree.core_type) = Obj.magic ty in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_ty_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 =
            let cid =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 2049 "parsing/parser.ml"
              
            in
            let tys = 
# 3640 "parsing/parser.mly"
      ( [ ty ] )
# 2055 "parsing/parser.ml"
             in
            
# 3613 "parsing/parser.mly"
        ( Ptyp_class (cid, tys) )
# 2060 "parsing/parser.ml"
            
          in
          let _startpos__1_ = _startpos_ty_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 2070 "parsing/parser.ml"
          
        in
        
# 3623 "parsing/parser.mly"
  ( _1 )
# 2076 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = {
                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 _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _3 : unit = Obj.magic _3 in
        let xs : (Parsetree.core_type list) = Obj.magic xs in
        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 : (Parsetree.core_type) = let _1 =
          let _1 =
            let cid =
              let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 2136 "parsing/parser.ml"
              
            in
            let tys =
              let tys =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 2144 "parsing/parser.ml"
                 in
                
# 1143 "parsing/parser.mly"
    ( xs )
# 2149 "parsing/parser.ml"
                
              in
              
# 3642 "parsing/parser.mly"
      ( tys )
# 2155 "parsing/parser.ml"
              
            in
            
# 3613 "parsing/parser.mly"
        ( Ptyp_class (cid, tys) )
# 2161 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 2171 "parsing/parser.ml"
          
        in
        
# 3623 "parsing/parser.mly"
  ( _1 )
# 2177 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = type_;
          MenhirLib.EngineTypes.startp = _startpos_type__;
          MenhirLib.EngineTypes.endp = _endpos_type__;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let type_ : (Parsetree.core_type) = Obj.magic type_ in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_type__ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 =
            let mod_ident =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 2222 "parsing/parser.ml"
              
            in
            
# 3617 "parsing/parser.mly"
        ( Ptyp_open (mod_ident, type_) )
# 2228 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos_type__ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 2238 "parsing/parser.ml"
          
        in
        
# 3623 "parsing/parser.mly"
  ( _1 )
# 2244 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = ident;
          MenhirLib.EngineTypes.startp = _startpos_ident_;
          MenhirLib.EngineTypes.endp = _endpos_ident_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let ident : (Asttypes.label) = Obj.magic ident in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_ident_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 = 
# 3619 "parsing/parser.mly"
        ( Ptyp_var ident )
# 2277 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos_ident_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 2286 "parsing/parser.ml"
          
        in
        
# 3623 "parsing/parser.mly"
  ( _1 )
# 2292 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Parsetree.core_type) = let _1 =
          let _1 = 
# 3621 "parsing/parser.mly"
        ( Ptyp_any )
# 2318 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 2326 "parsing/parser.ml"
          
        in
        
# 3623 "parsing/parser.mly"
  ( _1 )
# 2332 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Ast_helper.str) = let _1 =
          let _1 = 
# 4039 "parsing/parser.mly"
                     ( _1 )
# 2358 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 990 "parsing/parser.mly"
    ( mkloc _1 (make_loc _sloc) )
# 2366 "parsing/parser.ml"
          
        in
        
# 4041 "parsing/parser.mly"
    ( _1 )
# 2372 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Ast_helper.str) = 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 : (Ast_helper.str) = let _1 =
          let _1 = 
# 4040 "parsing/parser.mly"
                                 ( _1 ^ "." ^ _3.txt )
# 2412 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 990 "parsing/parser.mly"
    ( mkloc _1 (make_loc _sloc) )
# 2421 "parsing/parser.ml"
          
        in
        
# 4041 "parsing/parser.mly"
    ( _1 )
# 2427 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.payload) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.payload) = 
# 4096 "parsing/parser.mly"
    ( Builtin_attributes.mark_payload_attrs_used _1;
      _1
    )
# 2454 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.payload) = Obj.magic _3 in
        let _2 : (Ast_helper.str) = 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 : (Parsetree.attribute) = let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 4045 "parsing/parser.mly"
    ( mk_attr ~loc:(make_loc _sloc) _2 _3 )
# 2503 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.class_expr) = 
# 1975 "parsing/parser.mly"
      ( _1 )
# 2528 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.class_expr) = Obj.magic _3 in
        let _1_inlined1 : (Parsetree.attributes) = 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 : (Parsetree.class_expr) = let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 2569 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1977 "parsing/parser.mly"
      ( wrap_class_attrs ~loc:_sloc _3 _2 )
# 2578 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.class_expr) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (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 : (Parsetree.class_expr) = let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1979 "parsing/parser.mly"
      ( class_of_let_bindings ~loc:_sloc _1 _3 )
# 2620 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 _7 : (Parsetree.class_expr) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__7_ in
        let _v : (Parsetree.class_expr) = let _5 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 2685 "parsing/parser.ml"
          
        in
        let _endpos__5_ = _endpos__1_inlined2_ in
        let _4 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 2694 "parsing/parser.ml"
          
        in
        let _3 = 
# 3964 "parsing/parser.mly"
                                                ( Fresh )
# 2700 "parsing/parser.ml"
         in
        let _endpos = _endpos__7_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1981 "parsing/parser.mly"
      ( let loc = (_startpos__2_, _endpos__5_) in
        let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in
        mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) )
# 2710 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
              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 _7 : (Parsetree.class_expr) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = 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__7_ in
        let _v : (Parsetree.class_expr) = let _5 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 2782 "parsing/parser.ml"
          
        in
        let _endpos__5_ = _endpos__1_inlined3_ in
        let _4 =
          let _1 = _1_inlined2 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 2791 "parsing/parser.ml"
          
        in
        let _3 = 
# 3965 "parsing/parser.mly"
                                                ( Override )
# 2797 "parsing/parser.ml"
         in
        let _endpos = _endpos__7_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1981 "parsing/parser.mly"
      ( let loc = (_startpos__2_, _endpos__5_) in
        let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in
        mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) )
# 2807 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attribute) = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.class_expr) = 
# 1985 "parsing/parser.mly"
      ( Cl.attr _1 _2 )
# 2839 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : ((Asttypes.arg_label * Parsetree.expression) list) = Obj.magic xs in
        let _1 : (Parsetree.class_expr) = 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 : (Parsetree.class_expr) = let _1 =
          let _1 =
            let _2 =
              let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 2874 "parsing/parser.ml"
               in
              
# 1062 "parsing/parser.mly"
    ( xs )
# 2879 "parsing/parser.ml"
              
            in
            
# 1988 "parsing/parser.mly"
        ( Pcl_apply(_1, _2) )
# 2885 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos_xs_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1013 "parsing/parser.mly"
    ( mkclass ~loc:_sloc _1 )
# 2895 "parsing/parser.ml"
          
        in
        
# 1991 "parsing/parser.mly"
      ( _1 )
# 2901 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (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 : (Parsetree.class_expr) = let _1 =
          let _1 = 
# 1990 "parsing/parser.mly"
        ( Pcl_extension _1 )
# 2927 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1013 "parsing/parser.mly"
    ( mkclass ~loc:_sloc _1 )
# 2935 "parsing/parser.ml"
          
        in
        
# 1991 "parsing/parser.mly"
      ( _1 )
# 2941 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = self;
            MenhirLib.EngineTypes.startp = _startpos_self_;
            MenhirLib.EngineTypes.endp = _endpos_self_;
            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 = _menhir_s;
                  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 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let self : (string Asttypes.loc option) = Obj.magic self in
        let _4 : (Parsetree.class_expr) = Obj.magic _4 in
        let _1_inlined1 : (Parsetree.attributes) = 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_inlined2_ in
        let _v : (Parsetree.class_field) = let _6 =
          let _1 = _1_inlined2 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 2996 "parsing/parser.ml"
          
        in
        let _endpos__6_ = _endpos__1_inlined2_ in
        let _3 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 3005 "parsing/parser.ml"
          
        in
        let _2 = 
# 3964 "parsing/parser.mly"
                                                ( Fresh )
# 3011 "parsing/parser.ml"
         in
        let _endpos = _endpos__6_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2040 "parsing/parser.mly"
      ( let docs = symbol_docs _sloc in
        mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs )
# 3020 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = self;
            MenhirLib.EngineTypes.startp = _startpos_self_;
            MenhirLib.EngineTypes.endp = _endpos_self_;
            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 = _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_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let self : (string Asttypes.loc option) = Obj.magic self in
        let _4 : (Parsetree.class_expr) = Obj.magic _4 in
        let _1_inlined2 : (Parsetree.attributes) = 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__1_inlined3_ in
        let _v : (Parsetree.class_field) = let _6 =
          let _1 = _1_inlined3 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 3082 "parsing/parser.ml"
          
        in
        let _endpos__6_ = _endpos__1_inlined3_ in
        let _3 =
          let _1 = _1_inlined2 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 3091 "parsing/parser.ml"
          
        in
        let _2 = 
# 3965 "parsing/parser.mly"
                                                ( Override )
# 3097 "parsing/parser.ml"
         in
        let _endpos = _endpos__6_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2040 "parsing/parser.mly"
      ( let docs = symbol_docs _sloc in
        mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs )
# 3106 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let _2 : ((Asttypes.label Asttypes.loc * Asttypes.mutable_flag *
   Parsetree.class_field_kind) *
  Parsetree.attributes) = 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 : (Parsetree.class_field) = let _3 =
          let _1 = _1_inlined1 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 3149 "parsing/parser.ml"
          
        in
        let _endpos__3_ = _endpos__1_inlined1_ in
        let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2043 "parsing/parser.mly"
      ( let v, attrs = _2 in
        let docs = symbol_docs _sloc in
        mkcf ~loc:_sloc (Pcf_val v) ~attrs:(attrs@_3) ~docs )
# 3161 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let _2 : ((Asttypes.label Asttypes.loc * Asttypes.private_flag *
   Parsetree.class_field_kind) *
  Parsetree.attributes) = 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 : (Parsetree.class_field) = let _3 =
          let _1 = _1_inlined1 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 3204 "parsing/parser.ml"
          
        in
        let _endpos__3_ = _endpos__1_inlined1_ in
        let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2047 "parsing/parser.mly"
      ( let meth, attrs = _2 in
        let docs = symbol_docs _sloc in
        mkcf ~loc:_sloc (Pcf_method meth) ~attrs:(attrs@_3) ~docs )
# 3216 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _3 : (Parsetree.core_type * Parsetree.core_type) = Obj.magic _3 in
        let _1_inlined1 : (Parsetree.attributes) = 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_inlined2_ in
        let _v : (Parsetree.class_field) = let _4 =
          let _1 = _1_inlined2 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 3264 "parsing/parser.ml"
          
        in
        let _endpos__4_ = _endpos__1_inlined2_ in
        let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 3273 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2051 "parsing/parser.mly"
      ( let docs = symbol_docs _sloc in
        mkcf ~loc:_sloc (Pcf_constraint _3) ~attrs:(_2@_4) ~docs )
# 3283 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _3 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined1 : (Parsetree.attributes) = 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_inlined2_ in
        let _v : (Parsetree.class_field) = let _4 =
          let _1 = _1_inlined2 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 3331 "parsing/parser.ml"
          
        in
        let _endpos__4_ = _endpos__1_inlined2_ in
        let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 3340 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2054 "parsing/parser.mly"
      ( let docs = symbol_docs _sloc in
        mkcf ~loc:_sloc (Pcf_initializer _3) ~attrs:(_2@_4) ~docs )
# 3350 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let _1 : (Parsetree.extension) = 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 : (Parsetree.class_field) = let _2 =
          let _1 = _1_inlined1 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 3384 "parsing/parser.ml"
          
        in
        let _endpos__2_ = _endpos__1_inlined1_ in
        let _endpos = _endpos__2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2057 "parsing/parser.mly"
      ( let docs = symbol_docs _sloc in
        mkcf ~loc:_sloc (Pcf_extension _1) ~attrs:_2 ~docs )
# 3395 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.attribute) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.class_field) = let _1 =
          let _1 = 
# 2060 "parsing/parser.mly"
      ( Pcf_attribute _1 )
# 3421 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1011 "parsing/parser.mly"
    ( mkcf ~loc:_sloc _1 )
# 3429 "parsing/parser.ml"
          
        in
        
# 2061 "parsing/parser.mly"
      ( _1 )
# 3435 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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__2_ in
        let _v : (Parsetree.class_expr) = 
# 1955 "parsing/parser.mly"
      ( _2 )
# 3467 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.class_expr) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Parsetree.class_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 : (Parsetree.class_expr) = let _1 =
          let _1 = 
# 1958 "parsing/parser.mly"
        ( Pcl_constraint(_4, _2) )
# 3514 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__4_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1013 "parsing/parser.mly"
    ( mkclass ~loc:_sloc _1 )
# 3523 "parsing/parser.ml"
          
        in
        
# 1961 "parsing/parser.mly"
      ( _1 )
# 3529 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.class_expr) = Obj.magic _2 in
        let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.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 : (Parsetree.class_expr) = let _1 =
          let _1 = 
# 1960 "parsing/parser.mly"
      ( let (l,o,p) = _1 in Pcl_fun(l, o, p, _2) )
# 3562 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1013 "parsing/parser.mly"
    ( mkclass ~loc:_sloc _1 )
# 3571 "parsing/parser.ml"
          
        in
        
# 1961 "parsing/parser.mly"
      ( _1 )
# 3577 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = e;
          MenhirLib.EngineTypes.startp = _startpos_e_;
          MenhirLib.EngineTypes.endp = _endpos_e_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let e : (Parsetree.class_expr) = Obj.magic e in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_e_ in
        let _v : (Parsetree.class_expr) = let _1 =
          let _1 = 
# 2016 "parsing/parser.mly"
      ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) )
# 3617 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos_e_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1013 "parsing/parser.mly"
    ( mkclass ~loc:_sloc _1 )
# 3626 "parsing/parser.ml"
          
        in
        
# 2017 "parsing/parser.mly"
    ( _1 )
# 3632 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = e;
          MenhirLib.EngineTypes.startp = _startpos_e_;
          MenhirLib.EngineTypes.endp = _endpos_e_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let e : (Parsetree.class_expr) = Obj.magic e in
        let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_e_ in
        let _v : (Parsetree.class_expr) = let _1 =
          let _1 = 
# 2016 "parsing/parser.mly"
      ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) )
# 3665 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos_e_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1013 "parsing/parser.mly"
    ( mkclass ~loc:_sloc _1 )
# 3674 "parsing/parser.ml"
          
        in
        
# 2017 "parsing/parser.mly"
    ( _1 )
# 3680 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = 
# 3846 "parsing/parser.mly"
                                      ( _1 )
# 3705 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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__3_ in
        let _v : (Parsetree.pattern) = let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2025 "parsing/parser.mly"
      ( reloc_pat ~loc:_sloc _2 )
# 3747 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Parsetree.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__5_ in
        let _v : (Parsetree.pattern) = let _1 =
          let _1 = 
# 2027 "parsing/parser.mly"
      ( Ppat_constraint(_2, _4) )
# 3801 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 3810 "parsing/parser.ml"
          
        in
        
# 2028 "parsing/parser.mly"
      ( _1 )
# 3816 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.pattern) = let _endpos = _endpos__0_ in
        let _symbolstartpos = _endpos in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2030 "parsing/parser.mly"
      ( ghpat ~loc:_sloc Ppat_any )
# 3837 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.core_type) = 
# 2155 "parsing/parser.mly"
      ( _2 )
# 3876 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.core_type) = let _1 =
          let _1 = 
# 2156 "parsing/parser.mly"
                      ( Ptyp_any )
# 3895 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__0_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _endpos in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 3904 "parsing/parser.ml"
          
        in
        
# 2157 "parsing/parser.mly"
      ( _1 )
# 3910 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _3 : (Parsetree.class_type) = Obj.magic _3 in
        let _1_inlined1 : (Parsetree.attributes) = 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_inlined2_ in
        let _v : (Parsetree.class_type_field) = let _4 =
          let _1 = _1_inlined2 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 3958 "parsing/parser.ml"
          
        in
        let _endpos__4_ = _endpos__1_inlined2_ in
        let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 3967 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2165 "parsing/parser.mly"
      ( let docs = symbol_docs _sloc in
        mkctf ~loc:_sloc (Pctf_inherit _3) ~attrs:(_2@_4) ~docs )
# 3977 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = ty;
            MenhirLib.EngineTypes.startp = _startpos_ty_;
            MenhirLib.EngineTypes.endp = _endpos_ty_;
            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_inlined2;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = flags;
                  MenhirLib.EngineTypes.startp = _startpos_flags_;
                  MenhirLib.EngineTypes.endp = _endpos_flags_;
                  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_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let ty : (Parsetree.core_type) = Obj.magic ty in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 4037 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let flags : (Asttypes.mutable_flag * Asttypes.virtual_flag) = Obj.magic flags in
        let _1_inlined1 : (Parsetree.attributes) = 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_inlined3_ in
        let _v : (Parsetree.class_type_field) = let _4 =
          let _1 = _1_inlined3 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 4050 "parsing/parser.ml"
          
        in
        let _endpos__4_ = _endpos__1_inlined3_ in
        let _3 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let label =
            let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 4060 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 4068 "parsing/parser.ml"
            
          in
          
# 2190 "parsing/parser.mly"
  (
    let mut, virt = flags in
    label, mut, virt, ty
  )
# 4077 "parsing/parser.ml"
          
        in
        let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 4085 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2168 "parsing/parser.mly"
      ( let docs = symbol_docs _sloc in
        mkctf ~loc:_sloc (Pctf_val _3) ~attrs:(_2@_4) ~docs )
# 4095 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_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 = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              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 = _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 _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 4155 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let _3 : (Asttypes.private_flag * Asttypes.virtual_flag) = Obj.magic _3 in
        let _1_inlined1 : (Parsetree.attributes) = 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_inlined4_ in
        let _v : (Parsetree.class_type_field) = let _7 =
          let _1 = _1_inlined4 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 4168 "parsing/parser.ml"
          
        in
        let _endpos__7_ = _endpos__1_inlined4_ in
        let _6 =
          let _1 = _1_inlined3 in
          
# 3435 "parsing/parser.mly"
    ( _1 )
# 4177 "parsing/parser.ml"
          
        in
        let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 4185 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 4193 "parsing/parser.ml"
          
        in
        let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 4201 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__7_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2172 "parsing/parser.mly"
      ( let (p, v) = _3 in
        let docs = symbol_docs _sloc in
        mkctf ~loc:_sloc (Pctf_method (_4, p, v, _6)) ~attrs:(_2@_7) ~docs )
# 4212 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _3 : (Parsetree.core_type * Parsetree.core_type) = Obj.magic _3 in
        let _1_inlined1 : (Parsetree.attributes) = 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_inlined2_ in
        let _v : (Parsetree.class_type_field) = let _4 =
          let _1 = _1_inlined2 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 4260 "parsing/parser.ml"
          
        in
        let _endpos__4_ = _endpos__1_inlined2_ in
        let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 4269 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2176 "parsing/parser.mly"
      ( let docs = symbol_docs _sloc in
        mkctf ~loc:_sloc (Pctf_constraint _3) ~attrs:(_2@_4) ~docs )
# 4279 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let _1 : (Parsetree.extension) = 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 : (Parsetree.class_type_field) = let _2 =
          let _1 = _1_inlined1 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 4313 "parsing/parser.ml"
          
        in
        let _endpos__2_ = _endpos__1_inlined1_ in
        let _endpos = _endpos__2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2179 "parsing/parser.mly"
      ( let docs = symbol_docs _sloc in
        mkctf ~loc:_sloc (Pctf_extension _1) ~attrs:_2 ~docs )
# 4324 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.attribute) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.class_type_field) = let _1 =
          let _1 = 
# 2182 "parsing/parser.mly"
      ( Pctf_attribute _1 )
# 4350 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1009 "parsing/parser.mly"
    ( mkctf ~loc:_sloc _1 )
# 4358 "parsing/parser.ml"
          
        in
        
# 2183 "parsing/parser.mly"
      ( _1 )
# 4364 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.class_type) = let _1 =
          let _1 =
            let cid =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 4395 "parsing/parser.ml"
              
            in
            let tys =
              let tys = 
# 2141 "parsing/parser.mly"
      ( [] )
# 4402 "parsing/parser.ml"
               in
              
# 2147 "parsing/parser.mly"
    ( tys )
# 4407 "parsing/parser.ml"
              
            in
            
# 2124 "parsing/parser.mly"
        ( Pcty_constr (cid, tys) )
# 4413 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1007 "parsing/parser.mly"
    ( mkcty ~loc:_sloc _1 )
# 4422 "parsing/parser.ml"
          
        in
        
# 2127 "parsing/parser.mly"
      ( _1 )
# 4428 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = 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 _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let xs : (Parsetree.core_type list) = Obj.magic xs in
        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 : (Parsetree.class_type) = let _1 =
          let _1 =
            let cid =
              let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 4481 "parsing/parser.ml"
              
            in
            let tys =
              let tys =
                let params =
                  let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 4490 "parsing/parser.ml"
                   in
                  
# 1115 "parsing/parser.mly"
    ( xs )
# 4495 "parsing/parser.ml"
                  
                in
                
# 2143 "parsing/parser.mly"
      ( params )
# 4501 "parsing/parser.ml"
                
              in
              
# 2147 "parsing/parser.mly"
    ( tys )
# 4507 "parsing/parser.ml"
              
            in
            
# 2124 "parsing/parser.mly"
        ( Pcty_constr (cid, tys) )
# 4513 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1007 "parsing/parser.mly"
    ( mkcty ~loc:_sloc _1 )
# 4523 "parsing/parser.ml"
          
        in
        
# 2127 "parsing/parser.mly"
      ( _1 )
# 4529 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (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 : (Parsetree.class_type) = let _1 =
          let _1 = 
# 2126 "parsing/parser.mly"
        ( Pcty_extension _1 )
# 4555 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1007 "parsing/parser.mly"
    ( mkcty ~loc:_sloc _1 )
# 4563 "parsing/parser.ml"
          
        in
        
# 2127 "parsing/parser.mly"
      ( _1 )
# 4569 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xss;
            MenhirLib.EngineTypes.startp = _startpos_xss_;
            MenhirLib.EngineTypes.endp = _endpos_xss_;
            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 : unit = Obj.magic _4 in
        let xss : (Parsetree.class_type_field list list) = Obj.magic xss in
        let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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 : (Parsetree.class_type) = let _3 =
          let _1 = _1_inlined2 in
          let _2 =
            let _1 =
              let _1 = 
# 260 "<standard.mly>"
    ( List.flatten xss )
# 4626 "parsing/parser.ml"
               in
              
# 2161 "parsing/parser.mly"
    ( _1 )
# 4631 "parsing/parser.ml"
              
            in
            let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
            let _endpos = _endpos__1_ in
            let _startpos = _startpos__1_ in
            
# 955 "parsing/parser.mly"
                               ( extra_csig _startpos _endpos _1 )
# 4640 "parsing/parser.ml"
            
          in
          
# 2151 "parsing/parser.mly"
      ( Csig.mk _1 _2 )
# 4646 "parsing/parser.ml"
          
        in
        let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 4654 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2129 "parsing/parser.mly"
      ( mkcty ~loc:_sloc ~attrs:_2 (Pcty_signature _3) )
# 4663 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xss;
            MenhirLib.EngineTypes.startp = _startpos_xss_;
            MenhirLib.EngineTypes.endp = _endpos_xss_;
            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 : unit = Obj.magic _4 in
        let xss : (Parsetree.class_type_field list list) = Obj.magic xss in
        let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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 : (Parsetree.class_type) = let _3 =
          let _1 = _1_inlined2 in
          let _2 =
            let _1 =
              let _1 = 
# 260 "<standard.mly>"
    ( List.flatten xss )
# 4720 "parsing/parser.ml"
               in
              
# 2161 "parsing/parser.mly"
    ( _1 )
# 4725 "parsing/parser.ml"
              
            in
            let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
            let _endpos = _endpos__1_ in
            let _startpos = _startpos__1_ in
            
# 955 "parsing/parser.mly"
                               ( extra_csig _startpos _endpos _1 )
# 4734 "parsing/parser.ml"
            
          in
          
# 2151 "parsing/parser.mly"
      ( Csig.mk _1 _2 )
# 4740 "parsing/parser.ml"
          
        in
        let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 4748 "parsing/parser.ml"
          
        in
        let _loc__4_ = (_startpos__4_, _endpos__4_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 2131 "parsing/parser.mly"
      ( unclosed "object" _loc__1_ "end" _loc__4_ )
# 4756 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attribute) = Obj.magic _2 in
        let _1 : (Parsetree.class_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 : (Parsetree.class_type) = 
# 2133 "parsing/parser.mly"
      ( Cty.attr _1 _2 )
# 4788 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 _7 : (Parsetree.class_type) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__7_ in
        let _v : (Parsetree.class_type) = let _5 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 4853 "parsing/parser.ml"
          
        in
        let _endpos__5_ = _endpos__1_inlined2_ in
        let _4 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 4862 "parsing/parser.ml"
          
        in
        let _3 = 
# 3964 "parsing/parser.mly"
                                                ( Fresh )
# 4868 "parsing/parser.ml"
         in
        let _endpos = _endpos__7_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2135 "parsing/parser.mly"
      ( let loc = (_startpos__2_, _endpos__5_) in
        let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in
        mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) )
# 4878 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
              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 _7 : (Parsetree.class_type) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = 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__7_ in
        let _v : (Parsetree.class_type) = let _5 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 4950 "parsing/parser.ml"
          
        in
        let _endpos__5_ = _endpos__1_inlined3_ in
        let _4 =
          let _1 = _1_inlined2 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 4959 "parsing/parser.ml"
          
        in
        let _3 = 
# 3965 "parsing/parser.mly"
                                                ( Override )
# 4965 "parsing/parser.ml"
         in
        let _endpos = _endpos__7_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2135 "parsing/parser.mly"
      ( let loc = (_startpos__2_, _endpos__5_) in
        let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in
        mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) )
# 4975 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.class_expr) = 
# 1995 "parsing/parser.mly"
      ( _2 )
# 5014 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.class_expr) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1997 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__3_ )
# 5055 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.class_expr) = let _1 =
          let _1 =
            let cid =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 5086 "parsing/parser.ml"
              
            in
            let tys =
              let tys = 
# 2141 "parsing/parser.mly"
      ( [] )
# 5093 "parsing/parser.ml"
               in
              
# 2147 "parsing/parser.mly"
    ( tys )
# 5098 "parsing/parser.ml"
              
            in
            
# 2000 "parsing/parser.mly"
        ( Pcl_constr(cid, tys) )
# 5104 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1013 "parsing/parser.mly"
    ( mkclass ~loc:_sloc _1 )
# 5113 "parsing/parser.ml"
          
        in
        
# 2007 "parsing/parser.mly"
      ( _1 )
# 5119 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = 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 _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let xs : (Parsetree.core_type list) = Obj.magic xs in
        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 : (Parsetree.class_expr) = let _1 =
          let _1 =
            let cid =
              let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 5172 "parsing/parser.ml"
              
            in
            let tys =
              let tys =
                let params =
                  let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 5181 "parsing/parser.ml"
                   in
                  
# 1115 "parsing/parser.mly"
    ( xs )
# 5186 "parsing/parser.ml"
                  
                in
                
# 2143 "parsing/parser.mly"
      ( params )
# 5192 "parsing/parser.ml"
                
              in
              
# 2147 "parsing/parser.mly"
    ( tys )
# 5198 "parsing/parser.ml"
              
            in
            
# 2000 "parsing/parser.mly"
        ( Pcl_constr(cid, tys) )
# 5204 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1013 "parsing/parser.mly"
    ( mkclass ~loc:_sloc _1 )
# 5214 "parsing/parser.ml"
          
        in
        
# 2007 "parsing/parser.mly"
      ( _1 )
# 5220 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xss;
            MenhirLib.EngineTypes.startp = _startpos_xss_;
            MenhirLib.EngineTypes.endp = _endpos_xss_;
            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 : unit = Obj.magic _4 in
        let xss : (Parsetree.class_field list list) = Obj.magic xss in
        let _1_inlined2 : (Parsetree.pattern) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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 : (Parsetree.class_expr) = let _1 =
          let _1 =
            let _3 =
              let _1 = _1_inlined2 in
              let _2 =
                let _1 =
                  let _1 = 
# 260 "<standard.mly>"
    ( List.flatten xss )
# 5279 "parsing/parser.ml"
                   in
                  
# 2034 "parsing/parser.mly"
    ( _1 )
# 5284 "parsing/parser.ml"
                  
                in
                let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
                let _endpos = _endpos__1_ in
                let _startpos = _startpos__1_ in
                
# 954 "parsing/parser.mly"
                               ( extra_cstr _startpos _endpos _1 )
# 5293 "parsing/parser.ml"
                
              in
              
# 2021 "parsing/parser.mly"
       ( Cstr.mk _1 _2 )
# 5299 "parsing/parser.ml"
              
            in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 5307 "parsing/parser.ml"
              
            in
            let _loc__4_ = (_startpos__4_, _endpos__4_) in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2002 "parsing/parser.mly"
        ( unclosed "object" _loc__1_ "end" _loc__4_ )
# 5315 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__4_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1013 "parsing/parser.mly"
    ( mkclass ~loc:_sloc _1 )
# 5325 "parsing/parser.ml"
          
        in
        
# 2007 "parsing/parser.mly"
      ( _1 )
# 5331 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.class_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Parsetree.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 : (Parsetree.class_expr) = let _1 =
          let _1 = 
# 2004 "parsing/parser.mly"
        ( Pcl_constraint(_2, _4) )
# 5385 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1013 "parsing/parser.mly"
    ( mkclass ~loc:_sloc _1 )
# 5394 "parsing/parser.ml"
          
        in
        
# 2007 "parsing/parser.mly"
      ( _1 )
# 5400 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.class_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Parsetree.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 : (Parsetree.class_expr) = let _1 =
          let _1 =
            let _loc__5_ = (_startpos__5_, _endpos__5_) in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2006 "parsing/parser.mly"
        ( unclosed "(" _loc__1_ ")" _loc__5_ )
# 5457 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1013 "parsing/parser.mly"
    ( mkclass ~loc:_sloc _1 )
# 5467 "parsing/parser.ml"
          
        in
        
# 2007 "parsing/parser.mly"
      ( _1 )
# 5473 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xss;
            MenhirLib.EngineTypes.startp = _startpos_xss_;
            MenhirLib.EngineTypes.endp = _endpos_xss_;
            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 : unit = Obj.magic _4 in
        let xss : (Parsetree.class_field list list) = Obj.magic xss in
        let _1_inlined2 : (Parsetree.pattern) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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 : (Parsetree.class_expr) = let _3 =
          let _1 = _1_inlined2 in
          let _2 =
            let _1 =
              let _1 = 
# 260 "<standard.mly>"
    ( List.flatten xss )
# 5530 "parsing/parser.ml"
               in
              
# 2034 "parsing/parser.mly"
    ( _1 )
# 5535 "parsing/parser.ml"
              
            in
            let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
            let _endpos = _endpos__1_ in
            let _startpos = _startpos__1_ in
            
# 954 "parsing/parser.mly"
                               ( extra_cstr _startpos _endpos _1 )
# 5544 "parsing/parser.ml"
            
          in
          
# 2021 "parsing/parser.mly"
       ( Cstr.mk _1 _2 )
# 5550 "parsing/parser.ml"
          
        in
        let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 5558 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2009 "parsing/parser.mly"
    ( mkclass ~loc:_sloc ~attrs:_2 (Pcl_structure _3) )
# 5567 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.class_type) = 
# 2112 "parsing/parser.mly"
      ( _1 )
# 5592 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = codomain;
          MenhirLib.EngineTypes.startp = _startpos_codomain_;
          MenhirLib.EngineTypes.endp = _endpos_codomain_;
          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 = domain;
              MenhirLib.EngineTypes.startp = _startpos_domain_;
              MenhirLib.EngineTypes.endp = _endpos_domain_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = label;
                MenhirLib.EngineTypes.startp = _startpos_label_;
                MenhirLib.EngineTypes.endp = _endpos_label_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let codomain : (Parsetree.class_type) = Obj.magic codomain in
        let _3 : unit = Obj.magic _3 in
        let domain : (Parsetree.core_type) = Obj.magic domain in
        let label : (string) = Obj.magic label in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_label_ in
        let _endpos = _endpos_codomain_ in
        let _v : (Parsetree.class_type) = let _1 =
          let _1 =
            let label = 
# 3498 "parsing/parser.mly"
      ( Optional label )
# 5640 "parsing/parser.ml"
             in
            
# 2118 "parsing/parser.mly"
        ( Pcty_arrow(label, domain, codomain) )
# 5645 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1007 "parsing/parser.mly"
    ( mkcty ~loc:_sloc _1 )
# 5655 "parsing/parser.ml"
          
        in
        
# 2119 "parsing/parser.mly"
      ( _1 )
# 5661 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = codomain;
          MenhirLib.EngineTypes.startp = _startpos_codomain_;
          MenhirLib.EngineTypes.endp = _endpos_codomain_;
          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 = domain;
              MenhirLib.EngineTypes.startp = _startpos_domain_;
              MenhirLib.EngineTypes.endp = _endpos_domain_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = label;
                  MenhirLib.EngineTypes.startp = _startpos_label_;
                  MenhirLib.EngineTypes.endp = _endpos_label_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let codomain : (Parsetree.class_type) = Obj.magic codomain in
        let _3 : unit = Obj.magic _3 in
        let domain : (Parsetree.core_type) = Obj.magic domain in
        let _2 : unit = Obj.magic _2 in
        let label : (
# 778 "parsing/parser.mly"
       (string)
# 5710 "parsing/parser.ml"
        ) = Obj.magic label in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_label_ in
        let _endpos = _endpos_codomain_ in
        let _v : (Parsetree.class_type) = let _1 =
          let _1 =
            let label = 
# 3500 "parsing/parser.mly"
      ( Labelled label )
# 5720 "parsing/parser.ml"
             in
            
# 2118 "parsing/parser.mly"
        ( Pcty_arrow(label, domain, codomain) )
# 5725 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1007 "parsing/parser.mly"
    ( mkcty ~loc:_sloc _1 )
# 5735 "parsing/parser.ml"
          
        in
        
# 2119 "parsing/parser.mly"
      ( _1 )
# 5741 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = codomain;
          MenhirLib.EngineTypes.startp = _startpos_codomain_;
          MenhirLib.EngineTypes.endp = _endpos_codomain_;
          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 = domain;
              MenhirLib.EngineTypes.startp = _startpos_domain_;
              MenhirLib.EngineTypes.endp = _endpos_domain_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let codomain : (Parsetree.class_type) = Obj.magic codomain in
        let _3 : unit = Obj.magic _3 in
        let domain : (Parsetree.core_type) = Obj.magic domain in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_domain_ in
        let _endpos = _endpos_codomain_ in
        let _v : (Parsetree.class_type) = let _1 =
          let _1 =
            let label = 
# 3502 "parsing/parser.mly"
      ( Nolabel )
# 5782 "parsing/parser.ml"
             in
            
# 2118 "parsing/parser.mly"
        ( Pcty_arrow(label, domain, codomain) )
# 5787 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_domain_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1007 "parsing/parser.mly"
    ( mkcty ~loc:_sloc _1 )
# 5797 "parsing/parser.ml"
          
        in
        
# 2119 "parsing/parser.mly"
      ( _1 )
# 5803 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = bs;
          MenhirLib.EngineTypes.startp = _startpos_bs_;
          MenhirLib.EngineTypes.endp = _endpos_bs_;
          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 = csig;
              MenhirLib.EngineTypes.startp = _startpos_csig_;
              MenhirLib.EngineTypes.endp = _endpos_csig_;
              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 = _1_inlined2;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                  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 = virt;
                      MenhirLib.EngineTypes.startp = _startpos_virt_;
                      MenhirLib.EngineTypes.endp = _endpos_virt_;
                      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 = ext;
                          MenhirLib.EngineTypes.startp = _startpos_ext_;
                          MenhirLib.EngineTypes.endp = _endpos_ext_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _;
                            MenhirLib.EngineTypes.semv = _2;
                            MenhirLib.EngineTypes.startp = _startpos__2_;
                            MenhirLib.EngineTypes.endp = _endpos__2_;
                            MenhirLib.EngineTypes.next = {
                              MenhirLib.EngineTypes.state = _menhir_s;
                              MenhirLib.EngineTypes.semv = _1;
                              MenhirLib.EngineTypes.startp = _startpos__1_;
                              MenhirLib.EngineTypes.endp = _endpos__1_;
                              MenhirLib.EngineTypes.next = _menhir_stack;
                            };
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let bs : (Parsetree.class_type_declaration list) = Obj.magic bs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let csig : (Parsetree.class_type) = Obj.magic csig in
        let _8 : unit = Obj.magic _8 in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 5888 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let virt : (Asttypes.virtual_flag) = Obj.magic virt in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext 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_bs_ in
        let _v : (string Asttypes.loc option * Parsetree.class_type_declaration list) = let _1 =
          let a =
            let attrs2 =
              let _1 = _1_inlined3 in
              
# 4058 "parsing/parser.mly"
    ( _1 )
# 5906 "parsing/parser.ml"
              
            in
            let _endpos_attrs2_ = _endpos__1_inlined3_ in
            let id =
              let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 5918 "parsing/parser.ml"
              
            in
            let attrs1 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 5926 "parsing/parser.ml"
              
            in
            let _endpos = _endpos_attrs2_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2257 "parsing/parser.mly"
    (
      let attrs = attrs1 @ attrs2 in
      let loc = make_loc _sloc in
      let docs = symbol_docs _sloc in
      ext,
      Ci.mk id csig ~virt ~params ~attrs ~loc ~docs
    )
# 5941 "parsing/parser.ml"
            
          in
          
# 1212 "parsing/parser.mly"
    ( let (x, b) = a in x, b :: bs )
# 5947 "parsing/parser.ml"
          
        in
        
# 2245 "parsing/parser.mly"
    ( _1 )
# 5953 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = 
# 3843 "parsing/parser.mly"
                                           ( _1 )
# 5978 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 764 "parsing/parser.mly"
       (string * char option)
# 5999 "parsing/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 : (Parsetree.constant) = 
# 3726 "parsing/parser.mly"
                 ( let (n, m) = _1 in Pconst_integer (n, m) )
# 6007 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 723 "parsing/parser.mly"
       (char)
# 6028 "parsing/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 : (Parsetree.constant) = 
# 3727 "parsing/parser.mly"
                 ( Pconst_char _1 )
# 6036 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 816 "parsing/parser.mly"
       (string * Location.t * string option)
# 6057 "parsing/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 : (Parsetree.constant) = 
# 3728 "parsing/parser.mly"
                 ( let (s, strloc, d) = _1 in Pconst_string (s, strloc, d) )
# 6065 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 743 "parsing/parser.mly"
       (string * char option)
# 6086 "parsing/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 : (Parsetree.constant) = 
# 3729 "parsing/parser.mly"
                 ( let (f, m) = _1 in Pconst_float (f, m) )
# 6094 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.label) = 
# 3800 "parsing/parser.mly"
                                                ( "[]" )
# 6126 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.label) = 
# 3801 "parsing/parser.mly"
                                                ( "()" )
# 6158 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = 
# 3802 "parsing/parser.mly"
                                                ( "false" )
# 6183 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = 
# 3803 "parsing/parser.mly"
                                                ( "true" )
# 6208 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 829 "parsing/parser.mly"
       (string)
# 6229 "parsing/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 : (Asttypes.label) = 
# 3806 "parsing/parser.mly"
                                                ( _1 )
# 6237 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Asttypes.label) = let _1 = 
# 3797 "parsing/parser.mly"
                                                ( "::" )
# 6276 "parsing/parser.ml"
         in
        
# 3807 "parsing/parser.mly"
                                                ( _1 )
# 6281 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Asttypes.label) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Asttypes.label) = 
# 3808 "parsing/parser.mly"
                                                ( _1 )
# 6306 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = 
# 3811 "parsing/parser.mly"
                                         ( _1 )
# 6331 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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_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 : unit = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Longident.t) = let _3 = 
# 3797 "parsing/parser.mly"
                                                ( "::" )
# 6384 "parsing/parser.ml"
         in
        
# 3812 "parsing/parser.mly"
                                         ( Ldot(_1,_3) )
# 6389 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Longident.t) = let _1 = 
# 3797 "parsing/parser.mly"
                                                ( "::" )
# 6428 "parsing/parser.ml"
         in
        
# 3813 "parsing/parser.mly"
                                         ( Lident _1 )
# 6433 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Asttypes.label) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = 
# 3814 "parsing/parser.mly"
                                         ( Lident _1 )
# 6458 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.core_type * Parsetree.core_type) = 
# 2201 "parsing/parser.mly"
    ( _1, _3 )
# 6497 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (Parsetree.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 : (Parsetree.constructor_arguments) = let tys =
          let xs =
            let xs = 
# 1099 "parsing/parser.mly"
    ( [ x ] )
# 6524 "parsing/parser.ml"
             in
            
# 253 "<standard.mly>"
    ( List.rev xs )
# 6529 "parsing/parser.ml"
            
          in
          
# 1119 "parsing/parser.mly"
    ( xs )
# 6535 "parsing/parser.ml"
          
        in
        
# 3301 "parsing/parser.mly"
      ( Pcstr_tuple tys )
# 6541 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Parsetree.core_type) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let xs : (Parsetree.core_type list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_x_ in
        let _v : (Parsetree.constructor_arguments) = let tys =
          let xs =
            let xs = 
# 1103 "parsing/parser.mly"
    ( x :: xs )
# 6582 "parsing/parser.ml"
             in
            
# 253 "<standard.mly>"
    ( List.rev xs )
# 6587 "parsing/parser.ml"
            
          in
          
# 1119 "parsing/parser.mly"
    ( xs )
# 6593 "parsing/parser.ml"
          
        in
        
# 3301 "parsing/parser.mly"
      ( Pcstr_tuple tys )
# 6599 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.label_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__3_ in
        let _v : (Parsetree.constructor_arguments) = 
# 3303 "parsing/parser.mly"
      ( Pcstr_record _2 )
# 6638 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Parsetree.constructor_declaration list) = 
# 3217 "parsing/parser.mly"
      ( [] )
# 6663 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let xs : (Parsetree.constructor_declaration list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.constructor_declaration list) = let cs = 
# 1204 "parsing/parser.mly"
    ( List.rev xs )
# 6688 "parsing/parser.ml"
         in
        
# 3219 "parsing/parser.mly"
      ( cs )
# 6693 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.core_type) = let _1 = 
# 3460 "parsing/parser.mly"
    ( _1 )
# 6718 "parsing/parser.ml"
         in
        
# 3450 "parsing/parser.mly"
      ( _1 )
# 6723 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attribute) = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.core_type) = 
# 3452 "parsing/parser.mly"
      ( Typ.attr _1 _2 )
# 6755 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.core_type) = 
# 3600 "parsing/parser.mly"
    ( _1 )
# 6780 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.core_type) = 
# 3600 "parsing/parser.mly"
    ( _1 )
# 6805 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.core_type) = 
# 3600 "parsing/parser.mly"
    ( _1 )
# 6830 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = type_;
            MenhirLib.EngineTypes.startp = _startpos_type__;
            MenhirLib.EngineTypes.endp = _endpos_type__;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_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 type_ : (Parsetree.core_type) = Obj.magic type_ in
        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 : (Parsetree.core_type) = 
# 3553 "parsing/parser.mly"
      ( type_ )
# 6869 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 _5 : unit = Obj.magic _5 in
        let _1_inlined3 : (Parsetree.module_type) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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__5_ in
        let _v : (Parsetree.core_type) = let package_type =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3646 "parsing/parser.mly"
      ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
        let descr = Ptyp_package (lid, cstrs) in
        mktyp ~loc:_sloc ~attrs descr )
# 6936 "parsing/parser.ml"
          
        in
        let attrs =
          let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
          let _2 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 6946 "parsing/parser.ml"
            
          in
          
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 6952 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3555 "parsing/parser.mly"
      ( wrap_typ_attrs ~loc:_sloc (reloc_typ ~loc:_sloc package_type) attrs )
# 6961 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = field;
            MenhirLib.EngineTypes.startp = _startpos_field_;
            MenhirLib.EngineTypes.endp = _endpos_field_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_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 field : (Parsetree.row_field) = Obj.magic field in
        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 : (Parsetree.core_type) = let _1 =
          let _1 = 
# 3558 "parsing/parser.mly"
        ( Ptyp_variant([ field ], Closed, None) )
# 7001 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 7010 "parsing/parser.ml"
          
        in
        
# 3575 "parsing/parser.mly"
  ( _1 )
# 7016 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = 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 _4 : unit = Obj.magic _4 in
        let xs : (Parsetree.row_field list) = Obj.magic xs 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 : (Parsetree.core_type) = let _1 =
          let _1 =
            let fields =
              let _1 =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 7066 "parsing/parser.ml"
                 in
                
# 1115 "parsing/parser.mly"
    ( xs )
# 7071 "parsing/parser.ml"
                
              in
              
# 3652 "parsing/parser.mly"
    ( _1 )
# 7077 "parsing/parser.ml"
              
            in
            
# 3560 "parsing/parser.mly"
        ( Ptyp_variant(fields, Closed, None) )
# 7083 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__4_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 7093 "parsing/parser.ml"
          
        in
        
# 3575 "parsing/parser.mly"
  ( _1 )
# 7099 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = 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 = field;
                MenhirLib.EngineTypes.startp = _startpos_field_;
                MenhirLib.EngineTypes.endp = _endpos_field_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_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 xs : (Parsetree.row_field list) = Obj.magic xs in
        let _3 : unit = Obj.magic _3 in
        let field : (Parsetree.row_field) = Obj.magic field in
        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 : (Parsetree.core_type) = let _1 =
          let _1 =
            let fields =
              let _1 =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 7156 "parsing/parser.ml"
                 in
                
# 1115 "parsing/parser.mly"
    ( xs )
# 7161 "parsing/parser.ml"
                
              in
              
# 3652 "parsing/parser.mly"
    ( _1 )
# 7167 "parsing/parser.ml"
              
            in
            
# 3562 "parsing/parser.mly"
        ( Ptyp_variant(field :: fields, Closed, None) )
# 7173 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 7183 "parsing/parser.ml"
          
        in
        
# 3575 "parsing/parser.mly"
  ( _1 )
# 7189 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = 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 _4 : unit = Obj.magic _4 in
        let xs : (Parsetree.row_field list) = Obj.magic xs 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__4_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 =
            let fields =
              let _1 =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 7239 "parsing/parser.ml"
                 in
                
# 1115 "parsing/parser.mly"
    ( xs )
# 7244 "parsing/parser.ml"
                
              in
              
# 3652 "parsing/parser.mly"
    ( _1 )
# 7250 "parsing/parser.ml"
              
            in
            
# 3564 "parsing/parser.mly"
        ( Ptyp_variant(fields, Open, None) )
# 7256 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__4_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 7266 "parsing/parser.ml"
          
        in
        
# 3575 "parsing/parser.mly"
  ( _1 )
# 7272 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.core_type) = let _1 =
          let _1 = 
# 3566 "parsing/parser.mly"
        ( Ptyp_variant([], Open, None) )
# 7305 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 7314 "parsing/parser.ml"
          
        in
        
# 3575 "parsing/parser.mly"
  ( _1 )
# 7320 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = 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 _4 : unit = Obj.magic _4 in
        let xs : (Parsetree.row_field list) = Obj.magic xs 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__4_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 =
            let fields =
              let _1 =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 7370 "parsing/parser.ml"
                 in
                
# 1115 "parsing/parser.mly"
    ( xs )
# 7375 "parsing/parser.ml"
                
              in
              
# 3652 "parsing/parser.mly"
    ( _1 )
# 7381 "parsing/parser.ml"
              
            in
            
# 3568 "parsing/parser.mly"
        ( Ptyp_variant(fields, Closed, Some []) )
# 7387 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__4_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 7397 "parsing/parser.ml"
          
        in
        
# 3575 "parsing/parser.mly"
  ( _1 )
# 7403 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs_inlined1;
            MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos_xs_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 = 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 _6 : unit = Obj.magic _6 in
        let xs_inlined1 : (Asttypes.label list) = Obj.magic xs_inlined1 in
        let _4 : unit = Obj.magic _4 in
        let xs : (Parsetree.row_field list) = Obj.magic xs 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__6_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 =
            let tags =
              let xs = xs_inlined1 in
              let _1 =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 7468 "parsing/parser.ml"
                 in
                
# 1062 "parsing/parser.mly"
    ( xs )
# 7473 "parsing/parser.ml"
                
              in
              
# 3680 "parsing/parser.mly"
    ( _1 )
# 7479 "parsing/parser.ml"
              
            in
            let fields =
              let _1 =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 7487 "parsing/parser.ml"
                 in
                
# 1115 "parsing/parser.mly"
    ( xs )
# 7492 "parsing/parser.ml"
                
              in
              
# 3652 "parsing/parser.mly"
    ( _1 )
# 7498 "parsing/parser.ml"
              
            in
            
# 3573 "parsing/parser.mly"
        ( Ptyp_variant(fields, Closed, Some tags) )
# 7504 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__6_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 7514 "parsing/parser.ml"
          
        in
        
# 3575 "parsing/parser.mly"
  ( _1 )
# 7520 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.direction_flag) = 
# 3909 "parsing/parser.mly"
                                                ( Upto )
# 7545 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.direction_flag) = 
# 3910 "parsing/parser.mly"
                                                ( Downto )
# 7570 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 Asttypes.loc option) = 
# 4065 "parsing/parser.mly"
                  ( None )
# 7588 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Ast_helper.str) = 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 Asttypes.loc option) = 
# 4066 "parsing/parser.mly"
                    ( Some _2 )
# 7620 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.payload) = Obj.magic _3 in
        let _2 : (Ast_helper.str) = 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 : (Parsetree.extension) = 
# 4078 "parsing/parser.mly"
                                             ( (_2, _3) )
# 7666 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 818 "parsing/parser.mly"
       (string * Location.t * string * Location.t * string option)
# 7687 "parsing/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 : (Parsetree.extension) = let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 4080 "parsing/parser.mly"
    ( mk_quotedext ~loc:_sloc _1 )
# 7698 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          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 = _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 _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined1 : (Asttypes.label) = 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_inlined3_ in
        let _v : (Parsetree.extension_constructor) = let attrs =
          let _1 = _1_inlined3 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 7753 "parsing/parser.ml"
          
        in
        let _endpos_attrs_ = _endpos__1_inlined3_ in
        let lid =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 7765 "parsing/parser.ml"
          
        in
        let cid =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 7776 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_attrs_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3370 "parsing/parser.mly"
      ( let info = symbol_info _endpos in
        Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info )
# 7786 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
              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 _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in
        let _3 : unit = Obj.magic _3 in
        let _1 : (Asttypes.label) = 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 : (Parsetree.extension_constructor) = let attrs =
          let _1 = _1_inlined2 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 7834 "parsing/parser.ml"
          
        in
        let _endpos_attrs_ = _endpos__1_inlined2_ in
        let lid =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 7846 "parsing/parser.ml"
          
        in
        let cid =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 7856 "parsing/parser.ml"
          
        in
        let _startpos_cid_ = _startpos__1_ in
        let _1 = 
# 3883 "parsing/parser.mly"
    ( () )
# 7863 "parsing/parser.ml"
         in
        let _endpos = _endpos_attrs_ in
        let _symbolstartpos = _startpos_cid_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3370 "parsing/parser.mly"
      ( let info = symbol_info _endpos in
        Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info )
# 7872 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = ext;
          MenhirLib.EngineTypes.startp = _startpos_ext_;
          MenhirLib.EngineTypes.endp = _endpos_ext_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let ext : (Parsetree.extension) = Obj.magic ext in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_ext_ in
        let _endpos = _endpos_ext_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 = 
# 3591 "parsing/parser.mly"
        ( Ptyp_extension ext )
# 7898 "parsing/parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos_ext_, _startpos_ext_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 7907 "parsing/parser.ml"
          
        in
        
# 3593 "parsing/parser.mly"
  ( _1 )
# 7913 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.payload) = Obj.magic _3 in
        let _2 : (Ast_helper.str) = 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 : (Parsetree.attribute) = let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 4053 "parsing/parser.mly"
    ( mark_symbol_docs _sloc;
      mk_attr ~loc:(make_loc _sloc) _2 _3 )
# 7963 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let params = 
# 2141 "parsing/parser.mly"
      ( [] )
# 7981 "parsing/parser.ml"
         in
        
# 1966 "parsing/parser.mly"
    ( params )
# 7986 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = 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 _3 : unit = Obj.magic _3 in
        let xs : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic xs in
        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 : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let params =
          let params =
            let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 8027 "parsing/parser.ml"
             in
            
# 1115 "parsing/parser.mly"
    ( xs )
# 8032 "parsing/parser.ml"
            
          in
          
# 2143 "parsing/parser.mly"
      ( params )
# 8038 "parsing/parser.ml"
          
        in
        
# 1966 "parsing/parser.mly"
    ( params )
# 8044 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_xs_ in
        let _v : (Parsetree.function_body) = let _3 =
          let xs =
            let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 8092 "parsing/parser.ml"
             in
            
# 1176 "parsing/parser.mly"
    ( xs )
# 8097 "parsing/parser.ml"
            
          in
          
# 2756 "parsing/parser.mly"
    ( xs )
# 8103 "parsing/parser.ml"
          
        in
        let _endpos__3_ = _endpos_xs_ in
        let _2 =
          let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
          let _2 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 8114 "parsing/parser.ml"
            
          in
          
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 8120 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2742 "parsing/parser.mly"
      ( let ext, attrs = _2 in
        match ext with
        | None -> Pfunction_cases (_3, make_loc _sloc, attrs)
        | Some _ ->
          (* function%foo extension nodes interrupt the arity *)
            let cases = Pfunction_cases (_3, make_loc _sloc, []) in
            Pfunction_body
              (mkexp_attrs ~loc:_sloc (mkfunction [] None cases) _2)
      )
# 8137 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.function_body) = 
# 2752 "parsing/parser.mly"
      ( Pfunction_body _1 )
# 8162 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.expression) = 
# 2399 "parsing/parser.mly"
      ( _1 )
# 8187 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
                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 _7 : (Parsetree.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Parsetree.module_expr) = Obj.magic _5 in
        let _1_inlined3 : (string option) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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__7_ in
        let _v : (Parsetree.expression) = let _1 =
          let _4 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 8267 "parsing/parser.ml"
            
          in
          let _3 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 8277 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 8283 "parsing/parser.ml"
            
          in
          
# 2435 "parsing/parser.mly"
      ( Pexp_letmodule(_4, _5, _7), _3 )
# 8289 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__7_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 8300 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_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 = _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 _6 : (Parsetree.expression) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _2_inlined1 : (Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option) = Obj.magic _2_inlined1 in
        let _1_inlined3 : (Asttypes.label) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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__6_ in
        let _v : (Parsetree.expression) = let _1 =
          let _4 =
            let (_endpos__1_inlined1_, _endpos__1_, _startpos__1_, _1_inlined1, _2, _1) = (_endpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined4, _2_inlined1, _1_inlined3) in
            let _3 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 8387 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos__1_inlined1_ in
            let _1 =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 8398 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 3281 "parsing/parser.mly"
      ( let vars, args, res = _2 in
        Te.decl _1 ~vars ~args ?res ~attrs:_3 ~loc:(make_loc _sloc) )
# 8408 "parsing/parser.ml"
            
          in
          let _3 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 8418 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 8424 "parsing/parser.ml"
            
          in
          
# 2437 "parsing/parser.mly"
      ( Pexp_letexception(_4, _6), _3 )
# 8430 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__6_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 8441 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_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 _7 : (Parsetree.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Parsetree.module_expr) = Obj.magic _5 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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__7_ in
        let _v : (Parsetree.expression) = let _1 =
          let _4 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 8513 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 8519 "parsing/parser.ml"
            
          in
          let _3 = 
# 3964 "parsing/parser.mly"
                                                ( Fresh )
# 8525 "parsing/parser.ml"
           in
          
# 2439 "parsing/parser.mly"
      ( let open_loc = make_loc (_startpos__2_, _endpos__5_) in
        let od = Opn.mk _5 ~override:_3 ~loc:open_loc in
        Pexp_open(od, _7), _4 )
# 8532 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__7_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 8543 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
                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 _7 : (Parsetree.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Parsetree.module_expr) = Obj.magic _5 in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = 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__7_ in
        let _v : (Parsetree.expression) = let _1 =
          let _4 =
            let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 8622 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 8628 "parsing/parser.ml"
            
          in
          let _3 = 
# 3965 "parsing/parser.mly"
                                                ( Override )
# 8634 "parsing/parser.ml"
           in
          
# 2439 "parsing/parser.mly"
      ( let open_loc = make_loc (_startpos__2_, _endpos__5_) in
        let od = Opn.mk _5 ~override:_3 ~loc:open_loc in
        Pexp_open(od, _7), _4 )
# 8641 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__7_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 8652 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 _6 : (Parsetree.function_body) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Parsetree.core_type option) = Obj.magic _4 in
        let _3 : (Parsetree.function_param list) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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__6_ in
        let _v : (Parsetree.expression) = let _1 =
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 8724 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 8730 "parsing/parser.ml"
            
          in
          
# 2445 "parsing/parser.mly"
      ( let body_constraint = Option.map (fun x -> Pconstraint x) _4 in
        mkfunction _3 body_constraint _6, _2
      )
# 8738 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__6_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 8749 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 xs : (Parsetree.case list) = Obj.magic xs in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _5 =
            let xs =
              let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 8812 "parsing/parser.ml"
               in
              
# 1176 "parsing/parser.mly"
    ( xs )
# 8817 "parsing/parser.ml"
              
            in
            
# 2756 "parsing/parser.mly"
    ( xs )
# 8823 "parsing/parser.ml"
            
          in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 8833 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 8839 "parsing/parser.ml"
            
          in
          
# 2449 "parsing/parser.mly"
      ( Pexp_match(_3, _5), _2 )
# 8845 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos_xs_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 8856 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 xs : (Parsetree.case list) = Obj.magic xs in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _5 =
            let xs =
              let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 8919 "parsing/parser.ml"
               in
              
# 1176 "parsing/parser.mly"
    ( xs )
# 8924 "parsing/parser.ml"
              
            in
            
# 2756 "parsing/parser.mly"
    ( xs )
# 8930 "parsing/parser.ml"
            
          in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 8940 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 8946 "parsing/parser.ml"
            
          in
          
# 2451 "parsing/parser.mly"
      ( Pexp_try(_3, _5), _2 )
# 8952 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos_xs_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 8963 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 _5 : unit = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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__5_ in
        let _v : (Parsetree.expression) = let _1 =
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 9028 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 9034 "parsing/parser.ml"
            
          in
          
# 2453 "parsing/parser.mly"
      ( syntax_error() )
# 9040 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__5_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 9051 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined4;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined4_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined4_;
          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 = _1_inlined3;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
              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_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_inlined4 : (Parsetree.expression) = Obj.magic _1_inlined4 in
        let _6 : unit = Obj.magic _6 in
        let _1_inlined3 : (Parsetree.expression) = Obj.magic _1_inlined3 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_inlined4_ in
        let _v : (Parsetree.expression) = let _1 =
          let _7 =
            let _1 = _1_inlined4 in
            let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 9128 "parsing/parser.ml"
             in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 9133 "parsing/parser.ml"
            
          in
          let _5 =
            let _1 = _1_inlined3 in
            let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 9141 "parsing/parser.ml"
             in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 9146 "parsing/parser.ml"
            
          in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 9156 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 9162 "parsing/parser.ml"
            
          in
          
# 2455 "parsing/parser.mly"
      ( Pexp_ifthenelse(_3, _5, Some _7), _2 )
# 9168 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__1_inlined4_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 9179 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined6;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined6_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined6_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined5;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined5_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined5_;
              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 = _6;
                  MenhirLib.EngineTypes.startp = _startpos__6_;
                  MenhirLib.EngineTypes.endp = _endpos__6_;
                  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 = _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_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 xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined6 : (Parsetree.attributes) = Obj.magic _1_inlined6 in
        let _1_inlined5 : (string Asttypes.loc option) = Obj.magic _1_inlined5 in
        let _1_inlined4 : unit = Obj.magic _1_inlined4 in
        let _6 : unit = Obj.magic _6 in
        let _1_inlined3 : (Parsetree.expression) = Obj.magic _1_inlined3 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _7 =
            let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined4_, _1_inlined6, _1_inlined5) in
            let _1 =
              let _3 =
                let xs =
                  let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 9280 "parsing/parser.ml"
                   in
                  
# 1176 "parsing/parser.mly"
    ( xs )
# 9285 "parsing/parser.ml"
                  
                in
                
# 2756 "parsing/parser.mly"
    ( xs )
# 9291 "parsing/parser.ml"
                
              in
              let _endpos__3_ = _endpos_xs_ in
              let _2 =
                let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                let _2 =
                  let _1 = _1_inlined1 in
                  
# 4062 "parsing/parser.mly"
    ( _1 )
# 9302 "parsing/parser.ml"
                  
                in
                
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 9308 "parsing/parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 9328 "parsing/parser.ml"
              
            in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 9334 "parsing/parser.ml"
            
          in
          let _5 =
            let _1 = _1_inlined3 in
            let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 9342 "parsing/parser.ml"
             in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 9347 "parsing/parser.ml"
            
          in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 9357 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 9363 "parsing/parser.ml"
            
          in
          
# 2455 "parsing/parser.mly"
      ( Pexp_ifthenelse(_3, _5, Some _7), _2 )
# 9369 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos_xs_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 9380 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined6;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined6_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined6_;
          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 = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined5;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined5_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined5_;
                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 = _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_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_inlined6 : (Parsetree.expression) = Obj.magic _1_inlined6 in
        let _6 : unit = Obj.magic _6 in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in
        let _1_inlined4 : (string Asttypes.loc option) = Obj.magic _1_inlined4 in
        let _1_inlined3 : unit = Obj.magic _1_inlined3 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_inlined6_ in
        let _v : (Parsetree.expression) = let _1 =
          let _7 =
            let _1 = _1_inlined6 in
            let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 9478 "parsing/parser.ml"
             in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 9483 "parsing/parser.ml"
            
          in
          let _5 =
            let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in
            let _1 =
              let _3 =
                let xs =
                  let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 9494 "parsing/parser.ml"
                   in
                  
# 1176 "parsing/parser.mly"
    ( xs )
# 9499 "parsing/parser.ml"
                  
                in
                
# 2756 "parsing/parser.mly"
    ( xs )
# 9505 "parsing/parser.ml"
                
              in
              let _endpos__3_ = _endpos_xs_ in
              let _2 =
                let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                let _2 =
                  let _1 = _1_inlined1 in
                  
# 4062 "parsing/parser.mly"
    ( _1 )
# 9516 "parsing/parser.ml"
                  
                in
                
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 9522 "parsing/parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 9542 "parsing/parser.ml"
              
            in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 9548 "parsing/parser.ml"
            
          in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 9558 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 9564 "parsing/parser.ml"
            
          in
          
# 2455 "parsing/parser.mly"
      ( Pexp_ifthenelse(_3, _5, Some _7), _2 )
# 9570 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__1_inlined6_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 9581 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined1;
          MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos_xs_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined8;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined8_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined8_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _1_inlined7;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined7_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined7_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _1_inlined6;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined6_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined6_;
                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 = xs;
                    MenhirLib.EngineTypes.startp = _startpos_xs_;
                    MenhirLib.EngineTypes.endp = _endpos_xs_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _1_inlined5;
                      MenhirLib.EngineTypes.startp = _startpos__1_inlined5_;
                      MenhirLib.EngineTypes.endp = _endpos__1_inlined5_;
                      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 = _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_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 xs_inlined1 : (Parsetree.case list) = Obj.magic xs_inlined1 in
        let _1_inlined8 : (Parsetree.attributes) = Obj.magic _1_inlined8 in
        let _1_inlined7 : (string Asttypes.loc option) = Obj.magic _1_inlined7 in
        let _1_inlined6 : unit = Obj.magic _1_inlined6 in
        let _6 : unit = Obj.magic _6 in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in
        let _1_inlined4 : (string Asttypes.loc option) = Obj.magic _1_inlined4 in
        let _1_inlined3 : unit = Obj.magic _1_inlined3 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_xs_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _7 =
            let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined6_, xs_inlined1, _1_inlined8, _1_inlined7) in
            let _1 =
              let _3 =
                let xs =
                  let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 9703 "parsing/parser.ml"
                   in
                  
# 1176 "parsing/parser.mly"
    ( xs )
# 9708 "parsing/parser.ml"
                  
                in
                
# 2756 "parsing/parser.mly"
    ( xs )
# 9714 "parsing/parser.ml"
                
              in
              let _endpos__3_ = _endpos_xs_ in
              let _2 =
                let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                let _2 =
                  let _1 = _1_inlined1 in
                  
# 4062 "parsing/parser.mly"
    ( _1 )
# 9725 "parsing/parser.ml"
                  
                in
                
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 9731 "parsing/parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 9751 "parsing/parser.ml"
              
            in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 9757 "parsing/parser.ml"
            
          in
          let _5 =
            let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in
            let _1 =
              let _3 =
                let xs =
                  let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 9768 "parsing/parser.ml"
                   in
                  
# 1176 "parsing/parser.mly"
    ( xs )
# 9773 "parsing/parser.ml"
                  
                in
                
# 2756 "parsing/parser.mly"
    ( xs )
# 9779 "parsing/parser.ml"
                
              in
              let _endpos__3_ = _endpos_xs_ in
              let _2 =
                let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                let _2 =
                  let _1 = _1_inlined1 in
                  
# 4062 "parsing/parser.mly"
    ( _1 )
# 9790 "parsing/parser.ml"
                  
                in
                
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 9796 "parsing/parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 9816 "parsing/parser.ml"
              
            in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 9822 "parsing/parser.ml"
            
          in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 9832 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 9838 "parsing/parser.ml"
            
          in
          
# 2455 "parsing/parser.mly"
      ( Pexp_ifthenelse(_3, _5, Some _7), _2 )
# 9844 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos_xs_inlined1_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 9855 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          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_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_inlined3 : (Parsetree.expression) = Obj.magic _1_inlined3 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_inlined3_ in
        let _v : (Parsetree.expression) = let _1 =
          let _5 =
            let _1 = _1_inlined3 in
            let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 9918 "parsing/parser.ml"
             in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 9923 "parsing/parser.ml"
            
          in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 9933 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 9939 "parsing/parser.ml"
            
          in
          
# 2457 "parsing/parser.mly"
      ( Pexp_ifthenelse(_3, _5, None), _2 )
# 9945 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__1_inlined3_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 9956 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined5;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined5_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined5_;
            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 = _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_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 xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in
        let _1_inlined4 : (string Asttypes.loc option) = Obj.magic _1_inlined4 in
        let _1_inlined3 : unit = Obj.magic _1_inlined3 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _5 =
            let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined3_, _1_inlined5, _1_inlined4) in
            let _1 =
              let _3 =
                let xs =
                  let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 10043 "parsing/parser.ml"
                   in
                  
# 1176 "parsing/parser.mly"
    ( xs )
# 10048 "parsing/parser.ml"
                  
                in
                
# 2756 "parsing/parser.mly"
    ( xs )
# 10054 "parsing/parser.ml"
                
              in
              let _endpos__3_ = _endpos_xs_ in
              let _2 =
                let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                let _2 =
                  let _1 = _1_inlined1 in
                  
# 4062 "parsing/parser.mly"
    ( _1 )
# 10065 "parsing/parser.ml"
                  
                in
                
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 10071 "parsing/parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 10091 "parsing/parser.ml"
              
            in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 10097 "parsing/parser.ml"
            
          in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 10107 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 10113 "parsing/parser.ml"
            
          in
          
# 2457 "parsing/parser.mly"
      ( Pexp_ifthenelse(_3, _5, None), _2 )
# 10119 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos_xs_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 10130 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.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 = e;
            MenhirLib.EngineTypes.startp = _startpos_e_;
            MenhirLib.EngineTypes.endp = _endpos_e_;
            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 = _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_inlined1 : unit = Obj.magic _3_inlined1 in
        let e : (Parsetree.expression) = Obj.magic e in
        let _1_inlined3 : unit = Obj.magic _1_inlined3 in
        let _3 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _4 = 
# 2470 "parsing/parser.mly"
      ( e )
# 10198 "parsing/parser.ml"
           in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 10207 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 10213 "parsing/parser.ml"
            
          in
          
# 2459 "parsing/parser.mly"
      ( Pexp_while(_3, _4), _2 )
# 10219 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__3_inlined1_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 10230 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.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 = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            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 = _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_inlined1 : unit = Obj.magic _3_inlined1 in
        let _2 : (Parsetree.expression) = Obj.magic _2 in
        let _1_inlined3 : unit = Obj.magic _1_inlined3 in
        let _3 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _4 =
            let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos__1_inlined3_) in
            let _loc__2_ = (_startpos__2_, _endpos__2_) in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2472 "parsing/parser.mly"
      ( unclosed "do" _loc__1_ "done" _loc__2_ )
# 10302 "parsing/parser.ml"
            
          in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 10312 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 10318 "parsing/parser.ml"
            
          in
          
# 2459 "parsing/parser.mly"
      ( Pexp_while(_3, _4), _2 )
# 10324 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__3_inlined1_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 10335 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.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 = e;
            MenhirLib.EngineTypes.startp = _startpos_e_;
            MenhirLib.EngineTypes.endp = _endpos_e_;
            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 = _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_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_inlined1 : unit = Obj.magic _3_inlined1 in
        let e : (Parsetree.expression) = Obj.magic e in
        let _1_inlined3 : unit = Obj.magic _1_inlined3 in
        let _7 : (Parsetree.expression) = Obj.magic _7 in
        let _6 : (Asttypes.direction_flag) = Obj.magic _6 in
        let _5 : (Parsetree.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Parsetree.pattern) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _8 = 
# 2470 "parsing/parser.mly"
      ( e )
# 10431 "parsing/parser.ml"
           in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 10440 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 10446 "parsing/parser.ml"
            
          in
          
# 2462 "parsing/parser.mly"
      ( Pexp_for(_3, _5, _7, _6, _8), _2 )
# 10452 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__3_inlined1_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 10463 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.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 = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            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 = _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_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_inlined1 : unit = Obj.magic _3_inlined1 in
        let _2 : (Parsetree.expression) = Obj.magic _2 in
        let _1_inlined3 : unit = Obj.magic _1_inlined3 in
        let _7 : (Parsetree.expression) = Obj.magic _7 in
        let _6 : (Asttypes.direction_flag) = Obj.magic _6 in
        let _5 : (Parsetree.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Parsetree.pattern) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _8 =
            let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos__1_inlined3_) in
            let _loc__2_ = (_startpos__2_, _endpos__2_) in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2472 "parsing/parser.mly"
      ( unclosed "do" _loc__1_ "done" _loc__2_ )
# 10563 "parsing/parser.ml"
            
          in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 10573 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 10579 "parsing/parser.ml"
            
          in
          
# 2462 "parsing/parser.mly"
      ( Pexp_for(_3, _5, _7, _6, _8), _2 )
# 10585 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__3_inlined1_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 10596 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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 : (Parsetree.expression) = let _1 =
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 10647 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 10653 "parsing/parser.ml"
            
          in
          
# 2464 "parsing/parser.mly"
      ( Pexp_assert _3, _2 )
# 10659 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__3_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 10670 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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 : (Parsetree.expression) = let _1 =
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 10721 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 10727 "parsing/parser.ml"
            
          in
          
# 2466 "parsing/parser.mly"
      ( Pexp_lazy _3, _2 )
# 10733 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__3_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2401 "parsing/parser.mly"
      ( let desc, attrs = _1 in
        mkexp_attrs ~loc:_sloc desc attrs )
# 10744 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : ((Asttypes.arg_label * Parsetree.expression) list) = Obj.magic xs in
        let _1 : (Parsetree.expression) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _2 =
              let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 10779 "parsing/parser.ml"
               in
              
# 1062 "parsing/parser.mly"
    ( xs )
# 10784 "parsing/parser.ml"
              
            in
            
# 2476 "parsing/parser.mly"
      ( Pexp_apply(_1, _2) )
# 10790 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos_xs_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 10800 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 10806 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let xs : (Parsetree.expression list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let _1 =
              let es =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 10835 "parsing/parser.ml"
                 in
                
# 1143 "parsing/parser.mly"
    ( xs )
# 10840 "parsing/parser.ml"
                
              in
              
# 2791 "parsing/parser.mly"
    ( es )
# 10846 "parsing/parser.ml"
              
            in
            
# 2478 "parsing/parser.mly"
      ( Pexp_tuple(_1) )
# 10852 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 10862 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 10868 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _1 =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 10906 "parsing/parser.ml"
              
            in
            
# 2480 "parsing/parser.mly"
      ( Pexp_construct(_1, Some _2) )
# 10912 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 10922 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 10928 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _2 in
        let _1 : (Asttypes.label) = 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 : (Parsetree.expression) = let _1 =
          let _1 = 
# 2482 "parsing/parser.mly"
      ( Pexp_variant(_1, Some _2) )
# 10961 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 10970 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 10976 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
            MenhirLib.EngineTypes.semv = op;
            MenhirLib.EngineTypes.startp = _startpos_op_;
            MenhirLib.EngineTypes.endp = _endpos_op_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let op : (
# 754 "parsing/parser.mly"
       (string)
# 11010 "parsing/parser.ml"
        ) = Obj.magic op in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 11022 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 11027 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3770 "parsing/parser.mly"
                  ( op )
# 11034 "parsing/parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 11043 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 11049 "parsing/parser.ml"
            
          in
          let _startpos__1_ = _startpos_e1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 11059 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 11065 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = op;
                  MenhirLib.EngineTypes.startp = _startpos_op_;
                  MenhirLib.EngineTypes.endp = _endpos_op_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let op : (
# 754 "parsing/parser.mly"
       (string)
# 11120 "parsing/parser.ml"
        ) = Obj.magic op in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 11135 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 11140 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 11146 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 11157 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 11163 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 11183 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 11189 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3770 "parsing/parser.mly"
                  ( op )
# 11196 "parsing/parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 11205 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 11211 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 11221 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 11227 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
            MenhirLib.EngineTypes.semv = op;
            MenhirLib.EngineTypes.startp = _startpos_op_;
            MenhirLib.EngineTypes.endp = _endpos_op_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let op : (
# 755 "parsing/parser.mly"
       (string)
# 11261 "parsing/parser.ml"
        ) = Obj.magic op in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 11273 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 11278 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3771 "parsing/parser.mly"
                  ( op )
# 11285 "parsing/parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 11294 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 11300 "parsing/parser.ml"
            
          in
          let _startpos__1_ = _startpos_e1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 11310 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 11316 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = op;
                  MenhirLib.EngineTypes.startp = _startpos_op_;
                  MenhirLib.EngineTypes.endp = _endpos_op_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let op : (
# 755 "parsing/parser.mly"
       (string)
# 11371 "parsing/parser.ml"
        ) = Obj.magic op in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 11386 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 11391 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 11397 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 11408 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 11414 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 11434 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 11440 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3771 "parsing/parser.mly"
                  ( op )
# 11447 "parsing/parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 11456 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 11462 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 11472 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 11478 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
            MenhirLib.EngineTypes.semv = op;
            MenhirLib.EngineTypes.startp = _startpos_op_;
            MenhirLib.EngineTypes.endp = _endpos_op_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let op : (
# 756 "parsing/parser.mly"
       (string)
# 11512 "parsing/parser.ml"
        ) = Obj.magic op in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 11524 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 11529 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3772 "parsing/parser.mly"
                  ( op )
# 11536 "parsing/parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 11545 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 11551 "parsing/parser.ml"
            
          in
          let _startpos__1_ = _startpos_e1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 11561 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 11567 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = op;
                  MenhirLib.EngineTypes.startp = _startpos_op_;
                  MenhirLib.EngineTypes.endp = _endpos_op_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let op : (
# 756 "parsing/parser.mly"
       (string)
# 11622 "parsing/parser.ml"
        ) = Obj.magic op in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 11637 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 11642 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 11648 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 11659 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 11665 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 11685 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 11691 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3772 "parsing/parser.mly"
                  ( op )
# 11698 "parsing/parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 11707 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 11713 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 11723 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 11729 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
            MenhirLib.EngineTypes.semv = op;
            MenhirLib.EngineTypes.startp = _startpos_op_;
            MenhirLib.EngineTypes.endp = _endpos_op_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let op : (
# 757 "parsing/parser.mly"
       (string)
# 11763 "parsing/parser.ml"
        ) = Obj.magic op in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 11775 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 11780 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3773 "parsing/parser.mly"
                  ( op )
# 11787 "parsing/parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 11796 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 11802 "parsing/parser.ml"
            
          in
          let _startpos__1_ = _startpos_e1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 11812 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 11818 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = op;
                  MenhirLib.EngineTypes.startp = _startpos_op_;
                  MenhirLib.EngineTypes.endp = _endpos_op_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let op : (
# 757 "parsing/parser.mly"
       (string)
# 11873 "parsing/parser.ml"
        ) = Obj.magic op in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 11888 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 11893 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 11899 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 11910 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 11916 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 11936 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 11942 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3773 "parsing/parser.mly"
                  ( op )
# 11949 "parsing/parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 11958 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 11964 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 11974 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 11980 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
            MenhirLib.EngineTypes.semv = op;
            MenhirLib.EngineTypes.startp = _startpos_op_;
            MenhirLib.EngineTypes.endp = _endpos_op_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let op : (
# 758 "parsing/parser.mly"
       (string)
# 12014 "parsing/parser.ml"
        ) = Obj.magic op in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 12026 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 12031 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3774 "parsing/parser.mly"
                  ( op )
# 12038 "parsing/parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 12047 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 12053 "parsing/parser.ml"
            
          in
          let _startpos__1_ = _startpos_e1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 12063 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 12069 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = op;
                  MenhirLib.EngineTypes.startp = _startpos_op_;
                  MenhirLib.EngineTypes.endp = _endpos_op_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let op : (
# 758 "parsing/parser.mly"
       (string)
# 12124 "parsing/parser.ml"
        ) = Obj.magic op in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 12139 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 12144 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 12150 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 12161 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 12167 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 12187 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 12193 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3774 "parsing/parser.mly"
                  ( op )
# 12200 "parsing/parser.ml"
               in
              let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 12209 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 12215 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 12225 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 12231 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 12274 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 12279 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3775 "parsing/parser.mly"
                   ("+")
# 12286 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 12294 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 12300 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 12310 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 12316 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 12383 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 12388 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 12394 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 12405 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 12411 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 12431 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 12437 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3775 "parsing/parser.mly"
                   ("+")
# 12444 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 12452 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 12458 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 12468 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 12474 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 12517 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 12522 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3776 "parsing/parser.mly"
                  ("+.")
# 12529 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 12537 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 12543 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 12553 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 12559 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 12626 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 12631 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 12637 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 12648 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 12654 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 12674 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 12680 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3776 "parsing/parser.mly"
                  ("+.")
# 12687 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 12695 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 12701 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 12711 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 12717 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 12760 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 12765 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3777 "parsing/parser.mly"
                  ("+=")
# 12772 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 12780 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 12786 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 12796 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 12802 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 12869 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 12874 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 12880 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 12891 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 12897 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 12917 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 12923 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3777 "parsing/parser.mly"
                  ("+=")
# 12930 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 12938 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 12944 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 12954 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 12960 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 13003 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 13008 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3778 "parsing/parser.mly"
                   ("-")
# 13015 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 13023 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 13029 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 13039 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 13045 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 13112 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 13117 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 13123 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 13134 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 13140 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 13160 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 13166 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3778 "parsing/parser.mly"
                   ("-")
# 13173 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 13181 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 13187 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 13197 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 13203 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 13246 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 13251 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3779 "parsing/parser.mly"
                  ("-.")
# 13258 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 13266 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 13272 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 13282 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 13288 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 13355 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 13360 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 13366 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 13377 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 13383 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 13403 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 13409 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3779 "parsing/parser.mly"
                  ("-.")
# 13416 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 13424 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 13430 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 13440 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 13446 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 13489 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 13494 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3780 "parsing/parser.mly"
                   ("*")
# 13501 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 13509 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 13515 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 13525 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 13531 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 13598 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 13603 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 13609 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 13620 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 13626 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 13646 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 13652 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3780 "parsing/parser.mly"
                   ("*")
# 13659 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 13667 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 13673 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 13683 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 13689 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 13732 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 13737 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3781 "parsing/parser.mly"
                   ("%")
# 13744 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 13752 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 13758 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 13768 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 13774 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 13841 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 13846 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 13852 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 13863 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 13869 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 13889 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 13895 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3781 "parsing/parser.mly"
                   ("%")
# 13902 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 13910 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 13916 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 13926 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 13932 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 13975 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 13980 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3782 "parsing/parser.mly"
                   ("=")
# 13987 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 13995 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 14001 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 14011 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 14017 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 14084 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 14089 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 14095 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 14106 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 14112 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 14132 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 14138 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3782 "parsing/parser.mly"
                   ("=")
# 14145 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 14153 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 14159 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 14169 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 14175 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 14218 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 14223 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3783 "parsing/parser.mly"
                   ("<")
# 14230 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 14238 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 14244 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 14254 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 14260 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 14327 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 14332 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 14338 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 14349 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 14355 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 14375 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 14381 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3783 "parsing/parser.mly"
                   ("<")
# 14388 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 14396 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 14402 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 14412 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 14418 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 14461 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 14466 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3784 "parsing/parser.mly"
                   (">")
# 14473 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 14481 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 14487 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 14497 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 14503 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 14570 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 14575 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 14581 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 14592 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 14598 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 14618 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 14624 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3784 "parsing/parser.mly"
                   (">")
# 14631 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 14639 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 14645 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 14655 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 14661 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 14704 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 14709 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3785 "parsing/parser.mly"
                  ("or")
# 14716 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 14724 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 14730 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 14740 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 14746 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 14813 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 14818 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 14824 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 14835 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 14841 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 14861 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 14867 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3785 "parsing/parser.mly"
                  ("or")
# 14874 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 14882 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 14888 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 14898 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 14904 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 14947 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 14952 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3786 "parsing/parser.mly"
                  ("||")
# 14959 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 14967 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 14973 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 14983 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 14989 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 15056 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 15061 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 15067 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 15078 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 15084 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 15104 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 15110 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3786 "parsing/parser.mly"
                  ("||")
# 15117 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 15125 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 15131 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 15141 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 15147 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 15190 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 15195 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3787 "parsing/parser.mly"
                   ("&")
# 15202 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 15210 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 15216 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 15226 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 15232 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 15299 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 15304 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 15310 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 15321 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 15327 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 15347 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 15353 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3787 "parsing/parser.mly"
                   ("&")
# 15360 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 15368 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 15374 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 15384 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 15390 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 15433 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 15438 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3788 "parsing/parser.mly"
                  ("&&")
# 15445 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 15453 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 15459 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 15469 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 15475 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 15542 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 15547 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 15553 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 15564 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 15570 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 15590 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 15596 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3788 "parsing/parser.mly"
                  ("&&")
# 15603 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 15611 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 15617 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 15627 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 15633 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e1;
              MenhirLib.EngineTypes.startp = _startpos_e1_;
              MenhirLib.EngineTypes.endp = _endpos_e1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 15676 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 15681 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3789 "parsing/parser.mly"
                  (":=")
# 15688 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 15696 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 15702 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 15712 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 15718 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = e1;
                    MenhirLib.EngineTypes.startp = _startpos_e1_;
                    MenhirLib.EngineTypes.endp = _endpos_e1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let e1 : (Parsetree.expression) = Obj.magic e1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e1_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let e2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 15785 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 15790 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 15796 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 15807 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 15813 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 15833 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 15839 "parsing/parser.ml"
              
            in
            let op =
              let _1 = 
# 3789 "parsing/parser.mly"
                  (":=")
# 15846 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 15854 "parsing/parser.ml"
              
            in
            
# 2484 "parsing/parser.mly"
      ( mkinfix e1 op e2 )
# 15860 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_e1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 15870 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 15876 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _1_inlined1 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_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let _2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 15912 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 15917 "parsing/parser.ml"
              
            in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2486 "parsing/parser.mly"
      ( mkuminus ~oploc:_loc__1_ _1 _2 )
# 15924 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 15934 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 15940 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 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_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let _2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 16000 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 16005 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 16011 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 16022 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 16028 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 16048 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 16054 "parsing/parser.ml"
              
            in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2486 "parsing/parser.mly"
      ( mkuminus ~oploc:_loc__1_ _1 _2 )
# 16061 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos_xs_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 16071 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 16077 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _1_inlined1 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_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let _2 =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 16113 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 16118 "parsing/parser.ml"
              
            in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2488 "parsing/parser.mly"
      ( mkuplus ~oploc:_loc__1_ _1 _2 )
# 16125 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 16135 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 16141 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 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_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let _2 =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 16201 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 16206 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 16212 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 16223 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 16229 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 16249 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 16255 "parsing/parser.ml"
              
            in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2488 "parsing/parser.mly"
      ( mkuplus ~oploc:_loc__1_ _1 _2 )
# 16262 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos_xs_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 16272 "parsing/parser.ml"
          
        in
        
# 2404 "parsing/parser.mly"
      ( _1 )
# 16278 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (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 : (Parsetree.expression) = let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2406 "parsing/parser.mly"
      ( expr_of_let_bindings ~loc:_sloc _1 _3 )
# 16320 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _3;
            MenhirLib.EngineTypes.startp = _startpos__3_;
            MenhirLib.EngineTypes.endp = _endpos__3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = bindings;
              MenhirLib.EngineTypes.startp = _startpos_bindings_;
              MenhirLib.EngineTypes.endp = _endpos_bindings_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let body : (Parsetree.expression) = Obj.magic body in
        let _3 : unit = Obj.magic _3 in
        let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = Obj.magic bindings in
        let _1 : (
# 760 "parsing/parser.mly"
       (string)
# 16362 "parsing/parser.ml"
        ) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_body_ in
        let _v : (Parsetree.expression) = let pbop_op =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 16374 "parsing/parser.ml"
          
        in
        let _startpos_pbop_op_ = _startpos__1_ in
        let _endpos = _endpos_body_ in
        let _symbolstartpos = _startpos_pbop_op_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2408 "parsing/parser.mly"
      ( let (pbop_pat, pbop_exp, rev_ands) = bindings in
        let ands = List.rev rev_ands in
        let pbop_loc = make_loc _sloc in
        let let_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in
        mkexp ~loc:_sloc (Pexp_letop{ let_; ands; body}) )
# 16388 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.expression) = let _3 =
          let _1 = _1_inlined1 in
          let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 16429 "parsing/parser.ml"
           in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 16434 "parsing/parser.ml"
          
        in
        let _endpos__3_ = _endpos__1_inlined1_ in
        let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _loc__2_ = (_startpos__2_, _endpos__2_) in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2414 "parsing/parser.mly"
      ( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[_1;_3])) )
# 16445 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.expression) = 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 : (Parsetree.expression) = let _3 =
          let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
          let _1 =
            let _3 =
              let xs =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 16510 "parsing/parser.ml"
                 in
                
# 1176 "parsing/parser.mly"
    ( xs )
# 16515 "parsing/parser.ml"
                
              in
              
# 2756 "parsing/parser.mly"
    ( xs )
# 16521 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos_xs_ in
            let _2 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 16532 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 16538 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 16558 "parsing/parser.ml"
            
          in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 16564 "parsing/parser.ml"
          
        in
        let _endpos__3_ = _endpos_xs_ in
        let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _loc__2_ = (_startpos__2_, _endpos__2_) in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2414 "parsing/parser.mly"
      ( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[_1;_3])) )
# 16575 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 16610 "parsing/parser.ml"
        ) = 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 : (Parsetree.expression) = let _3 =
          let _1 = _1_inlined1 in
          let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 16620 "parsing/parser.ml"
           in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 16625 "parsing/parser.ml"
          
        in
        let _endpos__3_ = _endpos__1_inlined1_ in
        let _1 =
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 16633 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 16641 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2416 "parsing/parser.mly"
      ( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) )
# 16650 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 16706 "parsing/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 : (Parsetree.expression) = let _3 =
          let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
          let _1 =
            let _3 =
              let xs =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 16719 "parsing/parser.ml"
                 in
                
# 1176 "parsing/parser.mly"
    ( xs )
# 16724 "parsing/parser.ml"
                
              in
              
# 2756 "parsing/parser.mly"
    ( xs )
# 16730 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos_xs_ in
            let _2 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 16741 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 16747 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 16767 "parsing/parser.ml"
            
          in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 16773 "parsing/parser.ml"
          
        in
        let _endpos__3_ = _endpos_xs_ in
        let _1 =
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 16781 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 16789 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2416 "parsing/parser.mly"
      ( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) )
# 16798 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 _1_inlined2 : (Parsetree.expression) = Obj.magic _1_inlined2 in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.expression) = 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 : (Parsetree.expression) = let _5 =
          let _1 = _1_inlined2 in
          let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 16853 "parsing/parser.ml"
           in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 16858 "parsing/parser.ml"
          
        in
        let _endpos__5_ = _endpos__1_inlined2_ in
        let _3 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 16870 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2418 "parsing/parser.mly"
      ( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) )
# 16879 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 = _1_inlined2;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                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 : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.expression) = 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 : (Parsetree.expression) = let _5 =
          let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in
          let _1 =
            let _3 =
              let xs =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 16958 "parsing/parser.ml"
                 in
                
# 1176 "parsing/parser.mly"
    ( xs )
# 16963 "parsing/parser.ml"
                
              in
              
# 2756 "parsing/parser.mly"
    ( xs )
# 16969 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos_xs_ in
            let _2 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 16980 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 16986 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 17006 "parsing/parser.ml"
            
          in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 17012 "parsing/parser.ml"
          
        in
        let _endpos__5_ = _endpos_xs_ in
        let _3 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 17024 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2418 "parsing/parser.mly"
      ( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) )
# 17033 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            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 = i;
                MenhirLib.EngineTypes.startp = _startpos_i_;
                MenhirLib.EngineTypes.endp = _endpos_i_;
                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 = d;
                    MenhirLib.EngineTypes.startp = _startpos_d_;
                    MenhirLib.EngineTypes.endp = _endpos_d_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = array;
                      MenhirLib.EngineTypes.startp = _startpos_array_;
                      MenhirLib.EngineTypes.endp = _endpos_array_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _5 : unit = Obj.magic _5 in
        let i : (Parsetree.expression) = Obj.magic i in
        let _3 : unit = Obj.magic _3 in
        let d : unit = Obj.magic d in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let v =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 17104 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 17109 "parsing/parser.ml"
              
            in
            
# 2419 "parsing/parser.mly"
                                                 (Some v)
# 17115 "parsing/parser.ml"
            
          in
          
# 2379 "parsing/parser.mly"
    ( array, d, Paren,   i, r )
# 17121 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2420 "parsing/parser.mly"
    ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
# 17131 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  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 = i;
                      MenhirLib.EngineTypes.startp = _startpos_i_;
                      MenhirLib.EngineTypes.endp = _endpos_i_;
                      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 = d;
                          MenhirLib.EngineTypes.startp = _startpos_d_;
                          MenhirLib.EngineTypes.endp = _endpos_d_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = array;
                            MenhirLib.EngineTypes.startp = _startpos_array_;
                            MenhirLib.EngineTypes.endp = _endpos_array_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _5 : unit = Obj.magic _5 in
        let i : (Parsetree.expression) = Obj.magic i in
        let _3 : unit = Obj.magic _3 in
        let d : unit = Obj.magic d in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let v =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 17226 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 17231 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 17237 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 17248 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 17254 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 17274 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 17280 "parsing/parser.ml"
              
            in
            
# 2419 "parsing/parser.mly"
                                                 (Some v)
# 17286 "parsing/parser.ml"
            
          in
          
# 2379 "parsing/parser.mly"
    ( array, d, Paren,   i, r )
# 17292 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2420 "parsing/parser.mly"
    ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
# 17302 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            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 = i;
                MenhirLib.EngineTypes.startp = _startpos_i_;
                MenhirLib.EngineTypes.endp = _endpos_i_;
                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 = d;
                    MenhirLib.EngineTypes.startp = _startpos_d_;
                    MenhirLib.EngineTypes.endp = _endpos_d_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = array;
                      MenhirLib.EngineTypes.startp = _startpos_array_;
                      MenhirLib.EngineTypes.endp = _endpos_array_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _5 : unit = Obj.magic _5 in
        let i : (Parsetree.expression) = Obj.magic i in
        let _3 : unit = Obj.magic _3 in
        let d : unit = Obj.magic d in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let v =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 17373 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 17378 "parsing/parser.ml"
              
            in
            
# 2419 "parsing/parser.mly"
                                                 (Some v)
# 17384 "parsing/parser.ml"
            
          in
          
# 2381 "parsing/parser.mly"
    ( array, d, Brace,   i, r )
# 17390 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2420 "parsing/parser.mly"
    ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
# 17400 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  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 = i;
                      MenhirLib.EngineTypes.startp = _startpos_i_;
                      MenhirLib.EngineTypes.endp = _endpos_i_;
                      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 = d;
                          MenhirLib.EngineTypes.startp = _startpos_d_;
                          MenhirLib.EngineTypes.endp = _endpos_d_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = array;
                            MenhirLib.EngineTypes.startp = _startpos_array_;
                            MenhirLib.EngineTypes.endp = _endpos_array_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _5 : unit = Obj.magic _5 in
        let i : (Parsetree.expression) = Obj.magic i in
        let _3 : unit = Obj.magic _3 in
        let d : unit = Obj.magic d in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let v =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 17495 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 17500 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 17506 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 17517 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 17523 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 17543 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 17549 "parsing/parser.ml"
              
            in
            
# 2419 "parsing/parser.mly"
                                                 (Some v)
# 17555 "parsing/parser.ml"
            
          in
          
# 2381 "parsing/parser.mly"
    ( array, d, Brace,   i, r )
# 17561 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2420 "parsing/parser.mly"
    ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
# 17571 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            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 = i;
                MenhirLib.EngineTypes.startp = _startpos_i_;
                MenhirLib.EngineTypes.endp = _endpos_i_;
                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 = d;
                    MenhirLib.EngineTypes.startp = _startpos_d_;
                    MenhirLib.EngineTypes.endp = _endpos_d_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = array;
                      MenhirLib.EngineTypes.startp = _startpos_array_;
                      MenhirLib.EngineTypes.endp = _endpos_array_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _5 : unit = Obj.magic _5 in
        let i : (Parsetree.expression) = Obj.magic i in
        let _3 : unit = Obj.magic _3 in
        let d : unit = Obj.magic d in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let v =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 17642 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 17647 "parsing/parser.ml"
              
            in
            
# 2419 "parsing/parser.mly"
                                                 (Some v)
# 17653 "parsing/parser.ml"
            
          in
          
# 2383 "parsing/parser.mly"
    ( array, d, Bracket, i, r )
# 17659 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2420 "parsing/parser.mly"
    ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
# 17669 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  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 = i;
                      MenhirLib.EngineTypes.startp = _startpos_i_;
                      MenhirLib.EngineTypes.endp = _endpos_i_;
                      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 = d;
                          MenhirLib.EngineTypes.startp = _startpos_d_;
                          MenhirLib.EngineTypes.endp = _endpos_d_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = array;
                            MenhirLib.EngineTypes.startp = _startpos_array_;
                            MenhirLib.EngineTypes.endp = _endpos_array_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _5 : unit = Obj.magic _5 in
        let i : (Parsetree.expression) = Obj.magic i in
        let _3 : unit = Obj.magic _3 in
        let d : unit = Obj.magic d in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let v =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 17764 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 17769 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 17775 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 17786 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 17792 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 17812 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 17818 "parsing/parser.ml"
              
            in
            
# 2419 "parsing/parser.mly"
                                                 (Some v)
# 17824 "parsing/parser.ml"
            
          in
          
# 2383 "parsing/parser.mly"
    ( array, d, Bracket, i, r )
# 17830 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2420 "parsing/parser.mly"
    ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
# 17840 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            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 = es;
                MenhirLib.EngineTypes.startp = _startpos_es_;
                MenhirLib.EngineTypes.endp = _endpos_es_;
                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 = array;
                      MenhirLib.EngineTypes.startp = _startpos_array_;
                      MenhirLib.EngineTypes.endp = _endpos_array_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 17902 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let v =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 17915 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 17920 "parsing/parser.ml"
              
            in
            
# 2421 "parsing/parser.mly"
                                                                   (Some v)
# 17926 "parsing/parser.ml"
            
          in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 17932 "parsing/parser.ml"
           in
          let d =
            let _1 = 
# 124 "<standard.mly>"
    ( None )
# 17938 "parsing/parser.ml"
             in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 17943 "parsing/parser.ml"
            
          in
          
# 2379 "parsing/parser.mly"
    ( array, d, Paren,   i, r )
# 17949 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2422 "parsing/parser.mly"
    ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 17959 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  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 = es;
                      MenhirLib.EngineTypes.startp = _startpos_es_;
                      MenhirLib.EngineTypes.endp = _endpos_es_;
                      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 = array;
                            MenhirLib.EngineTypes.startp = _startpos_array_;
                            MenhirLib.EngineTypes.endp = _endpos_array_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 18042 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let v =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 18058 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 18063 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 18069 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 18080 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 18086 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 18106 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 18112 "parsing/parser.ml"
              
            in
            
# 2421 "parsing/parser.mly"
                                                                   (Some v)
# 18118 "parsing/parser.ml"
            
          in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 18124 "parsing/parser.ml"
           in
          let d =
            let _1 = 
# 124 "<standard.mly>"
    ( None )
# 18130 "parsing/parser.ml"
             in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 18135 "parsing/parser.ml"
            
          in
          
# 2379 "parsing/parser.mly"
    ( array, d, Paren,   i, r )
# 18141 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2422 "parsing/parser.mly"
    ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 18151 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = es;
                MenhirLib.EngineTypes.startp = _startpos_es_;
                MenhirLib.EngineTypes.endp = _endpos_es_;
                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 = _;
                        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 = array;
                          MenhirLib.EngineTypes.startp = _startpos_array_;
                          MenhirLib.EngineTypes.endp = _endpos_array_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined2 : (Parsetree.expression) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 18225 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__1_inlined2_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let _1_inlined1 = _1_inlined2 in
            let v =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 18241 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 18246 "parsing/parser.ml"
              
            in
            
# 2421 "parsing/parser.mly"
                                                                   (Some v)
# 18252 "parsing/parser.ml"
            
          in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 18258 "parsing/parser.ml"
           in
          let d =
            let _1 =
              let _2 = _2_inlined1 in
              let x = 
# 2395 "parsing/parser.mly"
                                                   (_2)
# 18266 "parsing/parser.ml"
               in
              
# 126 "<standard.mly>"
    ( Some x )
# 18271 "parsing/parser.ml"
              
            in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 18277 "parsing/parser.ml"
            
          in
          
# 2379 "parsing/parser.mly"
    ( array, d, Paren,   i, r )
# 18283 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2422 "parsing/parser.mly"
    ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 18293 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 = _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 = _5;
                    MenhirLib.EngineTypes.startp = _startpos__5_;
                    MenhirLib.EngineTypes.endp = _endpos__5_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = es;
                      MenhirLib.EngineTypes.startp = _startpos_es_;
                      MenhirLib.EngineTypes.endp = _endpos_es_;
                      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 = _;
                              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 = array;
                                MenhirLib.EngineTypes.startp = _startpos_array_;
                                MenhirLib.EngineTypes.endp = _endpos_array_;
                                MenhirLib.EngineTypes.next = _menhir_stack;
                              };
                            };
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 18388 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in
            let v =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 18407 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 18412 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 18418 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 18429 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 18435 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 18455 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 18461 "parsing/parser.ml"
              
            in
            
# 2421 "parsing/parser.mly"
                                                                   (Some v)
# 18467 "parsing/parser.ml"
            
          in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 18473 "parsing/parser.ml"
           in
          let d =
            let _1 =
              let _2 = _2_inlined1 in
              let x = 
# 2395 "parsing/parser.mly"
                                                   (_2)
# 18481 "parsing/parser.ml"
               in
              
# 126 "<standard.mly>"
    ( Some x )
# 18486 "parsing/parser.ml"
              
            in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 18492 "parsing/parser.ml"
            
          in
          
# 2379 "parsing/parser.mly"
    ( array, d, Paren,   i, r )
# 18498 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2422 "parsing/parser.mly"
    ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 18508 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            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 = es;
                MenhirLib.EngineTypes.startp = _startpos_es_;
                MenhirLib.EngineTypes.endp = _endpos_es_;
                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 = array;
                      MenhirLib.EngineTypes.startp = _startpos_array_;
                      MenhirLib.EngineTypes.endp = _endpos_array_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 18570 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let v =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 18583 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 18588 "parsing/parser.ml"
              
            in
            
# 2421 "parsing/parser.mly"
                                                                   (Some v)
# 18594 "parsing/parser.ml"
            
          in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 18600 "parsing/parser.ml"
           in
          let d =
            let _1 = 
# 124 "<standard.mly>"
    ( None )
# 18606 "parsing/parser.ml"
             in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 18611 "parsing/parser.ml"
            
          in
          
# 2381 "parsing/parser.mly"
    ( array, d, Brace,   i, r )
# 18617 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2422 "parsing/parser.mly"
    ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 18627 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  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 = es;
                      MenhirLib.EngineTypes.startp = _startpos_es_;
                      MenhirLib.EngineTypes.endp = _endpos_es_;
                      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 = array;
                            MenhirLib.EngineTypes.startp = _startpos_array_;
                            MenhirLib.EngineTypes.endp = _endpos_array_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 18710 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let v =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 18726 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 18731 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 18737 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 18748 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 18754 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 18774 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 18780 "parsing/parser.ml"
              
            in
            
# 2421 "parsing/parser.mly"
                                                                   (Some v)
# 18786 "parsing/parser.ml"
            
          in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 18792 "parsing/parser.ml"
           in
          let d =
            let _1 = 
# 124 "<standard.mly>"
    ( None )
# 18798 "parsing/parser.ml"
             in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 18803 "parsing/parser.ml"
            
          in
          
# 2381 "parsing/parser.mly"
    ( array, d, Brace,   i, r )
# 18809 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2422 "parsing/parser.mly"
    ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 18819 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = es;
                MenhirLib.EngineTypes.startp = _startpos_es_;
                MenhirLib.EngineTypes.endp = _endpos_es_;
                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 = _;
                        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 = array;
                          MenhirLib.EngineTypes.startp = _startpos_array_;
                          MenhirLib.EngineTypes.endp = _endpos_array_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined2 : (Parsetree.expression) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 18893 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__1_inlined2_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let _1_inlined1 = _1_inlined2 in
            let v =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 18909 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 18914 "parsing/parser.ml"
              
            in
            
# 2421 "parsing/parser.mly"
                                                                   (Some v)
# 18920 "parsing/parser.ml"
            
          in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 18926 "parsing/parser.ml"
           in
          let d =
            let _1 =
              let _2 = _2_inlined1 in
              let x = 
# 2395 "parsing/parser.mly"
                                                   (_2)
# 18934 "parsing/parser.ml"
               in
              
# 126 "<standard.mly>"
    ( Some x )
# 18939 "parsing/parser.ml"
              
            in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 18945 "parsing/parser.ml"
            
          in
          
# 2381 "parsing/parser.mly"
    ( array, d, Brace,   i, r )
# 18951 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2422 "parsing/parser.mly"
    ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 18961 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 = _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 = _5;
                    MenhirLib.EngineTypes.startp = _startpos__5_;
                    MenhirLib.EngineTypes.endp = _endpos__5_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = es;
                      MenhirLib.EngineTypes.startp = _startpos_es_;
                      MenhirLib.EngineTypes.endp = _endpos_es_;
                      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 = _;
                              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 = array;
                                MenhirLib.EngineTypes.startp = _startpos_array_;
                                MenhirLib.EngineTypes.endp = _endpos_array_;
                                MenhirLib.EngineTypes.next = _menhir_stack;
                              };
                            };
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 19056 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in
            let v =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 19075 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 19080 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 19086 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 19097 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 19103 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 19123 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 19129 "parsing/parser.ml"
              
            in
            
# 2421 "parsing/parser.mly"
                                                                   (Some v)
# 19135 "parsing/parser.ml"
            
          in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 19141 "parsing/parser.ml"
           in
          let d =
            let _1 =
              let _2 = _2_inlined1 in
              let x = 
# 2395 "parsing/parser.mly"
                                                   (_2)
# 19149 "parsing/parser.ml"
               in
              
# 126 "<standard.mly>"
    ( Some x )
# 19154 "parsing/parser.ml"
              
            in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 19160 "parsing/parser.ml"
            
          in
          
# 2381 "parsing/parser.mly"
    ( array, d, Brace,   i, r )
# 19166 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2422 "parsing/parser.mly"
    ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 19176 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            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 = es;
                MenhirLib.EngineTypes.startp = _startpos_es_;
                MenhirLib.EngineTypes.endp = _endpos_es_;
                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 = array;
                      MenhirLib.EngineTypes.startp = _startpos_array_;
                      MenhirLib.EngineTypes.endp = _endpos_array_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 19238 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__1_inlined1_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let v =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 19251 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 19256 "parsing/parser.ml"
              
            in
            
# 2421 "parsing/parser.mly"
                                                                   (Some v)
# 19262 "parsing/parser.ml"
            
          in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 19268 "parsing/parser.ml"
           in
          let d =
            let _1 = 
# 124 "<standard.mly>"
    ( None )
# 19274 "parsing/parser.ml"
             in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 19279 "parsing/parser.ml"
            
          in
          
# 2383 "parsing/parser.mly"
    ( array, d, Bracket, i, r )
# 19285 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2422 "parsing/parser.mly"
    ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 19295 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  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 = es;
                      MenhirLib.EngineTypes.startp = _startpos_es_;
                      MenhirLib.EngineTypes.endp = _endpos_es_;
                      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 = array;
                            MenhirLib.EngineTypes.startp = _startpos_array_;
                            MenhirLib.EngineTypes.endp = _endpos_array_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 19378 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let v =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 19394 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 19399 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 19405 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 19416 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 19422 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 19442 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 19448 "parsing/parser.ml"
              
            in
            
# 2421 "parsing/parser.mly"
                                                                   (Some v)
# 19454 "parsing/parser.ml"
            
          in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 19460 "parsing/parser.ml"
           in
          let d =
            let _1 = 
# 124 "<standard.mly>"
    ( None )
# 19466 "parsing/parser.ml"
             in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 19471 "parsing/parser.ml"
            
          in
          
# 2383 "parsing/parser.mly"
    ( array, d, Bracket, i, r )
# 19477 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2422 "parsing/parser.mly"
    ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 19487 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
              MenhirLib.EngineTypes.semv = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = es;
                MenhirLib.EngineTypes.startp = _startpos_es_;
                MenhirLib.EngineTypes.endp = _endpos_es_;
                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 = _;
                        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 = array;
                          MenhirLib.EngineTypes.startp = _startpos_array_;
                          MenhirLib.EngineTypes.endp = _endpos_array_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined2 : (Parsetree.expression) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 19561 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__1_inlined2_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let _1_inlined1 = _1_inlined2 in
            let v =
              let _1 = _1_inlined1 in
              let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 19577 "parsing/parser.ml"
               in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 19582 "parsing/parser.ml"
              
            in
            
# 2421 "parsing/parser.mly"
                                                                   (Some v)
# 19588 "parsing/parser.ml"
            
          in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 19594 "parsing/parser.ml"
           in
          let d =
            let _1 =
              let _2 = _2_inlined1 in
              let x = 
# 2395 "parsing/parser.mly"
                                                   (_2)
# 19602 "parsing/parser.ml"
               in
              
# 126 "<standard.mly>"
    ( Some x )
# 19607 "parsing/parser.ml"
              
            in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 19613 "parsing/parser.ml"
            
          in
          
# 2383 "parsing/parser.mly"
    ( array, d, Bracket, i, r )
# 19619 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2422 "parsing/parser.mly"
    ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 19629 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 = _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 = _5;
                    MenhirLib.EngineTypes.startp = _startpos__5_;
                    MenhirLib.EngineTypes.endp = _endpos__5_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = es;
                      MenhirLib.EngineTypes.startp = _startpos_es_;
                      MenhirLib.EngineTypes.endp = _endpos_es_;
                      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 = _;
                              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 = array;
                                MenhirLib.EngineTypes.startp = _startpos_array_;
                                MenhirLib.EngineTypes.endp = _endpos_array_;
                                MenhirLib.EngineTypes.next = _menhir_stack;
                              };
                            };
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 19724 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let r =
            let (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in
            let v =
              let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
              let _1 =
                let _3 =
                  let xs =
                    let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 19743 "parsing/parser.ml"
                     in
                    
# 1176 "parsing/parser.mly"
    ( xs )
# 19748 "parsing/parser.ml"
                    
                  in
                  
# 2756 "parsing/parser.mly"
    ( xs )
# 19754 "parsing/parser.ml"
                  
                in
                let _endpos__3_ = _endpos_xs_ in
                let _2 =
                  let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                  let _2 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 19765 "parsing/parser.ml"
                    
                  in
                  
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 19771 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos__3_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 19791 "parsing/parser.ml"
                
              in
              
# 2431 "parsing/parser.mly"
                          ( _1 )
# 19797 "parsing/parser.ml"
              
            in
            
# 2421 "parsing/parser.mly"
                                                                   (Some v)
# 19803 "parsing/parser.ml"
            
          in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 19809 "parsing/parser.ml"
           in
          let d =
            let _1 =
              let _2 = _2_inlined1 in
              let x = 
# 2395 "parsing/parser.mly"
                                                   (_2)
# 19817 "parsing/parser.ml"
               in
              
# 126 "<standard.mly>"
    ( Some x )
# 19822 "parsing/parser.ml"
              
            in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 19828 "parsing/parser.ml"
            
          in
          
# 2383 "parsing/parser.mly"
    ( array, d, Bracket, i, r )
# 19834 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2422 "parsing/parser.mly"
    ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 19844 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attribute) = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.expression) = 
# 2424 "parsing/parser.mly"
      ( Exp.attr _1 _2 )
# 19876 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Parsetree.expression) = let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 2427 "parsing/parser.mly"
     ( not_expecting _loc__1_ "wildcard \"_\"" )
# 19902 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = 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 _4 : unit = Obj.magic _4 in
        let xs : (string Asttypes.loc list) = Obj.magic xs 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 : (Parsetree.function_param list) = let ty_params = 
# 2637 "parsing/parser.mly"
    ( xs )
# 19948 "parsing/parser.ml"
         in
        let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2768 "parsing/parser.mly"
      ( (* We desugar (type a b c) to (type a) (type b) (type c).
           If we do this desugaring, the loc for each parameter is a ghost.
        *)
        let loc =
          match ty_params with
          | [] -> assert false (* lident_list is non-empty *)
          | [_] -> make_loc _sloc
          | _ :: _ :: _ -> ghost_loc _sloc
        in
        List.map
          (fun x -> { pparam_loc = loc; pparam_desc = Pparam_newtype x })
          ty_params
      )
# 19968 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.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 : (Parsetree.function_param list) = let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2782 "parsing/parser.mly"
      ( let a, b, c = _1 in
        [ { pparam_loc = make_loc _sloc; pparam_desc = Pparam_val (a, b, c) } ]
      )
# 19998 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let xs : (Parsetree.function_param list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.function_param list) = let _1 =
          let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 20024 "parsing/parser.ml"
           in
          
# 1083 "parsing/parser.mly"
    ( xs )
# 20029 "parsing/parser.ml"
          
        in
        
# 2787 "parsing/parser.mly"
                                       ( _1 )
# 20035 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.expression) = 
# 2314 "parsing/parser.mly"
                                  ( _1 )
# 20060 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.expression) = 
# 2315 "parsing/parser.mly"
                                  ( _1 )
# 20092 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.expression) = let _1 =
          let _1 = 
# 2317 "parsing/parser.mly"
    ( Pexp_sequence(_1, _3) )
# 20132 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 20141 "parsing/parser.ml"
          
        in
        
# 2318 "parsing/parser.mly"
    ( _1 )
# 20147 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _5 in
        let _4 : (Ast_helper.str) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.expression) = let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2320 "parsing/parser.mly"
    ( let seq = mkexp ~loc:_sloc (Pexp_sequence (_1, _5)) in
      let payload = PStr [mkstrexp seq []] in
      mkexp ~loc:_sloc (Pexp_extension (_4, payload)) )
# 20205 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = ty;
          MenhirLib.EngineTypes.startp = _startpos_ty_;
          MenhirLib.EngineTypes.endp = _endpos_ty_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let ty : (Parsetree.core_type) = Obj.magic ty in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_ty_ in
        let _endpos = _endpos_ty_ in
        let _v : (Parsetree.core_type) = 
# 3486 "parsing/parser.mly"
      ( ty )
# 20230 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = codomain;
          MenhirLib.EngineTypes.startp = _startpos_codomain_;
          MenhirLib.EngineTypes.endp = _endpos_codomain_;
          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;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = label;
                MenhirLib.EngineTypes.startp = _startpos_label_;
                MenhirLib.EngineTypes.endp = _endpos_label_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let codomain : (Parsetree.core_type) = Obj.magic codomain in
        let _3 : unit = Obj.magic _3 in
        let _1 : (Parsetree.core_type) = Obj.magic _1 in
        let label : (string) = Obj.magic label in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_label_ in
        let _endpos = _endpos_codomain_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 =
            let domain = 
# 958 "parsing/parser.mly"
                              ( extra_rhs_core_type _1 ~pos:_endpos__1_ )
# 20278 "parsing/parser.ml"
             in
            let label = 
# 3498 "parsing/parser.mly"
      ( Optional label )
# 20283 "parsing/parser.ml"
             in
            
# 3492 "parsing/parser.mly"
        ( Ptyp_arrow(label, domain, codomain) )
# 20288 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 20298 "parsing/parser.ml"
          
        in
        
# 3494 "parsing/parser.mly"
    ( _1 )
# 20304 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = codomain;
          MenhirLib.EngineTypes.startp = _startpos_codomain_;
          MenhirLib.EngineTypes.endp = _endpos_codomain_;
          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;
              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 = label;
                  MenhirLib.EngineTypes.startp = _startpos_label_;
                  MenhirLib.EngineTypes.endp = _endpos_label_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let codomain : (Parsetree.core_type) = Obj.magic codomain in
        let _3 : unit = Obj.magic _3 in
        let _1 : (Parsetree.core_type) = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let label : (
# 778 "parsing/parser.mly"
       (string)
# 20353 "parsing/parser.ml"
        ) = Obj.magic label in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_label_ in
        let _endpos = _endpos_codomain_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 =
            let domain = 
# 958 "parsing/parser.mly"
                              ( extra_rhs_core_type _1 ~pos:_endpos__1_ )
# 20363 "parsing/parser.ml"
             in
            let label = 
# 3500 "parsing/parser.mly"
      ( Labelled label )
# 20368 "parsing/parser.ml"
             in
            
# 3492 "parsing/parser.mly"
        ( Ptyp_arrow(label, domain, codomain) )
# 20373 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 20383 "parsing/parser.ml"
          
        in
        
# 3494 "parsing/parser.mly"
    ( _1 )
# 20389 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = codomain;
          MenhirLib.EngineTypes.startp = _startpos_codomain_;
          MenhirLib.EngineTypes.endp = _endpos_codomain_;
          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 codomain : (Parsetree.core_type) = Obj.magic codomain in
        let _3 : unit = Obj.magic _3 in
        let _1 : (Parsetree.core_type) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_codomain_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 =
            let domain = 
# 958 "parsing/parser.mly"
                              ( extra_rhs_core_type _1 ~pos:_endpos__1_ )
# 20430 "parsing/parser.ml"
             in
            let label = 
# 3502 "parsing/parser.mly"
      ( Nolabel )
# 20435 "parsing/parser.ml"
             in
            
# 3492 "parsing/parser.mly"
        ( Ptyp_arrow(label, domain, codomain) )
# 20440 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos_codomain_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 20450 "parsing/parser.ml"
          
        in
        
# 3494 "parsing/parser.mly"
    ( _1 )
# 20456 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Lexing.position * Parsetree.functor_parameter) = let _startpos = _startpos__1_ in
        
# 1369 "parsing/parser.mly"
      ( _startpos, Unit )
# 20489 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = mty;
            MenhirLib.EngineTypes.startp = _startpos_mty_;
            MenhirLib.EngineTypes.endp = _endpos_mty_;
            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 _5 : unit = Obj.magic _5 in
        let mty : (Parsetree.module_type) = Obj.magic mty in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined1 : (string option) = 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__5_ in
        let _v : (Lexing.position * Parsetree.functor_parameter) = let x =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 20547 "parsing/parser.ml"
          
        in
        let _startpos = _startpos__1_ in
        
# 1372 "parsing/parser.mly"
      ( _startpos, Named (x, mty) )
# 20554 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option) = 
# 3285 "parsing/parser.mly"
                                  ( ([],Pcstr_tuple [],None) )
# 20573 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.constructor_arguments) = 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 : (Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option) = 
# 3286 "parsing/parser.mly"
                                  ( ([],_2,None) )
# 20606 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Parsetree.constructor_arguments) = 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 : (Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option) = 
# 3288 "parsing/parser.mly"
                                  ( ([],_2,Some _4) )
# 20653 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = 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 _6 : (Parsetree.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Parsetree.constructor_arguments) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in
        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 : (Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option) = let _2 =
          let _1 =
            let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 20716 "parsing/parser.ml"
             in
            
# 1062 "parsing/parser.mly"
    ( xs )
# 20721 "parsing/parser.ml"
            
          in
          
# 3421 "parsing/parser.mly"
    ( _1 )
# 20727 "parsing/parser.ml"
          
        in
        
# 3291 "parsing/parser.mly"
                                  ( (_2,_4,Some _6) )
# 20733 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option) = 
# 3293 "parsing/parser.mly"
                                  ( ([],Pcstr_tuple [],Some _2) )
# 20766 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = 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 _4 : (Parsetree.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in
        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 : (Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option) = let _2 =
          let _1 =
            let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 20815 "parsing/parser.ml"
             in
            
# 1062 "parsing/parser.mly"
    ( xs )
# 20820 "parsing/parser.ml"
            
          in
          
# 3421 "parsing/parser.mly"
    ( _1 )
# 20826 "parsing/parser.ml"
          
        in
        
# 3295 "parsing/parser.mly"
                                  ( (_2,Pcstr_tuple [],Some _4) )
# 20832 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = vars_args_res;
            MenhirLib.EngineTypes.startp = _startpos_vars_args_res_;
            MenhirLib.EngineTypes.endp = _endpos_vars_args_res_;
            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 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let vars_args_res : (Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option) = Obj.magic vars_args_res in
        let _1_inlined1 : (Asttypes.label) = 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_inlined2_ in
        let _v : (Ast_helper.str * Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option * Parsetree.attributes * Location.t *
  Docstrings.info) = let attrs =
          let _1 = _1_inlined2 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 20883 "parsing/parser.ml"
          
        in
        let _endpos_attrs_ = _endpos__1_inlined2_ in
        let cid =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 20895 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_attrs_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3233 "parsing/parser.mly"
    (
      let vars, args, res = vars_args_res in
      let info = symbol_info _endpos in
      let loc = make_loc _sloc in
      cid, vars, args, res, attrs, loc, info
    )
# 20909 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = vars_args_res;
            MenhirLib.EngineTypes.startp = _startpos_vars_args_res_;
            MenhirLib.EngineTypes.endp = _endpos_vars_args_res_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              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 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let vars_args_res : (Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option) = Obj.magic vars_args_res in
        let _1 : (Asttypes.label) = 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 : (Ast_helper.str * Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option * Parsetree.attributes * Location.t *
  Docstrings.info) = let attrs =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 20953 "parsing/parser.ml"
          
        in
        let _endpos_attrs_ = _endpos__1_inlined1_ in
        let cid =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 20964 "parsing/parser.ml"
          
        in
        let _startpos_cid_ = _startpos__1_ in
        let _1 = 
# 3883 "parsing/parser.mly"
    ( () )
# 20971 "parsing/parser.ml"
         in
        let _endpos = _endpos_attrs_ in
        let _symbolstartpos = _startpos_cid_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3233 "parsing/parser.mly"
    (
      let vars, args, res = vars_args_res in
      let info = symbol_info _endpos in
      let loc = make_loc _sloc in
      cid, vars, args, res, attrs, loc, info
    )
# 20984 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined4;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined4_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined4_;
          MenhirLib.EngineTypes.next = {
            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 = _;
                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 = _1_inlined2;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                  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 = ext;
                        MenhirLib.EngineTypes.startp = _startpos_ext_;
                        MenhirLib.EngineTypes.endp = _endpos_ext_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _menhir_s;
                          MenhirLib.EngineTypes.semv = _1;
                          MenhirLib.EngineTypes.startp = _startpos__1_;
                          MenhirLib.EngineTypes.endp = _endpos__1_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in
        let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in
        let _1_inlined3 : unit = Obj.magic _1_inlined3 in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 21057 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined4_ in
        let _v : ((Asttypes.rec_flag * string Asttypes.loc option) *
  Parsetree.type_declaration) = let attrs2 =
          let _1 = _1_inlined4 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 21072 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined4_ in
        let cstrs =
          let _1 =
            let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 21081 "parsing/parser.ml"
             in
            
# 1044 "parsing/parser.mly"
    ( xs )
# 21086 "parsing/parser.ml"
            
          in
          
# 3138 "parsing/parser.mly"
    ( _1 )
# 21092 "parsing/parser.ml"
          
        in
        let kind_priv_manifest = 
# 3173 "parsing/parser.mly"
      ( _2 )
# 21098 "parsing/parser.ml"
         in
        let id =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 21108 "parsing/parser.ml"
          
        in
        let flag = 
# 3903 "parsing/parser.mly"
                ( Recursive )
# 21114 "parsing/parser.ml"
         in
        let attrs1 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 21121 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_attrs2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3110 "parsing/parser.mly"
    (
      let (kind, priv, manifest) = kind_priv_manifest in
      let docs = symbol_docs _sloc in
      let attrs = attrs1 @ attrs2 in
      let loc = make_loc _sloc in
      (flag, ext),
      Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs
    )
# 21137 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined5;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined5_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined5_;
          MenhirLib.EngineTypes.next = {
            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 = _;
                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 = params;
                    MenhirLib.EngineTypes.startp = _startpos_params_;
                    MenhirLib.EngineTypes.endp = _endpos_params_;
                    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 = ext;
                          MenhirLib.EngineTypes.startp = _startpos_ext_;
                          MenhirLib.EngineTypes.endp = _endpos_ext_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = _1;
                            MenhirLib.EngineTypes.startp = _startpos__1_;
                            MenhirLib.EngineTypes.endp = _endpos__1_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in
        let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in
        let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in
        let _1_inlined4 : unit = Obj.magic _1_inlined4 in
        let _1_inlined3 : (
# 778 "parsing/parser.mly"
       (string)
# 21216 "parsing/parser.ml"
        ) = Obj.magic _1_inlined3 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined5_ in
        let _v : ((Asttypes.rec_flag * string Asttypes.loc option) *
  Parsetree.type_declaration) = let attrs2 =
          let _1 = _1_inlined5 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 21232 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined5_ in
        let cstrs =
          let _1 =
            let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 21241 "parsing/parser.ml"
             in
            
# 1044 "parsing/parser.mly"
    ( xs )
# 21246 "parsing/parser.ml"
            
          in
          
# 3138 "parsing/parser.mly"
    ( _1 )
# 21252 "parsing/parser.ml"
          
        in
        let kind_priv_manifest = 
# 3173 "parsing/parser.mly"
      ( _2 )
# 21258 "parsing/parser.ml"
         in
        let id =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 21268 "parsing/parser.ml"
          
        in
        let flag =
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in
          let _endpos = _endpos__1_ in
          let _startpos = _startpos__1_ in
          let _loc = (_startpos, _endpos) in
          
# 3905 "parsing/parser.mly"
                ( not_expecting _loc "nonrec flag" )
# 21279 "parsing/parser.ml"
          
        in
        let attrs1 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 21287 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_attrs2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3110 "parsing/parser.mly"
    (
      let (kind, priv, manifest) = kind_priv_manifest in
      let docs = symbol_docs _sloc in
      let attrs = attrs1 @ attrs2 in
      let loc = make_loc _sloc in
      (flag, ext),
      Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs
    )
# 21303 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          MenhirLib.EngineTypes.next = {
            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 = kind_priv_manifest;
              MenhirLib.EngineTypes.startp = _startpos_kind_priv_manifest_;
              MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_;
              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 = 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 = ext;
                      MenhirLib.EngineTypes.startp = _startpos_ext_;
                      MenhirLib.EngineTypes.endp = _endpos_ext_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in
        let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 21369 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined3_ in
        let _v : ((Asttypes.rec_flag * string Asttypes.loc option) *
  Parsetree.type_declaration) = let attrs2 =
          let _1 = _1_inlined3 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 21384 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined3_ in
        let cstrs =
          let _1 =
            let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 21393 "parsing/parser.ml"
             in
            
# 1044 "parsing/parser.mly"
    ( xs )
# 21398 "parsing/parser.ml"
            
          in
          
# 3138 "parsing/parser.mly"
    ( _1 )
# 21404 "parsing/parser.ml"
          
        in
        let id =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 21415 "parsing/parser.ml"
          
        in
        let flag = 
# 3899 "parsing/parser.mly"
                                                ( Recursive )
# 21421 "parsing/parser.ml"
         in
        let attrs1 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 21428 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_attrs2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3110 "parsing/parser.mly"
    (
      let (kind, priv, manifest) = kind_priv_manifest in
      let docs = symbol_docs _sloc in
      let attrs = attrs1 @ attrs2 in
      let loc = make_loc _sloc in
      (flag, ext),
      Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs
    )
# 21444 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined4;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined4_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined4_;
          MenhirLib.EngineTypes.next = {
            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 = kind_priv_manifest;
              MenhirLib.EngineTypes.startp = _startpos_kind_priv_manifest_;
              MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_;
              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 = params;
                  MenhirLib.EngineTypes.startp = _startpos_params_;
                  MenhirLib.EngineTypes.endp = _endpos_params_;
                  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 = ext;
                        MenhirLib.EngineTypes.startp = _startpos_ext_;
                        MenhirLib.EngineTypes.endp = _endpos_ext_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _menhir_s;
                          MenhirLib.EngineTypes.semv = _1;
                          MenhirLib.EngineTypes.startp = _startpos__1_;
                          MenhirLib.EngineTypes.endp = _endpos__1_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in
        let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in
        let _1_inlined3 : (
# 778 "parsing/parser.mly"
       (string)
# 21516 "parsing/parser.ml"
        ) = Obj.magic _1_inlined3 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined4_ in
        let _v : ((Asttypes.rec_flag * string Asttypes.loc option) *
  Parsetree.type_declaration) = let attrs2 =
          let _1 = _1_inlined4 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 21532 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined4_ in
        let cstrs =
          let _1 =
            let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 21541 "parsing/parser.ml"
             in
            
# 1044 "parsing/parser.mly"
    ( xs )
# 21546 "parsing/parser.ml"
            
          in
          
# 3138 "parsing/parser.mly"
    ( _1 )
# 21552 "parsing/parser.ml"
          
        in
        let id =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 21563 "parsing/parser.ml"
          
        in
        let flag = 
# 3900 "parsing/parser.mly"
                                                ( Nonrecursive )
# 21569 "parsing/parser.ml"
         in
        let attrs1 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 21576 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_attrs2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3110 "parsing/parser.mly"
    (
      let (kind, priv, manifest) = kind_priv_manifest in
      let docs = symbol_docs _sloc in
      let attrs = attrs1 @ attrs2 in
      let loc = make_loc _sloc in
      (flag, ext),
      Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs
    )
# 21592 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 829 "parsing/parser.mly"
       (string)
# 21613 "parsing/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 : (Asttypes.label) = 
# 3742 "parsing/parser.mly"
                              ( _1 )
# 21621 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 21642 "parsing/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 : (Asttypes.label) = 
# 3743 "parsing/parser.mly"
                              ( _1 )
# 21650 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.structure) = 
# 1236 "parsing/parser.mly"
    ( _1 )
# 21682 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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) = 
# 3792 "parsing/parser.mly"
  ( "" )
# 21700 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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) = 
# 3793 "parsing/parser.mly"
              ( ";.." )
# 21732 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.signature) = 
# 1243 "parsing/parser.mly"
    ( _1 )
# 21764 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.payload) = Obj.magic _3 in
        let _2 : (Ast_helper.str) = 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 : (Parsetree.extension) = 
# 4083 "parsing/parser.mly"
                                                    ( (_2, _3) )
# 21810 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 820 "parsing/parser.mly"
       (string * Location.t * string * Location.t * string option)
# 21831 "parsing/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 : (Parsetree.extension) = let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 4085 "parsing/parser.mly"
    ( mk_quotedext ~loc:_sloc _1 )
# 21842 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          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 = _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 _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined1 : (
# 778 "parsing/parser.mly"
       (string)
# 21890 "parsing/parser.ml"
        ) = Obj.magic _1_inlined1 in
        let _1 : (Asttypes.mutable_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined3_ in
        let _v : (Parsetree.label_declaration) = let _5 =
          let _1 = _1_inlined3 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 21901 "parsing/parser.ml"
          
        in
        let _endpos__5_ = _endpos__1_inlined3_ in
        let _4 =
          let _1 = _1_inlined2 in
          
# 3439 "parsing/parser.mly"
    ( _1 )
# 21910 "parsing/parser.ml"
          
        in
        let _2 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 21918 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 21926 "parsing/parser.ml"
          
        in
        let _startpos__2_ = _startpos__1_inlined1_ in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
          _startpos__1_
        else
          _startpos__2_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3312 "parsing/parser.mly"
      ( let info = symbol_info _endpos in
        Type.field _2 _4 ~mut:_1 ~attrs:_5 ~loc:(make_loc _sloc) ~info )
# 21940 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined4;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined4_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined4_;
          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 = _1_inlined3;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
              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 = _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 _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _6 : unit = Obj.magic _6 in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined1 : (
# 778 "parsing/parser.mly"
       (string)
# 22002 "parsing/parser.ml"
        ) = Obj.magic _1_inlined1 in
        let _1 : (Asttypes.mutable_flag) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined4_ in
        let _v : (Parsetree.label_declaration) = let _7 =
          let _1 = _1_inlined4 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 22013 "parsing/parser.ml"
          
        in
        let _endpos__7_ = _endpos__1_inlined4_ in
        let _5 =
          let _1 = _1_inlined3 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 22022 "parsing/parser.ml"
          
        in
        let _endpos__5_ = _endpos__1_inlined3_ in
        let _4 =
          let _1 = _1_inlined2 in
          
# 3439 "parsing/parser.mly"
    ( _1 )
# 22031 "parsing/parser.ml"
          
        in
        let _2 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 22039 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 22047 "parsing/parser.ml"
          
        in
        let _startpos__2_ = _startpos__1_inlined1_ in
        let _endpos = _endpos__7_ in
        let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
          _startpos__1_
        else
          _startpos__2_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3317 "parsing/parser.mly"
      ( let info =
          match rhs_info _endpos__5_ with
          | Some _ as info_before_semi -> info_before_semi
          | None -> symbol_info _endpos
       in
       Type.field _2 _4 ~mut:_1 ~attrs:(_5 @ _7) ~loc:(make_loc _sloc) ~info )
# 22065 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.label_declaration list) = 
# 3306 "parsing/parser.mly"
                                                ( [_1] )
# 22090 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.label_declaration list) = 
# 3307 "parsing/parser.mly"
                                                ( [_1] )
# 22115 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.label_declaration list) = Obj.magic _2 in
        let _1 : (Parsetree.label_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 : (Parsetree.label_declaration list) = 
# 3308 "parsing/parser.mly"
                                                ( _1 :: _2 )
# 22147 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 22168 "parsing/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 * Parsetree.pattern) = let x =
          let _1 =
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 22181 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2367 "parsing/parser.mly"
      ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) )
# 22190 "parsing/parser.ml"
          
        in
        
# 2359 "parsing/parser.mly"
      ( x )
# 22196 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = cty;
          MenhirLib.EngineTypes.startp = _startpos_cty_;
          MenhirLib.EngineTypes.endp = _endpos_cty_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let cty : (Parsetree.core_type) = Obj.magic cty in
        let _2 : unit = Obj.magic _2 in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 22231 "parsing/parser.ml"
        ) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_cty_ in
        let _v : (string * Parsetree.pattern) = let x =
          let _1 =
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 22244 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2367 "parsing/parser.mly"
      ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) )
# 22253 "parsing/parser.ml"
          
        in
        let _startpos_x_ = _startpos__1_ in
        let _endpos = _endpos_cty_ in
        let _symbolstartpos = _startpos_x_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2361 "parsing/parser.mly"
      ( let lab, pat = x in
        lab,
        mkpat ~loc:_sloc (Ppat_constraint (pat, cty)) )
# 22265 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = 
# 3824 "parsing/parser.mly"
                                        ( _1 )
# 22290 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Asttypes.arg_label * Parsetree.expression) = 
# 2620 "parsing/parser.mly"
      ( (Nolabel, _1) )
# 22315 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _2 in
        let _1 : (
# 765 "parsing/parser.mly"
       (string)
# 22343 "parsing/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 : (Asttypes.arg_label * Parsetree.expression) = 
# 2622 "parsing/parser.mly"
      ( (Labelled _1, _2) )
# 22351 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = label;
          MenhirLib.EngineTypes.startp = _startpos_label_;
          MenhirLib.EngineTypes.endp = _endpos_label_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let label : (
# 778 "parsing/parser.mly"
       (string)
# 22378 "parsing/parser.ml"
        ) = Obj.magic label in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_label_ in
        let _v : (Asttypes.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in
        
# 2624 "parsing/parser.mly"
      ( let loc = _loc_label_ in
        (Labelled label, mkexpvar ~loc label) )
# 22389 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = ty;
            MenhirLib.EngineTypes.startp = _startpos_ty_;
            MenhirLib.EngineTypes.endp = _endpos_ty_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = label;
              MenhirLib.EngineTypes.startp = _startpos_label_;
              MenhirLib.EngineTypes.endp = _endpos_label_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_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 ty : (Parsetree.type_constraint) = Obj.magic ty in
        let label : (
# 778 "parsing/parser.mly"
       (string)
# 22436 "parsing/parser.ml"
        ) = Obj.magic label 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 : (Asttypes.arg_label * Parsetree.expression) = let _endpos = _endpos__5_ in
        let _loc_label_ = (_startpos_label_, _endpos_label_) in
        
# 2627 "parsing/parser.mly"
      ( (Labelled label, mkexp_constraint ~loc:(_startpos__2_, _endpos)
                           (mkexpvar ~loc:_loc_label_ label) ty) )
# 22449 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = label;
          MenhirLib.EngineTypes.startp = _startpos_label_;
          MenhirLib.EngineTypes.endp = _endpos_label_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let label : (
# 778 "parsing/parser.mly"
       (string)
# 22476 "parsing/parser.ml"
        ) = Obj.magic label in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_label_ in
        let _v : (Asttypes.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in
        
# 2630 "parsing/parser.mly"
      ( let loc = _loc_label_ in
        (Optional label, mkexpvar ~loc label) )
# 22487 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _2 in
        let _1 : (
# 795 "parsing/parser.mly"
       (string)
# 22515 "parsing/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 : (Asttypes.arg_label * Parsetree.expression) = 
# 2633 "parsing/parser.mly"
      ( (Optional _1, _2) )
# 22523 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = Obj.magic _5 in
        let _1_inlined1 : (Parsetree.expression option) = Obj.magic _1_inlined1 in
        let _3 : (string * Parsetree.pattern) = 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 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _4 =
          let _1 = _1_inlined1 in
          
# 2355 "parsing/parser.mly"
    ( _1 )
# 22578 "parsing/parser.ml"
          
        in
        
# 2329 "parsing/parser.mly"
      ( (Optional (fst _3), _4, snd _3) )
# 22584 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (
# 778 "parsing/parser.mly"
       (string)
# 22611 "parsing/parser.ml"
        ) = 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 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _2 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _1 =
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 22626 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2367 "parsing/parser.mly"
      ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) )
# 22635 "parsing/parser.ml"
          
        in
        
# 2331 "parsing/parser.mly"
      ( (Optional (fst _2), None, snd _2) )
# 22641 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = Obj.magic _5 in
        let _1_inlined1 : (Parsetree.expression option) = Obj.magic _1_inlined1 in
        let _3 : (Parsetree.pattern) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (
# 795 "parsing/parser.mly"
       (string)
# 22690 "parsing/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 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _4 =
          let _1 = _1_inlined1 in
          
# 2355 "parsing/parser.mly"
    ( _1 )
# 22700 "parsing/parser.ml"
          
        in
        
# 2333 "parsing/parser.mly"
      ( (Optional _1, _4, _3) )
# 22706 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.pattern) = Obj.magic _2 in
        let _1 : (
# 795 "parsing/parser.mly"
       (string)
# 22734 "parsing/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 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = 
# 2335 "parsing/parser.mly"
      ( (Optional _1, None, _2) )
# 22742 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 * Parsetree.pattern) = 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 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = 
# 2337 "parsing/parser.mly"
      ( (Labelled (fst _3), None, snd _3) )
# 22788 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (
# 778 "parsing/parser.mly"
       (string)
# 22815 "parsing/parser.ml"
        ) = 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 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _2 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _1 =
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 22830 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2367 "parsing/parser.mly"
      ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) )
# 22839 "parsing/parser.ml"
          
        in
        
# 2339 "parsing/parser.mly"
      ( (Labelled (fst _2), None, snd _2) )
# 22845 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.pattern) = Obj.magic _2 in
        let _1 : (
# 765 "parsing/parser.mly"
       (string)
# 22873 "parsing/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 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = 
# 2341 "parsing/parser.mly"
      ( (Labelled _1, None, _2) )
# 22881 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = 
# 2343 "parsing/parser.mly"
      ( (Nolabel, None, _1) )
# 22906 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.pattern * Parsetree.expression *
  Parsetree.value_constraint 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 : (Parsetree.pattern * Parsetree.expression *
  Parsetree.value_constraint option * bool) = 
# 2672 "parsing/parser.mly"
      ( let p,e,c = _1 in (p,e,c,false) )
# 22933 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Asttypes.label) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.pattern * Parsetree.expression *
  Parsetree.value_constraint option * bool) = let _endpos = _endpos__1_ in
        let _startpos = _startpos__1_ in
        let _loc = (_startpos, _endpos) in
        
# 2675 "parsing/parser.mly"
      ( (mkpatvar ~loc:_loc _1, mkexpvar ~loc:_loc _1, None, true) )
# 22962 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _2 in
        let _1 : (Asttypes.label) = 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 : (Parsetree.pattern * Parsetree.expression *
  Parsetree.value_constraint option) = let _1 =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2640 "parsing/parser.mly"
              ( mkpatvar ~loc:_sloc _1 )
# 22999 "parsing/parser.ml"
          
        in
        
# 2644 "parsing/parser.mly"
      ( (_1, _2, None) )
# 23005 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Parsetree.type_constraint) = Obj.magic _2 in
        let _1 : (Asttypes.label) = 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 : (Parsetree.pattern * Parsetree.expression *
  Parsetree.value_constraint option) = let _1 =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2640 "parsing/parser.mly"
              ( mkpatvar ~loc:_sloc _1 )
# 23056 "parsing/parser.ml"
          
        in
        
# 2646 "parsing/parser.mly"
      ( let v = _1 in (* PR#7344 *)
        let t =
          match _2 with
            Pconstraint t ->
             Pvc_constraint { locally_abstract_univars = []; typ=t }
          | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion}
        in
        (v, _4, Some t)
        )
# 23070 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined1;
                MenhirLib.EngineTypes.startp = _startpos__2_inlined1_;
                MenhirLib.EngineTypes.endp = _endpos__2_inlined1_;
                MenhirLib.EngineTypes.next = {
                  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 _5 : (Parsetree.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Parsetree.core_type) = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Asttypes.label) = 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 : (Parsetree.pattern * Parsetree.expression *
  Parsetree.value_constraint option) = let _3 =
          let _1 =
            let _1 =
              let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 23141 "parsing/parser.ml"
               in
              
# 1062 "parsing/parser.mly"
    ( xs )
# 23146 "parsing/parser.ml"
              
            in
            
# 3421 "parsing/parser.mly"
    ( _1 )
# 23152 "parsing/parser.ml"
            
          in
          
# 3425 "parsing/parser.mly"
    ( Ptyp_poly(_1, _3) )
# 23158 "parsing/parser.ml"
          
        in
        let _startpos__3_ = _startpos_xs_ in
        let _1 =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2640 "parsing/parser.mly"
              ( mkpatvar ~loc:_sloc _1 )
# 23169 "parsing/parser.ml"
          
        in
        let _loc__3_ = (_startpos__3_, _endpos__3_) in
        
# 2656 "parsing/parser.mly"
    (
      let t = ghtyp ~loc:(_loc__3_) _3 in
      (_1, _5, Some (Pvc_constraint { locally_abstract_univars = []; typ=t }))
    )
# 23179 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = 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 _8 : (Parsetree.expression) = Obj.magic _8 in
        let _7 : unit = Obj.magic _7 in
        let _6 : (Parsetree.core_type) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let xs : (string Asttypes.loc list) = Obj.magic xs in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Asttypes.label) = 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 : (Parsetree.pattern * Parsetree.expression *
  Parsetree.value_constraint option) = let _4 = 
# 2637 "parsing/parser.mly"
    ( xs )
# 23254 "parsing/parser.ml"
         in
        let _1 =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2640 "parsing/parser.mly"
              ( mkpatvar ~loc:_sloc _1 )
# 23263 "parsing/parser.ml"
          
        in
        
# 2661 "parsing/parser.mly"
    ( let constraint' =
        Pvc_constraint { locally_abstract_univars=_4; typ = _6}
      in
      (_1, _8, Some constraint') )
# 23272 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.pattern * Parsetree.expression *
  Parsetree.value_constraint option) = 
# 2666 "parsing/parser.mly"
      ( (_1, _3, None) )
# 23312 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Parsetree.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.pattern * Parsetree.expression *
  Parsetree.value_constraint option) = 
# 2668 "parsing/parser.mly"
      ( (_1, _5, Some(Pvc_constraint { locally_abstract_univars=[]; typ=_3 })) )
# 23366 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = body;
            MenhirLib.EngineTypes.startp = _startpos_body_;
            MenhirLib.EngineTypes.endp = _endpos_body_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = rec_flag;
              MenhirLib.EngineTypes.startp = _startpos_rec_flag_;
              MenhirLib.EngineTypes.endp = _endpos_rec_flag_;
              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 = ext;
                  MenhirLib.EngineTypes.startp = _startpos_ext_;
                  MenhirLib.EngineTypes.endp = _endpos_ext_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    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 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let body : (Parsetree.pattern * Parsetree.expression *
  Parsetree.value_constraint option * bool) = Obj.magic body in
        let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined2_ in
        let _v : (let_bindings) = let _1 =
          let attrs2 =
            let _1 = _1_inlined2 in
            
# 4058 "parsing/parser.mly"
    ( _1 )
# 23430 "parsing/parser.ml"
            
          in
          let _endpos_attrs2_ = _endpos__1_inlined2_ in
          let attrs1 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 23439 "parsing/parser.ml"
            
          in
          let _endpos = _endpos_attrs2_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2695 "parsing/parser.mly"
    (
      let attrs = attrs1 @ attrs2 in
      mklbs ext rec_flag (mklb ~loc:_sloc true body attrs)
    )
# 23451 "parsing/parser.ml"
          
        in
        
# 2685 "parsing/parser.mly"
                                                ( _1 )
# 23457 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (let_binding) = Obj.magic _2 in
        let _1 : (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_bindings) = 
# 2686 "parsing/parser.mly"
                                                ( addlb _1 _2 )
# 23489 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = body;
            MenhirLib.EngineTypes.startp = _startpos_body_;
            MenhirLib.EngineTypes.endp = _endpos_body_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = rec_flag;
              MenhirLib.EngineTypes.startp = _startpos_rec_flag_;
              MenhirLib.EngineTypes.endp = _endpos_rec_flag_;
              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 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let body : (Parsetree.pattern * Parsetree.expression *
  Parsetree.value_constraint option * bool) = Obj.magic body in
        let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in
        let _1_inlined1 : (Parsetree.attributes) = 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_inlined2_ in
        let _v : (let_bindings) = let _1 =
          let attrs2 =
            let _1 = _1_inlined2 in
            
# 4058 "parsing/parser.mly"
    ( _1 )
# 23546 "parsing/parser.ml"
            
          in
          let _endpos_attrs2_ = _endpos__1_inlined2_ in
          let attrs1 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 23555 "parsing/parser.ml"
            
          in
          let ext = 
# 4069 "parsing/parser.mly"
                    ( None )
# 23561 "parsing/parser.ml"
           in
          let _endpos = _endpos_attrs2_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2695 "parsing/parser.mly"
    (
      let attrs = attrs1 @ attrs2 in
      mklbs ext rec_flag (mklb ~loc:_sloc true body attrs)
    )
# 23572 "parsing/parser.ml"
          
        in
        
# 2685 "parsing/parser.mly"
                                                ( _1 )
# 23578 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          MenhirLib.EngineTypes.next = {
            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 = rec_flag;
              MenhirLib.EngineTypes.startp = _startpos_rec_flag_;
              MenhirLib.EngineTypes.endp = _endpos_rec_flag_;
              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 _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let body : (Parsetree.pattern * Parsetree.expression *
  Parsetree.value_constraint option * bool) = Obj.magic body in
        let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _2 : (Ast_helper.str) = 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__1_inlined3_ in
        let _v : (let_bindings) = let _1 =
          let attrs2 =
            let _1 = _1_inlined3 in
            
# 4058 "parsing/parser.mly"
    ( _1 )
# 23649 "parsing/parser.ml"
            
          in
          let _endpos_attrs2_ = _endpos__1_inlined3_ in
          let attrs1 =
            let _1 = _1_inlined2 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 23658 "parsing/parser.ml"
            
          in
          let ext =
            let _startpos__1_ = _startpos__1_inlined1_ in
            let _endpos = _endpos__2_ in
            let _startpos = _startpos__1_ in
            let _loc = (_startpos, _endpos) in
            
# 4071 "parsing/parser.mly"
                    ( not_expecting _loc "extension" )
# 23669 "parsing/parser.ml"
            
          in
          let _endpos = _endpos_attrs2_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2695 "parsing/parser.mly"
    (
      let attrs = attrs1 @ attrs2 in
      mklbs ext rec_flag (mklb ~loc:_sloc true body attrs)
    )
# 23681 "parsing/parser.ml"
          
        in
        
# 2685 "parsing/parser.mly"
                                                ( _1 )
# 23687 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (let_binding) = Obj.magic _2 in
        let _1 : (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_bindings) = 
# 2686 "parsing/parser.mly"
                                                ( addlb _1 _2 )
# 23719 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = 
# 2371 "parsing/parser.mly"
      ( _1 )
# 23744 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = let _1 =
          let _1 = 
# 2373 "parsing/parser.mly"
      ( Ppat_constraint(_1, _3) )
# 23784 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 23793 "parsing/parser.ml"
          
        in
        
# 2374 "parsing/parser.mly"
      ( _1 )
# 23799 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let exp : (Parsetree.expression) = Obj.magic exp in
        let _1 : (Asttypes.label) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_exp_ in
        let _v : (Parsetree.pattern * Parsetree.expression) = let pat =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2640 "parsing/parser.mly"
              ( mkpatvar ~loc:_sloc _1 )
# 23835 "parsing/parser.ml"
          
        in
        
# 2712 "parsing/parser.mly"
      ( (pat, exp) )
# 23841 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Asttypes.label) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.pattern * Parsetree.expression) = let _endpos = _endpos__1_ in
        let _startpos = _startpos__1_ in
        let _loc = (_startpos, _endpos) in
        
# 2715 "parsing/parser.mly"
      ( (mkpatvar ~loc:_loc _1, mkexpvar ~loc:_loc _1) )
# 23869 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic exp in
        let _4 : unit = Obj.magic _4 in
        let typ : (Parsetree.core_type) = Obj.magic typ in
        let _2 : unit = Obj.magic _2 in
        let pat : (Parsetree.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 : (Parsetree.pattern * Parsetree.expression) = 
# 2717 "parsing/parser.mly"
      ( let loc = (_startpos_pat_, _endpos_typ_) in
        (ghpat ~loc (Ppat_constraint(pat, typ)), exp) )
# 23923 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic exp in
        let _2 : unit = Obj.magic _2 in
        let pat : (Parsetree.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 : (Parsetree.pattern * Parsetree.expression) = 
# 2720 "parsing/parser.mly"
      ( (pat, exp) )
# 23962 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (Parsetree.pattern * Parsetree.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 : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = 
# 2724 "parsing/parser.mly"
      ( let let_pat, let_exp = body in
        let_pat, let_exp, [] )
# 23988 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            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 : (Parsetree.pattern * Parsetree.expression) = Obj.magic body in
        let _1 : (
# 761 "parsing/parser.mly"
       (string)
# 24022 "parsing/parser.ml"
        ) = Obj.magic _1 in
        let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.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 : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = let pbop_op =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 24035 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_body_ in
        let _symbolstartpos = _startpos_bindings_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2727 "parsing/parser.mly"
      ( let let_pat, let_exp, rev_ands = bindings in
        let pbop_pat, pbop_exp = body in
        let pbop_loc = make_loc _sloc in
        let and_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in
        let_pat, let_exp, and_ :: rev_ands )
# 24048 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.class_declaration list) = 
# 211 "<standard.mly>"
    ( [] )
# 24066 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            MenhirLib.EngineTypes.next = {
              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 = _1_inlined2;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                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 = virt;
                    MenhirLib.EngineTypes.startp = _startpos_virt_;
                    MenhirLib.EngineTypes.endp = _endpos_virt_;
                    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 xs : (Parsetree.class_declaration list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let body : (Parsetree.class_expr) = Obj.magic body in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 24132 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let virt : (Asttypes.virtual_flag) = Obj.magic virt in
        let _1_inlined1 : (Parsetree.attributes) = 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_xs_ in
        let _v : (Parsetree.class_declaration list) = let x =
          let attrs2 =
            let _1 = _1_inlined3 in
            
# 4058 "parsing/parser.mly"
    ( _1 )
# 24147 "parsing/parser.ml"
            
          in
          let _endpos_attrs2_ = _endpos__1_inlined3_ in
          let id =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 24159 "parsing/parser.ml"
            
          in
          let attrs1 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 24167 "parsing/parser.ml"
            
          in
          let _endpos = _endpos_attrs2_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1944 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    let text = symbol_text _symbolstartpos in
    Ci.mk id body ~virt ~params ~attrs ~loc ~text ~docs
  )
# 24182 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 24188 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.class_description list) = 
# 211 "<standard.mly>"
    ( [] )
# 24206 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = cty;
              MenhirLib.EngineTypes.startp = _startpos_cty_;
              MenhirLib.EngineTypes.endp = _endpos_cty_;
              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 = _1_inlined2;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                  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 = virt;
                      MenhirLib.EngineTypes.startp = _startpos_virt_;
                      MenhirLib.EngineTypes.endp = _endpos_virt_;
                      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 xs : (Parsetree.class_description list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let cty : (Parsetree.class_type) = Obj.magic cty in
        let _6 : unit = Obj.magic _6 in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 24279 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let virt : (Asttypes.virtual_flag) = Obj.magic virt in
        let _1_inlined1 : (Parsetree.attributes) = 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_xs_ in
        let _v : (Parsetree.class_description list) = let x =
          let attrs2 =
            let _1 = _1_inlined3 in
            
# 4058 "parsing/parser.mly"
    ( _1 )
# 24294 "parsing/parser.ml"
            
          in
          let _endpos_attrs2_ = _endpos__1_inlined3_ in
          let id =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 24306 "parsing/parser.ml"
            
          in
          let attrs1 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 24314 "parsing/parser.ml"
            
          in
          let _endpos = _endpos_attrs2_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2235 "parsing/parser.mly"
    (
      let attrs = attrs1 @ attrs2 in
      let loc = make_loc _sloc in
      let docs = symbol_docs _sloc in
      let text = symbol_text _symbolstartpos in
      Ci.mk id cty ~virt ~params ~attrs ~loc ~text ~docs
    )
# 24329 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 24335 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.class_type_declaration list) = 
# 211 "<standard.mly>"
    ( [] )
# 24353 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = csig;
              MenhirLib.EngineTypes.startp = _startpos_csig_;
              MenhirLib.EngineTypes.endp = _endpos_csig_;
              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 = _1_inlined2;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                  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 = virt;
                      MenhirLib.EngineTypes.startp = _startpos_virt_;
                      MenhirLib.EngineTypes.endp = _endpos_virt_;
                      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 xs : (Parsetree.class_type_declaration list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let csig : (Parsetree.class_type) = Obj.magic csig in
        let _6 : unit = Obj.magic _6 in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 24426 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let virt : (Asttypes.virtual_flag) = Obj.magic virt in
        let _1_inlined1 : (Parsetree.attributes) = 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_xs_ in
        let _v : (Parsetree.class_type_declaration list) = let x =
          let attrs2 =
            let _1 = _1_inlined3 in
            
# 4058 "parsing/parser.mly"
    ( _1 )
# 24441 "parsing/parser.ml"
            
          in
          let _endpos_attrs2_ = _endpos__1_inlined3_ in
          let id =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 24453 "parsing/parser.ml"
            
          in
          let attrs1 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 24461 "parsing/parser.ml"
            
          in
          let _endpos = _endpos_attrs2_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2274 "parsing/parser.mly"
    (
      let attrs = attrs1 @ attrs2 in
      let loc = make_loc _sloc in
      let docs = symbol_docs _sloc in
      let text = symbol_text _symbolstartpos in
      Ci.mk id csig ~virt ~params ~attrs ~loc ~text ~docs
    )
# 24476 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 24482 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.module_binding list) = 
# 211 "<standard.mly>"
    ( [] )
# 24500 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            MenhirLib.EngineTypes.next = {
              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 = _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 xs : (Parsetree.module_binding list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let body : (Parsetree.module_expr) = Obj.magic body in
        let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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_xs_ in
        let _v : (Parsetree.module_binding list) = let x =
          let attrs2 =
            let _1 = _1_inlined3 in
            
# 4058 "parsing/parser.mly"
    ( _1 )
# 24563 "parsing/parser.ml"
            
          in
          let _endpos_attrs2_ = _endpos__1_inlined3_ in
          let name =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 24575 "parsing/parser.ml"
            
          in
          let attrs1 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 24583 "parsing/parser.ml"
            
          in
          let _endpos = _endpos_attrs2_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1600 "parsing/parser.mly"
  (
    let loc = make_loc _sloc in
    let attrs = attrs1 @ attrs2 in
    let docs = symbol_docs _sloc in
    let text = symbol_text _symbolstartpos in
    Mb.mk name body ~attrs ~loc ~text ~docs
  )
# 24598 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 24604 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.module_declaration list) = 
# 211 "<standard.mly>"
    ( [] )
# 24622 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = mty;
              MenhirLib.EngineTypes.startp = _startpos_mty_;
              MenhirLib.EngineTypes.endp = _endpos_mty_;
              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 = _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 xs : (Parsetree.module_declaration list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let mty : (Parsetree.module_type) = Obj.magic mty in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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_xs_ in
        let _v : (Parsetree.module_declaration list) = let x =
          let attrs2 =
            let _1 = _1_inlined3 in
            
# 4058 "parsing/parser.mly"
    ( _1 )
# 24692 "parsing/parser.ml"
            
          in
          let _endpos_attrs2_ = _endpos__1_inlined3_ in
          let name =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 24704 "parsing/parser.ml"
            
          in
          let attrs1 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 24712 "parsing/parser.ml"
            
          in
          let _endpos = _endpos_attrs2_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1885 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let docs = symbol_docs _sloc in
    let loc = make_loc _sloc in
    let text = symbol_text _symbolstartpos in
    Md.mk name mty ~attrs ~loc ~text ~docs
  )
# 24727 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 24733 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.attributes) = 
# 211 "<standard.mly>"
    ( [] )
# 24751 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attributes) = Obj.magic xs in
        let x : (Parsetree.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 : (Parsetree.attributes) = 
# 213 "<standard.mly>"
    ( x :: xs )
# 24783 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.type_declaration list) = 
# 211 "<standard.mly>"
    ( [] )
# 24801 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = xs_inlined1;
              MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos_xs_inlined1_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = kind_priv_manifest;
                MenhirLib.EngineTypes.startp = _startpos_kind_priv_manifest_;
                MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_;
                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 = 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 = _menhir_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 : (Parsetree.type_declaration list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs_inlined1 in
        let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 24868 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let _1_inlined1 : (Parsetree.attributes) = 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_xs_ in
        let _v : (Parsetree.type_declaration list) = let x =
          let xs = xs_inlined1 in
          let attrs2 =
            let _1 = _1_inlined3 in
            
# 4058 "parsing/parser.mly"
    ( _1 )
# 24883 "parsing/parser.ml"
            
          in
          let _endpos_attrs2_ = _endpos__1_inlined3_ in
          let cstrs =
            let _1 =
              let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 24892 "parsing/parser.ml"
               in
              
# 1044 "parsing/parser.mly"
    ( xs )
# 24897 "parsing/parser.ml"
              
            in
            
# 3138 "parsing/parser.mly"
    ( _1 )
# 24903 "parsing/parser.ml"
            
          in
          let id =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 24914 "parsing/parser.ml"
            
          in
          let attrs1 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 24922 "parsing/parser.ml"
            
          in
          let _endpos = _endpos_attrs2_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3127 "parsing/parser.mly"
    (
      let (kind, priv, manifest) = kind_priv_manifest in
      let docs = symbol_docs _sloc in
      let attrs = attrs1 @ attrs2 in
      let loc = make_loc _sloc in
      let text = symbol_text _symbolstartpos in
      Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text
    )
# 24938 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 24944 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.type_declaration list) = 
# 211 "<standard.mly>"
    ( [] )
# 24962 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined4;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined4_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined4_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = xs_inlined1;
              MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos_xs_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_inlined3;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
                  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 = 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 = _menhir_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 : (Parsetree.type_declaration list) = Obj.magic xs in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs_inlined1 in
        let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in
        let _1_inlined3 : unit = Obj.magic _1_inlined3 in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 25036 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let _1_inlined1 : (Parsetree.attributes) = 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_xs_ in
        let _v : (Parsetree.type_declaration list) = let x =
          let xs = xs_inlined1 in
          let attrs2 =
            let _1 = _1_inlined4 in
            
# 4058 "parsing/parser.mly"
    ( _1 )
# 25051 "parsing/parser.ml"
            
          in
          let _endpos_attrs2_ = _endpos__1_inlined4_ in
          let cstrs =
            let _1 =
              let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 25060 "parsing/parser.ml"
               in
              
# 1044 "parsing/parser.mly"
    ( xs )
# 25065 "parsing/parser.ml"
              
            in
            
# 3138 "parsing/parser.mly"
    ( _1 )
# 25071 "parsing/parser.ml"
            
          in
          let kind_priv_manifest = 
# 3173 "parsing/parser.mly"
      ( _2 )
# 25077 "parsing/parser.ml"
           in
          let id =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 25087 "parsing/parser.ml"
            
          in
          let attrs1 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 25095 "parsing/parser.ml"
            
          in
          let _endpos = _endpos_attrs2_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3127 "parsing/parser.mly"
    (
      let (kind, priv, manifest) = kind_priv_manifest in
      let docs = symbol_docs _sloc in
      let attrs = attrs1 @ attrs2 in
      let loc = make_loc _sloc in
      let text = symbol_text _symbolstartpos in
      Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text
    )
# 25111 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 25117 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.attributes) = 
# 211 "<standard.mly>"
    ( [] )
# 25135 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attributes) = Obj.magic xs in
        let x : (Parsetree.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 : (Parsetree.attributes) = 
# 213 "<standard.mly>"
    ( x :: xs )
# 25167 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.signature_item list list) = 
# 211 "<standard.mly>"
    ( [] )
# 25185 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.signature_item list list) = Obj.magic xs in
        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 : (Parsetree.signature_item list list) = let x =
          let _1 =
            let _startpos = _startpos__1_ in
            
# 970 "parsing/parser.mly"
  ( text_sig _startpos )
# 25220 "parsing/parser.ml"
            
          in
          
# 1742 "parsing/parser.mly"
      ( _1 )
# 25226 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 25232 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.signature_item list list) = Obj.magic xs in
        let _1 : (Parsetree.signature_item) = 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 : (Parsetree.signature_item list list) = let x =
          let _1 =
            let _startpos = _startpos__1_ in
            
# 968 "parsing/parser.mly"
  ( text_sig _startpos @ [_1] )
# 25267 "parsing/parser.ml"
            
          in
          
# 1742 "parsing/parser.mly"
      ( _1 )
# 25273 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 25279 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.structure_item list list) = 
# 211 "<standard.mly>"
    ( [] )
# 25297 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.structure_item list list) = Obj.magic xs in
        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 : (Parsetree.structure_item list list) = let x =
          let _1 =
            let ys =
              let items = 
# 1030 "parsing/parser.mly"
    ( [] )
# 25332 "parsing/parser.ml"
               in
              
# 1481 "parsing/parser.mly"
    ( items )
# 25337 "parsing/parser.ml"
              
            in
            let xs =
              let _startpos = _startpos__1_ in
              
# 966 "parsing/parser.mly"
  ( text_str _startpos )
# 25345 "parsing/parser.ml"
              
            in
            
# 267 "<standard.mly>"
    ( xs @ ys )
# 25351 "parsing/parser.ml"
            
          in
          
# 1497 "parsing/parser.mly"
      ( _1 )
# 25357 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 25363 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = e;
              MenhirLib.EngineTypes.startp = _startpos_e_;
              MenhirLib.EngineTypes.endp = _endpos_e_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_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 : (Parsetree.structure_item list list) = Obj.magic xs in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let e : (Parsetree.expression) = Obj.magic e in
        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 : (Parsetree.structure_item list list) = let x =
          let _1 =
            let ys =
              let (_endpos__1_, _1) = (_endpos__1_inlined1_, _1_inlined1) in
              let items =
                let x =
                  let _1 =
                    let _1 =
                      let attrs = 
# 4058 "parsing/parser.mly"
    ( _1 )
# 25417 "parsing/parser.ml"
                       in
                      
# 1488 "parsing/parser.mly"
    ( mkstrexp e attrs )
# 25422 "parsing/parser.ml"
                      
                    in
                    let _startpos__1_ = _startpos_e_ in
                    let _startpos = _startpos__1_ in
                    
# 964 "parsing/parser.mly"
  ( text_str _startpos @ [_1] )
# 25430 "parsing/parser.ml"
                    
                  in
                  let _startpos__1_ = _startpos_e_ in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 983 "parsing/parser.mly"
  ( mark_rhs_docs _startpos _endpos;
    _1 )
# 25440 "parsing/parser.ml"
                  
                in
                
# 1032 "parsing/parser.mly"
    ( x )
# 25446 "parsing/parser.ml"
                
              in
              
# 1481 "parsing/parser.mly"
    ( items )
# 25452 "parsing/parser.ml"
              
            in
            let xs =
              let _startpos = _startpos__1_ in
              
# 966 "parsing/parser.mly"
  ( text_str _startpos )
# 25460 "parsing/parser.ml"
              
            in
            
# 267 "<standard.mly>"
    ( xs @ ys )
# 25466 "parsing/parser.ml"
            
          in
          
# 1497 "parsing/parser.mly"
      ( _1 )
# 25472 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 25478 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.structure_item list list) = Obj.magic xs in
        let _1 : (Parsetree.structure_item) = 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 : (Parsetree.structure_item list list) = let x =
          let _1 =
            let _startpos = _startpos__1_ in
            
# 964 "parsing/parser.mly"
  ( text_str _startpos @ [_1] )
# 25513 "parsing/parser.ml"
            
          in
          
# 1497 "parsing/parser.mly"
      ( _1 )
# 25519 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 25525 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.class_type_field list list) = 
# 211 "<standard.mly>"
    ( [] )
# 25543 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.class_type_field list list) = Obj.magic xs in
        let _1 : (Parsetree.class_type_field) = 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 : (Parsetree.class_type_field list list) = let x =
          let _startpos = _startpos__1_ in
          
# 978 "parsing/parser.mly"
  ( text_csig _startpos @ [_1] )
# 25577 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 25583 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.class_field list list) = 
# 211 "<standard.mly>"
    ( [] )
# 25601 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.class_field list list) = Obj.magic xs in
        let _1 : (Parsetree.class_field) = 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 : (Parsetree.class_field list list) = let x =
          let _startpos = _startpos__1_ in
          
# 976 "parsing/parser.mly"
  ( text_cstr _startpos @ [_1] )
# 25635 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 25641 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.structure_item list list) = 
# 211 "<standard.mly>"
    ( [] )
# 25659 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.structure_item list list) = Obj.magic xs in
        let _1 : (Parsetree.structure_item) = 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 : (Parsetree.structure_item list list) = let x =
          let _startpos = _startpos__1_ in
          
# 964 "parsing/parser.mly"
  ( text_str _startpos @ [_1] )
# 25693 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 25699 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.toplevel_phrase list list) = 
# 211 "<standard.mly>"
    ( [] )
# 25717 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.toplevel_phrase list list) = Obj.magic xs in
        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 : (Parsetree.toplevel_phrase list list) = let x =
          let _1 =
            let x =
              let _1 = 
# 1030 "parsing/parser.mly"
    ( [] )
# 25752 "parsing/parser.ml"
               in
              
# 1283 "parsing/parser.mly"
    ( _1 )
# 25757 "parsing/parser.ml"
              
            in
            
# 183 "<standard.mly>"
    ( x )
# 25763 "parsing/parser.ml"
            
          in
          
# 1295 "parsing/parser.mly"
      ( _1 )
# 25769 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 25775 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined1;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = e;
              MenhirLib.EngineTypes.startp = _startpos_e_;
              MenhirLib.EngineTypes.endp = _endpos_e_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_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 : (Parsetree.toplevel_phrase list list) = Obj.magic xs in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let e : (Parsetree.expression) = Obj.magic e in
        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 : (Parsetree.toplevel_phrase list list) = let x =
          let _1 =
            let x =
              let _1 = _1_inlined1 in
              let _1 =
                let x =
                  let _1 =
                    let _1 =
                      let attrs = 
# 4058 "parsing/parser.mly"
    ( _1 )
# 25829 "parsing/parser.ml"
                       in
                      
# 1488 "parsing/parser.mly"
    ( mkstrexp e attrs )
# 25834 "parsing/parser.ml"
                      
                    in
                    
# 974 "parsing/parser.mly"
  ( Ptop_def [_1] )
# 25840 "parsing/parser.ml"
                    
                  in
                  let _startpos__1_ = _startpos_e_ in
                  let _startpos = _startpos__1_ in
                  
# 972 "parsing/parser.mly"
  ( text_def _startpos @ [_1] )
# 25848 "parsing/parser.ml"
                  
                in
                
# 1032 "parsing/parser.mly"
    ( x )
# 25854 "parsing/parser.ml"
                
              in
              
# 1283 "parsing/parser.mly"
    ( _1 )
# 25860 "parsing/parser.ml"
              
            in
            
# 183 "<standard.mly>"
    ( x )
# 25866 "parsing/parser.ml"
            
          in
          
# 1295 "parsing/parser.mly"
      ( _1 )
# 25872 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 25878 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.toplevel_phrase list list) = Obj.magic xs in
        let _1 : (Parsetree.structure_item) = 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 : (Parsetree.toplevel_phrase list list) = let x =
          let _1 =
            let _1 = 
# 974 "parsing/parser.mly"
  ( Ptop_def [_1] )
# 25912 "parsing/parser.ml"
             in
            let _startpos = _startpos__1_ in
            
# 972 "parsing/parser.mly"
  ( text_def _startpos @ [_1] )
# 25918 "parsing/parser.ml"
            
          in
          
# 1295 "parsing/parser.mly"
      ( _1 )
# 25924 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 25930 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.toplevel_phrase list list) = Obj.magic xs in
        let _1 : (Parsetree.toplevel_phrase) = 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 : (Parsetree.toplevel_phrase list list) = let x =
          let _1 =
            let _1 =
              let _endpos = _endpos__1_ in
              let _startpos = _startpos__1_ in
              
# 983 "parsing/parser.mly"
  ( mark_rhs_docs _startpos _endpos;
    _1 )
# 25968 "parsing/parser.ml"
              
            in
            let _startpos = _startpos__1_ in
            
# 972 "parsing/parser.mly"
  ( text_def _startpos @ [_1] )
# 25975 "parsing/parser.ml"
            
          in
          
# 1295 "parsing/parser.mly"
      ( _1 )
# 25981 "parsing/parser.ml"
          
        in
        
# 213 "<standard.mly>"
    ( x :: xs )
# 25987 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = opat;
          MenhirLib.EngineTypes.startp = _startpos_opat_;
          MenhirLib.EngineTypes.endp = _endpos_opat_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = octy;
            MenhirLib.EngineTypes.startp = _startpos_octy_;
            MenhirLib.EngineTypes.endp = _endpos_octy_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let opat : (Parsetree.pattern option) = Obj.magic opat in
        let octy : (Parsetree.core_type option) = Obj.magic octy in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_opat_ in
        let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let _2 = 
# 124 "<standard.mly>"
    ( None )
# 26026 "parsing/parser.ml"
         in
        let x =
          let label =
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 26036 "parsing/parser.ml"
            
          in
          let _startpos_label_ = _startpos__1_ in
          let _endpos = _endpos_opat_ in
          let _symbolstartpos = _startpos_label_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3013 "parsing/parser.mly"
    ( let constraint_loc, label, pat =
        match opat with
        | None ->
            (* No pattern; this is a pun. Desugar it.
               But that the pattern was there and the label reconstructed (which
               piece of AST is marked as ghost is important for warning
               emission). *)
            _sloc, make_ghost label, pat_of_label label
        | Some pat ->
            (_startpos_octy_, _endpos), label, pat
      in
      label, mkpat_opt_constraint ~loc:constraint_loc pat octy
    )
# 26058 "parsing/parser.ml"
          
        in
        
# 1220 "parsing/parser.mly"
    ( [x], None )
# 26064 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = opat;
            MenhirLib.EngineTypes.startp = _startpos_opat_;
            MenhirLib.EngineTypes.endp = _endpos_opat_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = octy;
              MenhirLib.EngineTypes.startp = _startpos_octy_;
              MenhirLib.EngineTypes.endp = _endpos_octy_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_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 : unit = Obj.magic x in
        let opat : (Parsetree.pattern option) = Obj.magic opat in
        let octy : (Parsetree.core_type option) = Obj.magic octy in
        let _1 : (Longident.t) = 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 : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let _2 = 
# 126 "<standard.mly>"
    ( Some x )
# 26110 "parsing/parser.ml"
         in
        let x =
          let label =
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 26120 "parsing/parser.ml"
            
          in
          let _startpos_label_ = _startpos__1_ in
          let _endpos = _endpos_opat_ in
          let _symbolstartpos = _startpos_label_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3013 "parsing/parser.mly"
    ( let constraint_loc, label, pat =
        match opat with
        | None ->
            (* No pattern; this is a pun. Desugar it.
               But that the pattern was there and the label reconstructed (which
               piece of AST is marked as ghost is important for warning
               emission). *)
            _sloc, make_ghost label, pat_of_label label
        | Some pat ->
            (_startpos_octy_, _endpos), label, pat
      in
      label, mkpat_opt_constraint ~loc:constraint_loc pat octy
    )
# 26142 "parsing/parser.ml"
          
        in
        
# 1220 "parsing/parser.mly"
    ( [x], None )
# 26148 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = y;
            MenhirLib.EngineTypes.startp = _startpos_y_;
            MenhirLib.EngineTypes.endp = _endpos_y_;
            MenhirLib.EngineTypes.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 = opat;
                MenhirLib.EngineTypes.startp = _startpos_opat_;
                MenhirLib.EngineTypes.endp = _endpos_opat_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _;
                  MenhirLib.EngineTypes.semv = octy;
                  MenhirLib.EngineTypes.startp = _startpos_octy_;
                  MenhirLib.EngineTypes.endp = _endpos_octy_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_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 y : unit = Obj.magic y in
        let _2 : unit = Obj.magic _2 in
        let opat : (Parsetree.pattern option) = Obj.magic opat in
        let octy : (Parsetree.core_type option) = Obj.magic octy in
        let _1 : (Longident.t) = 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 : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let x =
          let label =
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 26213 "parsing/parser.ml"
            
          in
          let _startpos_label_ = _startpos__1_ in
          let _endpos = _endpos_opat_ in
          let _symbolstartpos = _startpos_label_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3013 "parsing/parser.mly"
    ( let constraint_loc, label, pat =
        match opat with
        | None ->
            (* No pattern; this is a pun. Desugar it.
               But that the pattern was there and the label reconstructed (which
               piece of AST is marked as ghost is important for warning
               emission). *)
            _sloc, make_ghost label, pat_of_label label
        | Some pat ->
            (_startpos_octy_, _endpos), label, pat
      in
      label, mkpat_opt_constraint ~loc:constraint_loc pat octy
    )
# 26235 "parsing/parser.ml"
          
        in
        
# 1222 "parsing/parser.mly"
    ( [x], Some y )
# 26241 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = tail;
          MenhirLib.EngineTypes.startp = _startpos_tail_;
          MenhirLib.EngineTypes.endp = _endpos_tail_;
          MenhirLib.EngineTypes.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 = opat;
              MenhirLib.EngineTypes.startp = _startpos_opat_;
              MenhirLib.EngineTypes.endp = _endpos_opat_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = octy;
                MenhirLib.EngineTypes.startp = _startpos_octy_;
                MenhirLib.EngineTypes.endp = _endpos_octy_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let tail : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = Obj.magic tail in
        let _2 : unit = Obj.magic _2 in
        let opat : (Parsetree.pattern option) = Obj.magic opat in
        let octy : (Parsetree.core_type option) = Obj.magic octy in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_tail_ in
        let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let x =
          let label =
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 26299 "parsing/parser.ml"
            
          in
          let _startpos_label_ = _startpos__1_ in
          let _endpos = _endpos_opat_ in
          let _symbolstartpos = _startpos_label_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3013 "parsing/parser.mly"
    ( let constraint_loc, label, pat =
        match opat with
        | None ->
            (* No pattern; this is a pun. Desugar it.
               But that the pattern was there and the label reconstructed (which
               piece of AST is marked as ghost is important for warning
               emission). *)
            _sloc, make_ghost label, pat_of_label label
        | Some pat ->
            (_startpos_octy_, _endpos), label, pat
      in
      label, mkpat_opt_constraint ~loc:constraint_loc pat octy
    )
# 26321 "parsing/parser.ml"
          
        in
        
# 1226 "parsing/parser.mly"
    ( let xs, y = tail in
      x :: xs, y )
# 26328 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.case) = 
# 2760 "parsing/parser.mly"
      ( Exp.case _1 _3 )
# 26367 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _5 in
        let _4 : unit = Obj.magic _4 in
        let _3 : (Parsetree.expression) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.case) = 
# 2762 "parsing/parser.mly"
      ( Exp.case _1 ~guard:_3 _5 )
# 26420 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.case) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
        
# 2764 "parsing/parser.mly"
      ( Exp.case _1 (Exp.unreachable ~loc:(make_loc _loc__3_) ()) )
# 26460 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = tail;
          MenhirLib.EngineTypes.startp = _startpos_tail_;
          MenhirLib.EngineTypes.endp = _endpos_tail_;
          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 = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              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 tail : (Parsetree.object_field list * Asttypes.closed_flag) = Obj.magic tail in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 26523 "parsing/parser.ml"
        ) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_tail_ in
        let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head =
          let _6 =
            let _1 = _1_inlined3 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 26534 "parsing/parser.ml"
            
          in
          let _endpos__6_ = _endpos__1_inlined3_ in
          let _4 =
            let _1 = _1_inlined2 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 26543 "parsing/parser.ml"
            
          in
          let _endpos__4_ = _endpos__1_inlined2_ in
          let _3 =
            let _1 = _1_inlined1 in
            
# 3439 "parsing/parser.mly"
    ( _1 )
# 26552 "parsing/parser.ml"
            
          in
          let _1 =
            let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 26559 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 26567 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__6_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3705 "parsing/parser.mly"
    ( let info =
        match rhs_info _endpos__4_ with
        | Some _ as info_before_semi -> info_before_semi
        | None -> symbol_info _endpos
      in
      let attrs = add_info_attrs info (_4 @ _6) in
      Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 )
# 26582 "parsing/parser.ml"
          
        in
        
# 3686 "parsing/parser.mly"
      ( let (f, c) = tail in (head :: f, c) )
# 26588 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = tail;
          MenhirLib.EngineTypes.startp = _startpos_tail_;
          MenhirLib.EngineTypes.endp = _endpos_tail_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = ty;
              MenhirLib.EngineTypes.startp = _startpos_ty_;
              MenhirLib.EngineTypes.endp = _endpos_ty_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let tail : (Parsetree.object_field list * Asttypes.closed_flag) = Obj.magic tail in
        let _2 : unit = Obj.magic _2 in
        let ty : (Parsetree.core_type) = Obj.magic ty in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_ty_ in
        let _endpos = _endpos_tail_ in
        let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head =
          let _endpos = _endpos_ty_ in
          let _symbolstartpos = _startpos_ty_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3716 "parsing/parser.mly"
    ( Of.inherit_ ~loc:(make_loc _sloc) ty )
# 26631 "parsing/parser.ml"
          
        in
        
# 3686 "parsing/parser.mly"
      ( let (f, c) = tail in (head :: f, c) )
# 26637 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          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_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 _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 26693 "parsing/parser.ml"
        ) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_inlined3_ in
        let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head =
          let _6 =
            let _1 = _1_inlined3 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 26704 "parsing/parser.ml"
            
          in
          let _endpos__6_ = _endpos__1_inlined3_ in
          let _4 =
            let _1 = _1_inlined2 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 26713 "parsing/parser.ml"
            
          in
          let _endpos__4_ = _endpos__1_inlined2_ in
          let _3 =
            let _1 = _1_inlined1 in
            
# 3439 "parsing/parser.mly"
    ( _1 )
# 26722 "parsing/parser.ml"
            
          in
          let _1 =
            let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 26729 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 26737 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__6_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3705 "parsing/parser.mly"
    ( let info =
        match rhs_info _endpos__4_ with
        | Some _ as info_before_semi -> info_before_semi
        | None -> symbol_info _endpos
      in
      let attrs = add_info_attrs info (_4 @ _6) in
      Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 )
# 26752 "parsing/parser.ml"
          
        in
        
# 3689 "parsing/parser.mly"
      ( [head], Closed )
# 26758 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = ty;
            MenhirLib.EngineTypes.startp = _startpos_ty_;
            MenhirLib.EngineTypes.endp = _endpos_ty_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let ty : (Parsetree.core_type) = Obj.magic ty in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_ty_ in
        let _endpos = _endpos__2_ in
        let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head =
          let _endpos = _endpos_ty_ in
          let _symbolstartpos = _startpos_ty_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3716 "parsing/parser.mly"
    ( Of.inherit_ ~loc:(make_loc _sloc) ty )
# 26794 "parsing/parser.ml"
          
        in
        
# 3689 "parsing/parser.mly"
      ( [head], Closed )
# 26800 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
              MenhirLib.EngineTypes.semv = _2;
              MenhirLib.EngineTypes.startp = _startpos__2_;
              MenhirLib.EngineTypes.endp = _endpos__2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                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 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 26842 "parsing/parser.ml"
        ) = 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 : (Parsetree.object_field list * Asttypes.closed_flag) = let head =
          let _4 =
            let _1 = _1_inlined2 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 26853 "parsing/parser.ml"
            
          in
          let _endpos__4_ = _endpos__1_inlined2_ in
          let _3 =
            let _1 = _1_inlined1 in
            
# 3439 "parsing/parser.mly"
    ( _1 )
# 26862 "parsing/parser.ml"
            
          in
          let _1 =
            let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 26869 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 26877 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__4_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3698 "parsing/parser.mly"
    ( let info = symbol_info _endpos in
      let attrs = add_info_attrs info _4 in
      Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 )
# 26888 "parsing/parser.ml"
          
        in
        
# 3692 "parsing/parser.mly"
      ( [head], Closed )
# 26894 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = ty;
          MenhirLib.EngineTypes.startp = _startpos_ty_;
          MenhirLib.EngineTypes.endp = _endpos_ty_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let ty : (Parsetree.core_type) = Obj.magic ty in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_ty_ in
        let _endpos = _endpos_ty_ in
        let _v : (Parsetree.object_field list * Asttypes.closed_flag) = let head =
          let _endpos = _endpos_ty_ in
          let _symbolstartpos = _startpos_ty_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3716 "parsing/parser.mly"
    ( Of.inherit_ ~loc:(make_loc _sloc) ty )
# 26923 "parsing/parser.ml"
          
        in
        
# 3692 "parsing/parser.mly"
      ( [head], Closed )
# 26929 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Parsetree.object_field list * Asttypes.closed_flag) = 
# 3694 "parsing/parser.mly"
      ( [], Open )
# 26954 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 = private_;
                MenhirLib.EngineTypes.startp = _startpos_private__;
                MenhirLib.EngineTypes.endp = _endpos_private__;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  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 : (Parsetree.core_type) = Obj.magic _1_inlined2 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined1 : (
# 778 "parsing/parser.mly"
       (string)
# 27001 "parsing/parser.ml"
        ) = Obj.magic _1_inlined1 in
        let private_ : (Asttypes.private_flag) = Obj.magic private_ in
        let _1 : (Parsetree.attributes) = 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 : ((Asttypes.label Asttypes.loc * Asttypes.private_flag *
   Parsetree.class_field_kind) *
  Parsetree.attributes) = let ty =
          let _1 = _1_inlined2 in
          
# 3435 "parsing/parser.mly"
    ( _1 )
# 27015 "parsing/parser.ml"
          
        in
        let label =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 27023 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 27031 "parsing/parser.ml"
          
        in
        let attrs = 
# 4062 "parsing/parser.mly"
    ( _1 )
# 27037 "parsing/parser.ml"
         in
        let _1 = 
# 3961 "parsing/parser.mly"
                                                ( Fresh )
# 27042 "parsing/parser.ml"
         in
        
# 2082 "parsing/parser.mly"
      ( (label, private_, Cfk_virtual ty), attrs )
# 27047 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _menhir_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 : (Parsetree.expression) = Obj.magic _5 in
        let _1_inlined1 : (
# 778 "parsing/parser.mly"
       (string)
# 27087 "parsing/parser.ml"
        ) = Obj.magic _1_inlined1 in
        let _3 : (Asttypes.private_flag) = Obj.magic _3 in
        let _1 : (Parsetree.attributes) = 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 : ((Asttypes.label Asttypes.loc * Asttypes.private_flag *
   Parsetree.class_field_kind) *
  Parsetree.attributes) = let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 27101 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 27109 "parsing/parser.ml"
          
        in
        let _2 = 
# 4062 "parsing/parser.mly"
    ( _1 )
# 27115 "parsing/parser.ml"
         in
        let _1 = 
# 3964 "parsing/parser.mly"
                                                ( Fresh )
# 27120 "parsing/parser.ml"
         in
        
# 2084 "parsing/parser.mly"
      ( let e = _5 in
        let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in
        (_4, _3,
        Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 )
# 27128 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_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 = _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 : (Parsetree.expression) = Obj.magic _5 in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 27174 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let _3 : (Asttypes.private_flag) = Obj.magic _3 in
        let _1_inlined1 : (Parsetree.attributes) = 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__5_ in
        let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag *
   Parsetree.class_field_kind) *
  Parsetree.attributes) = let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 27189 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 27197 "parsing/parser.ml"
          
        in
        let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 27205 "parsing/parser.ml"
          
        in
        let _1 = 
# 3965 "parsing/parser.mly"
                                                ( Override )
# 27211 "parsing/parser.ml"
         in
        
# 2084 "parsing/parser.mly"
      ( let e = _5 in
        let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in
        (_4, _3,
        Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 )
# 27219 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined2;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
              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 = _menhir_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 : (Parsetree.expression) = Obj.magic _8 in
        let _7 : unit = Obj.magic _7 in
        let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined1 : (
# 778 "parsing/parser.mly"
       (string)
# 27280 "parsing/parser.ml"
        ) = Obj.magic _1_inlined1 in
        let _3 : (Asttypes.private_flag) = Obj.magic _3 in
        let _1 : (Parsetree.attributes) = 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 : ((Asttypes.label Asttypes.loc * Asttypes.private_flag *
   Parsetree.class_field_kind) *
  Parsetree.attributes) = let _6 =
          let _1 = _1_inlined2 in
          
# 3435 "parsing/parser.mly"
    ( _1 )
# 27294 "parsing/parser.ml"
          
        in
        let _startpos__6_ = _startpos__1_inlined2_ in
        let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 27303 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 27311 "parsing/parser.ml"
          
        in
        let _2 = 
# 4062 "parsing/parser.mly"
    ( _1 )
# 27317 "parsing/parser.ml"
         in
        let _1 = 
# 3964 "parsing/parser.mly"
                                                ( Fresh )
# 27322 "parsing/parser.ml"
         in
        
# 2090 "parsing/parser.mly"
      ( let poly_exp =
          let loc = (_startpos__6_, _endpos__8_) in
          ghexp ~loc (Pexp_poly(_8, Some _6)) in
        (_4, _3, Cfk_concrete (_1, poly_exp)), _2 )
# 27330 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
              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_inlined2;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                  MenhirLib.EngineTypes.endp = _endpos__1_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 = _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 : (Parsetree.expression) = Obj.magic _8 in
        let _7 : unit = Obj.magic _7 in
        let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 27397 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let _3 : (Asttypes.private_flag) = Obj.magic _3 in
        let _1_inlined1 : (Parsetree.attributes) = 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__8_ in
        let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag *
   Parsetree.class_field_kind) *
  Parsetree.attributes) = let _6 =
          let _1 = _1_inlined3 in
          
# 3435 "parsing/parser.mly"
    ( _1 )
# 27412 "parsing/parser.ml"
          
        in
        let _startpos__6_ = _startpos__1_inlined3_ in
        let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 27421 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 27429 "parsing/parser.ml"
          
        in
        let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 27437 "parsing/parser.ml"
          
        in
        let _1 = 
# 3965 "parsing/parser.mly"
                                                ( Override )
# 27443 "parsing/parser.ml"
         in
        
# 2090 "parsing/parser.mly"
      ( let poly_exp =
          let loc = (_startpos__6_, _endpos__8_) in
          ghexp ~loc (Pexp_poly(_8, Some _6)) in
        (_4, _3, Cfk_concrete (_1, poly_exp)), _2 )
# 27451 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _11;
          MenhirLib.EngineTypes.startp = _startpos__11_;
          MenhirLib.EngineTypes.endp = _endpos__11_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _10;
            MenhirLib.EngineTypes.startp = _startpos__10_;
            MenhirLib.EngineTypes.endp = _endpos__10_;
            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 = xs;
                  MenhirLib.EngineTypes.startp = _startpos_xs_;
                  MenhirLib.EngineTypes.endp = _endpos_xs_;
                  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 = _menhir_s;
                            MenhirLib.EngineTypes.semv = _1;
                            MenhirLib.EngineTypes.startp = _startpos__1_;
                            MenhirLib.EngineTypes.endp = _endpos__1_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _11 : (Parsetree.expression) = Obj.magic _11 in
        let _10 : unit = Obj.magic _10 in
        let _9 : (Parsetree.core_type) = Obj.magic _9 in
        let _8 : unit = Obj.magic _8 in
        let xs : (string Asttypes.loc list) = Obj.magic xs in
        let _6 : unit = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined1 : (
# 778 "parsing/parser.mly"
       (string)
# 27533 "parsing/parser.ml"
        ) = Obj.magic _1_inlined1 in
        let _3 : (Asttypes.private_flag) = Obj.magic _3 in
        let _1 : (Parsetree.attributes) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__11_ in
        let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag *
   Parsetree.class_field_kind) *
  Parsetree.attributes) = let _7 = 
# 2637 "parsing/parser.mly"
    ( xs )
# 27545 "parsing/parser.ml"
         in
        let _startpos__7_ = _startpos_xs_ in
        let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 27553 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 27561 "parsing/parser.ml"
          
        in
        let _startpos__4_ = _startpos__1_inlined1_ in
        let _2 = 
# 4062 "parsing/parser.mly"
    ( _1 )
# 27568 "parsing/parser.ml"
         in
        let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in
        let _1 = 
# 3964 "parsing/parser.mly"
                                                ( Fresh )
# 27574 "parsing/parser.ml"
         in
        let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in
        let _endpos = _endpos__11_ in
        let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
          _startpos__1_
        else
          if _startpos__2_ != _endpos__2_ then
            _startpos__2_
          else
            if _startpos__3_ != _endpos__3_ then
              _startpos__3_
            else
              _startpos__4_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2096 "parsing/parser.mly"
      ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in
        let poly_exp =
          let exp, poly =
            (* it seems odd to use the global ~loc here while poly_exp_loc
               is tighter, but this is what ocamlyacc does;
               TODO improve parser.mly *)
            wrap_type_annotation ~loc:_sloc _7 _9 _11 in
          ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in
        (_4, _3,
        Cfk_concrete (_1, poly_exp)), _2 )
# 27601 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _11;
          MenhirLib.EngineTypes.startp = _startpos__11_;
          MenhirLib.EngineTypes.endp = _endpos__11_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _10;
            MenhirLib.EngineTypes.startp = _startpos__10_;
            MenhirLib.EngineTypes.endp = _endpos__10_;
            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 = xs;
                  MenhirLib.EngineTypes.startp = _startpos_xs_;
                  MenhirLib.EngineTypes.endp = _endpos_xs_;
                  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_inlined2;
                        MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                        MenhirLib.EngineTypes.endp = _endpos__1_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 = _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 _11 : (Parsetree.expression) = Obj.magic _11 in
        let _10 : unit = Obj.magic _10 in
        let _9 : (Parsetree.core_type) = Obj.magic _9 in
        let _8 : unit = Obj.magic _8 in
        let xs : (string Asttypes.loc list) = Obj.magic xs in
        let _6 : unit = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 27689 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let _3 : (Asttypes.private_flag) = Obj.magic _3 in
        let _1_inlined1 : (Parsetree.attributes) = 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__11_ in
        let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag *
   Parsetree.class_field_kind) *
  Parsetree.attributes) = let _7 = 
# 2637 "parsing/parser.mly"
    ( xs )
# 27702 "parsing/parser.ml"
         in
        let _startpos__7_ = _startpos_xs_ in
        let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 27710 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 27718 "parsing/parser.ml"
          
        in
        let _startpos__4_ = _startpos__1_inlined2_ in
        let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 27727 "parsing/parser.ml"
          
        in
        let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
        let _1 = 
# 3965 "parsing/parser.mly"
                                                ( Override )
# 27734 "parsing/parser.ml"
         in
        let _endpos = _endpos__11_ in
        let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
          _startpos__1_
        else
          if _startpos__2_ != _endpos__2_ then
            _startpos__2_
          else
            if _startpos__3_ != _endpos__3_ then
              _startpos__3_
            else
              _startpos__4_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2096 "parsing/parser.mly"
      ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in
        let poly_exp =
          let exp, poly =
            (* it seems odd to use the global ~loc here while poly_exp_loc
               is tighter, but this is what ocamlyacc does;
               TODO improve parser.mly *)
            wrap_type_annotation ~loc:_sloc _7 _9 _11 in
          ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in
        (_4, _3,
        Cfk_concrete (_1, poly_exp)), _2 )
# 27760 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 27781 "parsing/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 : (Longident.t) = 
# 3817 "parsing/parser.mly"
                      ( Lident _1 )
# 27789 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (
# 778 "parsing/parser.mly"
       (string)
# 27822 "parsing/parser.ml"
        ) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Longident.t) = 
# 3818 "parsing/parser.mly"
                      ( Ldot(_1,_3) )
# 27832 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 829 "parsing/parser.mly"
       (string)
# 27853 "parsing/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 : (Longident.t) = 
# 3817 "parsing/parser.mly"
                      ( Lident _1 )
# 27861 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (
# 829 "parsing/parser.mly"
       (string)
# 27894 "parsing/parser.ml"
        ) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Longident.t) = 
# 3818 "parsing/parser.mly"
                      ( Ldot(_1,_3) )
# 27904 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Asttypes.label) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = let _1 = 
# 3855 "parsing/parser.mly"
                                                  ( _1 )
# 27929 "parsing/parser.ml"
         in
        
# 3817 "parsing/parser.mly"
                      ( Lident _1 )
# 27934 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Longident.t) = let _1 =
          let _1 = 
# 3797 "parsing/parser.mly"
                                                ( "::" )
# 27974 "parsing/parser.ml"
           in
          
# 3855 "parsing/parser.mly"
                                                  ( _1 )
# 27979 "parsing/parser.ml"
          
        in
        
# 3817 "parsing/parser.mly"
                      ( Lident _1 )
# 27985 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Asttypes.label) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = let _1 = 
# 3855 "parsing/parser.mly"
                                                  ( _1 )
# 28010 "parsing/parser.ml"
         in
        
# 3817 "parsing/parser.mly"
                      ( Lident _1 )
# 28015 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.label) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Longident.t) = let _3 =
          let _1 = _1_inlined1 in
          
# 3855 "parsing/parser.mly"
                                                  ( _1 )
# 28056 "parsing/parser.ml"
          
        in
        
# 3818 "parsing/parser.mly"
                      ( Ldot(_1,_3) )
# 28062 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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_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 : unit = Obj.magic _3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Longident.t) = let _3 =
          let _1 = 
# 3797 "parsing/parser.mly"
                                                ( "::" )
# 28116 "parsing/parser.ml"
           in
          
# 3855 "parsing/parser.mly"
                                                  ( _1 )
# 28121 "parsing/parser.ml"
          
        in
        
# 3818 "parsing/parser.mly"
                      ( Ldot(_1,_3) )
# 28127 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.label) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Longident.t) = let _3 =
          let _1 = _1_inlined1 in
          
# 3855 "parsing/parser.mly"
                                                  ( _1 )
# 28168 "parsing/parser.ml"
          
        in
        
# 3818 "parsing/parser.mly"
                      ( Ldot(_1,_3) )
# 28174 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Asttypes.label) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = 
# 3817 "parsing/parser.mly"
                      ( Lident _1 )
# 28199 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Asttypes.label) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Longident.t) = 
# 3818 "parsing/parser.mly"
                      ( Ldot(_1,_3) )
# 28238 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 28259 "parsing/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 : (Longident.t) = 
# 3817 "parsing/parser.mly"
                      ( Lident _1 )
# 28267 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (
# 778 "parsing/parser.mly"
       (string)
# 28300 "parsing/parser.ml"
        ) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Longident.t) = 
# 3818 "parsing/parser.mly"
                      ( Ldot(_1,_3) )
# 28310 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 829 "parsing/parser.mly"
       (string)
# 28331 "parsing/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 : (Longident.t) = 
# 3817 "parsing/parser.mly"
                      ( Lident _1 )
# 28339 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (
# 829 "parsing/parser.mly"
       (string)
# 28372 "parsing/parser.ml"
        ) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Longident.t) = 
# 3818 "parsing/parser.mly"
                      ( Ldot(_1,_3) )
# 28382 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Asttypes.label) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = 
# 3817 "parsing/parser.mly"
                      ( Lident _1 )
# 28407 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Asttypes.label) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Longident.t) = 
# 3818 "parsing/parser.mly"
                      ( Ldot(_1,_3) )
# 28446 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = 
# 3833 "parsing/parser.mly"
                                            ( _1 )
# 28471 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Longident.t) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Longident.t) = let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3835 "parsing/parser.mly"
      ( lapply ~loc:_sloc _1 _3 )
# 28520 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Longident.t) = 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 : (Longident.t) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
        
# 3837 "parsing/parser.mly"
      ( expecting _loc__3_ "module path" )
# 28560 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = 
# 3830 "parsing/parser.mly"
                                         ( _1 )
# 28585 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = me;
          MenhirLib.EngineTypes.startp = _startpos_me_;
          MenhirLib.EngineTypes.endp = _endpos_me_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let me : (Parsetree.module_expr) = Obj.magic me in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_me_ in
        let _v : (Parsetree.module_expr) = 
# 1557 "parsing/parser.mly"
      ( me )
# 28617 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.module_expr) = let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1559 "parsing/parser.mly"
      ( expecting _loc__1_ "=" )
# 28650 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = me;
          MenhirLib.EngineTypes.startp = _startpos_me_;
          MenhirLib.EngineTypes.endp = _endpos_me_;
          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 = mty;
              MenhirLib.EngineTypes.startp = _startpos_mty_;
              MenhirLib.EngineTypes.endp = _endpos_mty_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_s;
                MenhirLib.EngineTypes.semv = _1;
                MenhirLib.EngineTypes.startp = _startpos__1_;
                MenhirLib.EngineTypes.endp = _endpos__1_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let me : (Parsetree.module_expr) = Obj.magic me in
        let _3 : unit = Obj.magic _3 in
        let mty : (Parsetree.module_type) = Obj.magic mty in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_me_ in
        let _v : (Parsetree.module_expr) = let _1 =
          let _1 = 
# 1562 "parsing/parser.mly"
        ( Pmod_constraint(me, mty) )
# 28697 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos_me_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1003 "parsing/parser.mly"
    ( mkmod ~loc:_sloc _1 )
# 28706 "parsing/parser.ml"
          
        in
        
# 1566 "parsing/parser.mly"
    ( _1 )
# 28712 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _menhir_s;
            MenhirLib.EngineTypes.semv = arg_and_pos;
            MenhirLib.EngineTypes.startp = _startpos_arg_and_pos_;
            MenhirLib.EngineTypes.endp = _endpos_arg_and_pos_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let body : (Parsetree.module_expr) = Obj.magic body in
        let arg_and_pos : (Lexing.position * Parsetree.functor_parameter) = Obj.magic arg_and_pos in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_arg_and_pos_ in
        let _endpos = _endpos_body_ in
        let _v : (Parsetree.module_expr) = let _1 =
          let _1 = 
# 1564 "parsing/parser.mly"
        ( let (_, arg) = arg_and_pos in
          Pmod_functor(arg, body) )
# 28746 "parsing/parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1003 "parsing/parser.mly"
    ( mkmod ~loc:_sloc _1 )
# 28755 "parsing/parser.ml"
          
        in
        
# 1566 "parsing/parser.mly"
    ( _1 )
# 28761 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = mty;
          MenhirLib.EngineTypes.startp = _startpos_mty_;
          MenhirLib.EngineTypes.endp = _endpos_mty_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let mty : (Parsetree.module_type) = Obj.magic mty in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_mty_ in
        let _v : (Parsetree.module_type) = 
# 1809 "parsing/parser.mly"
      ( mty )
# 28793 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.module_type) = let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1811 "parsing/parser.mly"
      ( expecting _loc__1_ ":" )
# 28826 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _menhir_s;
            MenhirLib.EngineTypes.semv = arg_and_pos;
            MenhirLib.EngineTypes.startp = _startpos_arg_and_pos_;
            MenhirLib.EngineTypes.endp = _endpos_arg_and_pos_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let body : (Parsetree.module_type) = Obj.magic body in
        let arg_and_pos : (Lexing.position * Parsetree.functor_parameter) = Obj.magic arg_and_pos in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_arg_and_pos_ in
        let _endpos = _endpos_body_ in
        let _v : (Parsetree.module_type) = let _1 =
          let _1 = 
# 1814 "parsing/parser.mly"
        ( let (_, arg) = arg_and_pos in
          Pmty_functor(arg, body) )
# 28860 "parsing/parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1005 "parsing/parser.mly"
    ( mkmty ~loc:_sloc _1 )
# 28869 "parsing/parser.ml"
          
        in
        
# 1817 "parsing/parser.mly"
    ( _1 )
# 28875 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = s;
            MenhirLib.EngineTypes.startp = _startpos_s_;
            MenhirLib.EngineTypes.endp = _endpos_s_;
            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 s : (Parsetree.structure) = Obj.magic s in
        let _1_inlined1 : (Parsetree.attributes) = 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 : (Parsetree.module_expr) = let attrs =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 28923 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1395 "parsing/parser.mly"
      ( mkmod ~loc:_sloc ~attrs (Pmod_structure s) )
# 28932 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.structure) = Obj.magic _3 in
        let _1_inlined1 : (Parsetree.attributes) = 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 : (Parsetree.module_expr) = let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 28980 "parsing/parser.ml"
          
        in
        let _loc__4_ = (_startpos__4_, _endpos__4_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1397 "parsing/parser.mly"
      ( unclosed "struct" _loc__1_ "end" _loc__4_ )
# 28988 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.module_expr) = let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1399 "parsing/parser.mly"
      ( expecting _loc__1_ "struct" )
# 29021 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = me;
          MenhirLib.EngineTypes.startp = _startpos_me_;
          MenhirLib.EngineTypes.endp = _endpos_me_;
          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 = _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 me : (Parsetree.module_expr) = Obj.magic me in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined2 : ((Lexing.position * Parsetree.functor_parameter) list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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_me_ in
        let _v : (Parsetree.module_expr) = let args =
          let _1 = _1_inlined2 in
          
# 1361 "parsing/parser.mly"
    ( _1 )
# 29076 "parsing/parser.ml"
          
        in
        let attrs =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 29084 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_me_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1401 "parsing/parser.mly"
      ( wrap_mod_attrs ~loc:_sloc attrs (
          List.fold_left (fun acc (startpos, arg) ->
            mkmod ~loc:(startpos, _endpos) (Pmod_functor (arg, acc))
          ) me args
        ) )
# 29097 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = me;
          MenhirLib.EngineTypes.startp = _startpos_me_;
          MenhirLib.EngineTypes.endp = _endpos_me_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let me : (Parsetree.module_expr) = Obj.magic me in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_me_ in
        let _endpos = _endpos_me_ in
        let _v : (Parsetree.module_expr) = 
# 1407 "parsing/parser.mly"
      ( me )
# 29122 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = attr;
          MenhirLib.EngineTypes.startp = _startpos_attr_;
          MenhirLib.EngineTypes.endp = _endpos_attr_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = me;
            MenhirLib.EngineTypes.startp = _startpos_me_;
            MenhirLib.EngineTypes.endp = _endpos_me_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let attr : (Parsetree.attribute) = Obj.magic attr in
        let me : (Parsetree.module_expr) = Obj.magic me in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_me_ in
        let _endpos = _endpos_attr_ in
        let _v : (Parsetree.module_expr) = 
# 1409 "parsing/parser.mly"
      ( Mod.attr me attr )
# 29154 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.module_expr) = let _1 =
          let _1 =
            let x =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 29185 "parsing/parser.ml"
              
            in
            
# 1413 "parsing/parser.mly"
        ( Pmod_ident x )
# 29191 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1003 "parsing/parser.mly"
    ( mkmod ~loc:_sloc _1 )
# 29200 "parsing/parser.ml"
          
        in
        
# 1424 "parsing/parser.mly"
    ( _1 )
# 29206 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = me2;
          MenhirLib.EngineTypes.startp = _startpos_me2_;
          MenhirLib.EngineTypes.endp = _endpos_me2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = me1;
            MenhirLib.EngineTypes.startp = _startpos_me1_;
            MenhirLib.EngineTypes.endp = _endpos_me1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let me2 : (Parsetree.module_expr) = Obj.magic me2 in
        let me1 : (Parsetree.module_expr) = Obj.magic me1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_me1_ in
        let _endpos = _endpos_me2_ in
        let _v : (Parsetree.module_expr) = let _1 =
          let _1 = 
# 1416 "parsing/parser.mly"
        ( Pmod_apply(me1, me2) )
# 29239 "parsing/parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos_me2_, _startpos_me1_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1003 "parsing/parser.mly"
    ( mkmod ~loc:_sloc _1 )
# 29248 "parsing/parser.ml"
          
        in
        
# 1424 "parsing/parser.mly"
    ( _1 )
# 29254 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = me;
              MenhirLib.EngineTypes.startp = _startpos_me_;
              MenhirLib.EngineTypes.endp = _endpos_me_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let me : (Parsetree.module_expr) = Obj.magic me in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_me_ in
        let _endpos = _endpos__3_ in
        let _v : (Parsetree.module_expr) = let _1 =
          let _1 = 
# 1419 "parsing/parser.mly"
        ( Pmod_apply_unit me )
# 29294 "parsing/parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_me_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1003 "parsing/parser.mly"
    ( mkmod ~loc:_sloc _1 )
# 29303 "parsing/parser.ml"
          
        in
        
# 1424 "parsing/parser.mly"
    ( _1 )
# 29309 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = ex;
          MenhirLib.EngineTypes.startp = _startpos_ex_;
          MenhirLib.EngineTypes.endp = _endpos_ex_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let ex : (Parsetree.extension) = Obj.magic ex in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_ex_ in
        let _endpos = _endpos_ex_ in
        let _v : (Parsetree.module_expr) = let _1 =
          let _1 = 
# 1422 "parsing/parser.mly"
        ( Pmod_extension ex )
# 29335 "parsing/parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos_ex_, _startpos_ex_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1003 "parsing/parser.mly"
    ( mkmod ~loc:_sloc _1 )
# 29344 "parsing/parser.ml"
          
        in
        
# 1424 "parsing/parser.mly"
    ( _1 )
# 29350 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (
# 829 "parsing/parser.mly"
       (string)
# 29371 "parsing/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 : (string option) = 
# 1378 "parsing/parser.mly"
      ( Some x )
# 29379 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 1381 "parsing/parser.mly"
      ( None )
# 29404 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_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 = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              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 = ext;
                    MenhirLib.EngineTypes.startp = _startpos_ext_;
                    MenhirLib.EngineTypes.endp = _endpos_ext_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (
# 829 "parsing/parser.mly"
       (string)
# 29464 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined4_ in
        let _v : (Parsetree.module_substitution * string Asttypes.loc option) = let attrs2 =
          let _1 = _1_inlined4 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 29477 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined4_ in
        let body =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 29489 "parsing/parser.ml"
          
        in
        let uid =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 29500 "parsing/parser.ml"
          
        in
        let attrs1 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 29508 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_attrs2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1847 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    Ms.mk uid body ~attrs ~loc ~docs, ext
  )
# 29522 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_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 _6 : unit = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (
# 829 "parsing/parser.mly"
       (string)
# 29575 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let _2 : (string Asttypes.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__6_ in
        let _v : (Parsetree.module_substitution * string Asttypes.loc option) = let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 29591 "parsing/parser.ml"
          
        in
        let _3 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 29599 "parsing/parser.ml"
          
        in
        let _loc__6_ = (_startpos__6_, _endpos__6_) in
        
# 1854 "parsing/parser.mly"
    ( expecting _loc__6_ "module path" )
# 29606 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = s;
            MenhirLib.EngineTypes.startp = _startpos_s_;
            MenhirLib.EngineTypes.endp = _endpos_s_;
            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 s : (Parsetree.signature) = Obj.magic s in
        let _1_inlined1 : (Parsetree.attributes) = 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 : (Parsetree.module_type) = let attrs =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 29654 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1691 "parsing/parser.mly"
      ( mkmty ~loc:_sloc ~attrs (Pmty_signature s) )
# 29663 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.signature) = Obj.magic _3 in
        let _1_inlined1 : (Parsetree.attributes) = 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 : (Parsetree.module_type) = let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 29711 "parsing/parser.ml"
          
        in
        let _loc__4_ = (_startpos__4_, _endpos__4_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1693 "parsing/parser.mly"
      ( unclosed "sig" _loc__1_ "end" _loc__4_ )
# 29719 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.module_type) = let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1695 "parsing/parser.mly"
      ( expecting _loc__1_ "sig" )
# 29752 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = mty;
          MenhirLib.EngineTypes.startp = _startpos_mty_;
          MenhirLib.EngineTypes.endp = _endpos_mty_;
          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 = _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 mty : (Parsetree.module_type) = Obj.magic mty in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined2 : ((Lexing.position * Parsetree.functor_parameter) list) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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_mty_ in
        let _v : (Parsetree.module_type) = let args =
          let _1 = _1_inlined2 in
          
# 1361 "parsing/parser.mly"
    ( _1 )
# 29807 "parsing/parser.ml"
          
        in
        let attrs =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 29815 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_mty_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1699 "parsing/parser.mly"
      ( wrap_mty_attrs ~loc:_sloc attrs (
          List.fold_left (fun acc (startpos, arg) ->
            mkmty ~loc:(startpos, _endpos) (Pmty_functor (arg, acc))
          ) mty args
        ) )
# 29828 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.module_expr) = Obj.magic _5 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 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__5_ in
        let _v : (Parsetree.module_type) = let _4 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 29883 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1705 "parsing/parser.mly"
      ( mkmty ~loc:_sloc ~attrs:_4 (Pmty_typeof _5) )
# 29892 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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__3_ in
        let _v : (Parsetree.module_type) = 
# 1707 "parsing/parser.mly"
      ( _2 )
# 29931 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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__3_ in
        let _v : (Parsetree.module_type) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1709 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__3_ )
# 29972 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attribute) = Obj.magic _2 in
        let _1 : (Parsetree.module_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 : (Parsetree.module_type) = 
# 1711 "parsing/parser.mly"
      ( Mty.attr _1 _2 )
# 30004 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.module_type) = let _1 =
          let _1 =
            let _1 =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 30035 "parsing/parser.ml"
              
            in
            
# 1714 "parsing/parser.mly"
        ( Pmty_ident _1 )
# 30041 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1005 "parsing/parser.mly"
    ( mkmty ~loc:_sloc _1 )
# 30050 "parsing/parser.ml"
          
        in
        
# 1727 "parsing/parser.mly"
    ( _1 )
# 30056 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.module_type) = 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__4_ in
        let _v : (Parsetree.module_type) = let _1 =
          let _1 = 
# 1716 "parsing/parser.mly"
        ( Pmty_functor(Unit, _4) )
# 30103 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__4_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1005 "parsing/parser.mly"
    ( mkmty ~loc:_sloc _1 )
# 30112 "parsing/parser.ml"
          
        in
        
# 1727 "parsing/parser.mly"
    ( _1 )
# 30118 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.module_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.module_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 : (Parsetree.module_type) = let _1 =
          let _1 = 
# 1719 "parsing/parser.mly"
        ( Pmty_functor(Named (mknoloc None, _1), _3) )
# 30158 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1005 "parsing/parser.mly"
    ( mkmty ~loc:_sloc _1 )
# 30167 "parsing/parser.ml"
          
        in
        
# 1727 "parsing/parser.mly"
    ( _1 )
# 30173 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.with_constraint list) = Obj.magic xs in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.module_type) = 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 : (Parsetree.module_type) = let _1 =
          let _1 =
            let _3 =
              let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 30215 "parsing/parser.ml"
               in
              
# 1115 "parsing/parser.mly"
    ( xs )
# 30220 "parsing/parser.ml"
              
            in
            
# 1721 "parsing/parser.mly"
        ( Pmty_with(_1, _3) )
# 30226 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos_xs_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1005 "parsing/parser.mly"
    ( mkmty ~loc:_sloc _1 )
# 30236 "parsing/parser.ml"
          
        in
        
# 1727 "parsing/parser.mly"
    ( _1 )
# 30242 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (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 : (Parsetree.module_type) = let _1 =
          let _1 = 
# 1725 "parsing/parser.mly"
        ( Pmty_extension _1 )
# 30268 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1005 "parsing/parser.mly"
    ( mkmty ~loc:_sloc _1 )
# 30276 "parsing/parser.ml"
          
        in
        
# 1727 "parsing/parser.mly"
    ( _1 )
# 30282 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          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 = _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 = ext;
                  MenhirLib.EngineTypes.startp = _startpos_ext_;
                  MenhirLib.EngineTypes.endp = _endpos_ext_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = _2;
                    MenhirLib.EngineTypes.startp = _startpos__2_;
                    MenhirLib.EngineTypes.endp = _endpos__2_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let typ : (Parsetree.module_type option) = Obj.magic typ in
        let _1_inlined2 : (Asttypes.label) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext 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__1_inlined3_ in
        let _v : (Parsetree.module_type_declaration * string Asttypes.loc option) = let attrs2 =
          let _1 = _1_inlined3 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 30351 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined3_ in
        let id =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 30363 "parsing/parser.ml"
          
        in
        let attrs1 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 30371 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_attrs2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1637 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    Mtd.mk id ?typ ~attrs ~loc ~docs, ext
  )
# 30385 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          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 = _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 = ext;
                    MenhirLib.EngineTypes.startp = _startpos_ext_;
                    MenhirLib.EngineTypes.endp = _endpos_ext_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _;
                      MenhirLib.EngineTypes.semv = _2;
                      MenhirLib.EngineTypes.startp = _startpos__2_;
                      MenhirLib.EngineTypes.endp = _endpos__2_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let typ : (Parsetree.module_type) = Obj.magic typ in
        let _6 : unit = Obj.magic _6 in
        let _1_inlined2 : (Asttypes.label) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext 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__1_inlined3_ in
        let _v : (Parsetree.module_type_declaration * string Asttypes.loc option) = let attrs2 =
          let _1 = _1_inlined3 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 30461 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined3_ in
        let id =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 30473 "parsing/parser.ml"
          
        in
        let attrs1 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 30481 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_attrs2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1903 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    Mtd.mk id ~typ ~attrs ~loc ~docs, ext
  )
# 30495 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = 
# 3840 "parsing/parser.mly"
                                          ( _1 )
# 30520 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Asttypes.mutable_flag) = 
# 3921 "parsing/parser.mly"
                                                ( Immutable )
# 30538 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.mutable_flag) = 
# 3922 "parsing/parser.mly"
                                                ( Mutable )
# 30563 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Asttypes.mutable_flag * Asttypes.virtual_flag) = 
# 3930 "parsing/parser.mly"
      ( Immutable, Concrete )
# 30581 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.mutable_flag * Asttypes.virtual_flag) = 
# 3932 "parsing/parser.mly"
      ( Mutable, Concrete )
# 30606 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.mutable_flag * Asttypes.virtual_flag) = 
# 3934 "parsing/parser.mly"
      ( Immutable, Virtual )
# 30631 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.mutable_flag * Asttypes.virtual_flag) = 
# 3937 "parsing/parser.mly"
      ( Mutable, Virtual )
# 30663 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.mutable_flag * Asttypes.virtual_flag) = 
# 3937 "parsing/parser.mly"
      ( Mutable, Virtual )
# 30695 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.label) = 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 : (Asttypes.label) = 
# 3892 "parsing/parser.mly"
                                                ( _2 )
# 30727 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 30748 "parsing/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 Asttypes.loc list) = let x =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 30760 "parsing/parser.ml"
          
        in
        
# 221 "<standard.mly>"
    ( [ x ] )
# 30766 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 Asttypes.loc list) = Obj.magic xs in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 30794 "parsing/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 : (string Asttypes.loc list) = let x =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 30806 "parsing/parser.ml"
          
        in
        
# 223 "<standard.mly>"
    ( x :: xs )
# 30812 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = s;
          MenhirLib.EngineTypes.startp = _startpos_s_;
          MenhirLib.EngineTypes.endp = _endpos_s_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let s : (
# 816 "parsing/parser.mly"
       (string * Location.t * string option)
# 30833 "parsing/parser.ml"
        ) = Obj.magic s in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_s_ in
        let _endpos = _endpos_s_ in
        let _v : (string list) = let x = 
# 3888 "parsing/parser.mly"
    ( let body, _, _ = s in body )
# 30841 "parsing/parser.ml"
         in
        
# 221 "<standard.mly>"
    ( [ x ] )
# 30846 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = s;
            MenhirLib.EngineTypes.startp = _startpos_s_;
            MenhirLib.EngineTypes.endp = _endpos_s_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let xs : (string list) = Obj.magic xs in
        let s : (
# 816 "parsing/parser.mly"
       (string * Location.t * string option)
# 30874 "parsing/parser.ml"
        ) = Obj.magic s in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_s_ in
        let _endpos = _endpos_xs_ in
        let _v : (string list) = let x = 
# 3888 "parsing/parser.mly"
    ( let body, _, _ = s in body )
# 30882 "parsing/parser.ml"
         in
        
# 223 "<standard.mly>"
    ( x :: xs )
# 30887 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = ty;
          MenhirLib.EngineTypes.startp = _startpos_ty_;
          MenhirLib.EngineTypes.endp = _endpos_ty_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let ty : (Parsetree.core_type) = Obj.magic ty in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_ty_ in
        let _endpos = _endpos_ty_ in
        let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = 
# 3917 "parsing/parser.mly"
                                                ( Public )
# 30912 "parsing/parser.ml"
         in
        
# 3147 "parsing/parser.mly"
      ( (Ptype_abstract, priv, Some ty) )
# 30917 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = ty;
          MenhirLib.EngineTypes.startp = _startpos_ty_;
          MenhirLib.EngineTypes.endp = _endpos_ty_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let ty : (Parsetree.core_type) = Obj.magic ty in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_ty_ in
        let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = 
# 3918 "parsing/parser.mly"
                                                ( Private )
# 30949 "parsing/parser.ml"
         in
        
# 3147 "parsing/parser.mly"
      ( (Ptype_abstract, priv, Some ty) )
# 30954 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = cs;
          MenhirLib.EngineTypes.startp = _startpos_cs_;
          MenhirLib.EngineTypes.endp = _endpos_cs_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let cs : (Parsetree.constructor_declaration list) = Obj.magic cs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_cs_ in
        let _endpos = _endpos_cs_ in
        let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = 
# 3917 "parsing/parser.mly"
                                                ( Public )
# 30979 "parsing/parser.ml"
         in
        let oty =
          let _1 = 
# 124 "<standard.mly>"
    ( None )
# 30985 "parsing/parser.ml"
           in
          
# 3163 "parsing/parser.mly"
    ( _1 )
# 30990 "parsing/parser.ml"
          
        in
        
# 3151 "parsing/parser.mly"
      ( (Ptype_variant cs, priv, oty) )
# 30996 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = cs;
          MenhirLib.EngineTypes.startp = _startpos_cs_;
          MenhirLib.EngineTypes.endp = _endpos_cs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let cs : (Parsetree.constructor_declaration list) = Obj.magic cs in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_cs_ in
        let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = 
# 3918 "parsing/parser.mly"
                                                ( Private )
# 31028 "parsing/parser.ml"
         in
        let oty =
          let _1 = 
# 124 "<standard.mly>"
    ( None )
# 31034 "parsing/parser.ml"
           in
          
# 3163 "parsing/parser.mly"
    ( _1 )
# 31039 "parsing/parser.ml"
          
        in
        
# 3151 "parsing/parser.mly"
      ( (Ptype_variant cs, priv, oty) )
# 31045 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = cs;
          MenhirLib.EngineTypes.startp = _startpos_cs_;
          MenhirLib.EngineTypes.endp = _endpos_cs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.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 cs : (Parsetree.constructor_declaration list) = Obj.magic cs in
        let _2 : unit = Obj.magic _2 in
        let x : (Parsetree.core_type) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_cs_ in
        let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = 
# 3917 "parsing/parser.mly"
                                                ( Public )
# 31084 "parsing/parser.ml"
         in
        let oty =
          let _1 =
            let x = 
# 191 "<standard.mly>"
    ( x )
# 31091 "parsing/parser.ml"
             in
            
# 126 "<standard.mly>"
    ( Some x )
# 31096 "parsing/parser.ml"
            
          in
          
# 3163 "parsing/parser.mly"
    ( _1 )
# 31102 "parsing/parser.ml"
          
        in
        
# 3151 "parsing/parser.mly"
      ( (Ptype_variant cs, priv, oty) )
# 31108 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = cs;
          MenhirLib.EngineTypes.startp = _startpos_cs_;
          MenhirLib.EngineTypes.endp = _endpos_cs_;
          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 cs : (Parsetree.constructor_declaration list) = Obj.magic cs in
        let _1 : unit = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let x : (Parsetree.core_type) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_cs_ in
        let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = 
# 3918 "parsing/parser.mly"
                                                ( Private )
# 31154 "parsing/parser.ml"
         in
        let oty =
          let _1 =
            let x = 
# 191 "<standard.mly>"
    ( x )
# 31161 "parsing/parser.ml"
             in
            
# 126 "<standard.mly>"
    ( Some x )
# 31166 "parsing/parser.ml"
            
          in
          
# 3163 "parsing/parser.mly"
    ( _1 )
# 31172 "parsing/parser.ml"
          
        in
        
# 3151 "parsing/parser.mly"
      ( (Ptype_variant cs, priv, oty) )
# 31178 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _3;
          MenhirLib.EngineTypes.startp = _startpos__3_;
          MenhirLib.EngineTypes.endp = _endpos__3_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _3 : unit = Obj.magic _3 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__3_ in
        let _endpos = _endpos__3_ in
        let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = 
# 3917 "parsing/parser.mly"
                                                ( Public )
# 31203 "parsing/parser.ml"
         in
        let oty =
          let _1 = 
# 124 "<standard.mly>"
    ( None )
# 31209 "parsing/parser.ml"
           in
          
# 3163 "parsing/parser.mly"
    ( _1 )
# 31214 "parsing/parser.ml"
          
        in
        
# 3155 "parsing/parser.mly"
      ( (Ptype_open, priv, oty) )
# 31220 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = 
# 3918 "parsing/parser.mly"
                                                ( Private )
# 31252 "parsing/parser.ml"
         in
        let oty =
          let _1 = 
# 124 "<standard.mly>"
    ( None )
# 31258 "parsing/parser.ml"
           in
          
# 3163 "parsing/parser.mly"
    ( _1 )
# 31263 "parsing/parser.ml"
          
        in
        
# 3155 "parsing/parser.mly"
      ( (Ptype_open, priv, oty) )
# 31269 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Parsetree.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 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = 
# 3917 "parsing/parser.mly"
                                                ( Public )
# 31308 "parsing/parser.ml"
         in
        let oty =
          let _1 =
            let x = 
# 191 "<standard.mly>"
    ( x )
# 31315 "parsing/parser.ml"
             in
            
# 126 "<standard.mly>"
    ( Some x )
# 31320 "parsing/parser.ml"
            
          in
          
# 3163 "parsing/parser.mly"
    ( _1 )
# 31326 "parsing/parser.ml"
          
        in
        
# 3155 "parsing/parser.mly"
      ( (Ptype_open, priv, oty) )
# 31332 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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;
            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 : unit = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let x : (Parsetree.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 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = 
# 3918 "parsing/parser.mly"
                                                ( Private )
# 31378 "parsing/parser.ml"
         in
        let oty =
          let _1 =
            let x = 
# 191 "<standard.mly>"
    ( x )
# 31385 "parsing/parser.ml"
             in
            
# 126 "<standard.mly>"
    ( Some x )
# 31390 "parsing/parser.ml"
            
          in
          
# 3163 "parsing/parser.mly"
    ( _1 )
# 31396 "parsing/parser.ml"
          
        in
        
# 3155 "parsing/parser.mly"
      ( (Ptype_open, priv, oty) )
# 31402 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = ls;
            MenhirLib.EngineTypes.startp = _startpos_ls_;
            MenhirLib.EngineTypes.endp = _endpos_ls_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _3;
              MenhirLib.EngineTypes.startp = _startpos__3_;
              MenhirLib.EngineTypes.endp = _endpos__3_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let ls : (Parsetree.label_declaration list) = Obj.magic ls in
        let _3 : unit = Obj.magic _3 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__3_ in
        let _endpos = _endpos__5_ in
        let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = 
# 3917 "parsing/parser.mly"
                                                ( Public )
# 31441 "parsing/parser.ml"
         in
        let oty =
          let _1 = 
# 124 "<standard.mly>"
    ( None )
# 31447 "parsing/parser.ml"
           in
          
# 3163 "parsing/parser.mly"
    ( _1 )
# 31452 "parsing/parser.ml"
          
        in
        
# 3159 "parsing/parser.mly"
      ( (Ptype_record ls, priv, oty) )
# 31458 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = ls;
            MenhirLib.EngineTypes.startp = _startpos_ls_;
            MenhirLib.EngineTypes.endp = _endpos_ls_;
            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 _5 : unit = Obj.magic _5 in
        let ls : (Parsetree.label_declaration list) = Obj.magic ls 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__5_ in
        let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = 
# 3918 "parsing/parser.mly"
                                                ( Private )
# 31504 "parsing/parser.ml"
         in
        let oty =
          let _1 = 
# 124 "<standard.mly>"
    ( None )
# 31510 "parsing/parser.ml"
           in
          
# 3163 "parsing/parser.mly"
    ( _1 )
# 31515 "parsing/parser.ml"
          
        in
        
# 3159 "parsing/parser.mly"
      ( (Ptype_record ls, priv, oty) )
# 31521 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = ls;
            MenhirLib.EngineTypes.startp = _startpos_ls_;
            MenhirLib.EngineTypes.endp = _endpos_ls_;
            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 ls : (Parsetree.label_declaration list) = Obj.magic ls in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let x : (Parsetree.core_type) = 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 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = 
# 3917 "parsing/parser.mly"
                                                ( Public )
# 31574 "parsing/parser.ml"
         in
        let oty =
          let _1 =
            let x = 
# 191 "<standard.mly>"
    ( x )
# 31581 "parsing/parser.ml"
             in
            
# 126 "<standard.mly>"
    ( Some x )
# 31586 "parsing/parser.ml"
            
          in
          
# 3163 "parsing/parser.mly"
    ( _1 )
# 31592 "parsing/parser.ml"
          
        in
        
# 3159 "parsing/parser.mly"
      ( (Ptype_record ls, priv, oty) )
# 31598 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = ls;
            MenhirLib.EngineTypes.startp = _startpos_ls_;
            MenhirLib.EngineTypes.endp = _endpos_ls_;
            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;
                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 : unit = Obj.magic _5 in
        let ls : (Parsetree.label_declaration list) = Obj.magic ls in
        let _3 : unit = Obj.magic _3 in
        let _1 : unit = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let x : (Parsetree.core_type) = 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 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = 
# 3918 "parsing/parser.mly"
                                                ( Private )
# 31658 "parsing/parser.ml"
         in
        let oty =
          let _1 =
            let x = 
# 191 "<standard.mly>"
    ( x )
# 31665 "parsing/parser.ml"
             in
            
# 126 "<standard.mly>"
    ( Some x )
# 31670 "parsing/parser.ml"
            
          in
          
# 3163 "parsing/parser.mly"
    ( _1 )
# 31676 "parsing/parser.ml"
          
        in
        
# 3159 "parsing/parser.mly"
      ( (Ptype_record ls, priv, oty) )
# 31682 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = meth_list;
            MenhirLib.EngineTypes.startp = _startpos_meth_list_;
            MenhirLib.EngineTypes.endp = _endpos_meth_list_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_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 meth_list : (Parsetree.object_field list * Asttypes.closed_flag) = Obj.magic meth_list in
        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 : (Parsetree.core_type) = let _1 =
          let _1 = 
# 3581 "parsing/parser.mly"
        ( let (f, c) = meth_list in Ptyp_object (f, c) )
# 31722 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 31731 "parsing/parser.ml"
          
        in
        
# 3585 "parsing/parser.mly"
  ( _1 )
# 31737 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.core_type) = let _1 =
          let _1 = 
# 3583 "parsing/parser.mly"
        ( Ptyp_object ([], Closed) )
# 31770 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 31779 "parsing/parser.ml"
          
        in
        
# 3585 "parsing/parser.mly"
  ( _1 )
# 31785 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = me;
            MenhirLib.EngineTypes.startp = _startpos_me_;
            MenhirLib.EngineTypes.endp = _endpos_me_;
            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 = ext;
                MenhirLib.EngineTypes.startp = _startpos_ext_;
                MenhirLib.EngineTypes.endp = _endpos_ext_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  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 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let me : (Parsetree.module_expr) = Obj.magic me in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined2_ in
        let _v : (Parsetree.open_declaration * string Asttypes.loc option) = let attrs2 =
          let _1 = _1_inlined2 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 31840 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined2_ in
        let attrs1 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 31849 "parsing/parser.ml"
          
        in
        let override = 
# 3964 "parsing/parser.mly"
                                                ( Fresh )
# 31855 "parsing/parser.ml"
         in
        let _endpos = _endpos_attrs2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1656 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    Opn.mk me ~override ~attrs ~loc ~docs, ext
  )
# 31868 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = me;
            MenhirLib.EngineTypes.startp = _startpos_me_;
            MenhirLib.EngineTypes.endp = _endpos_me_;
            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 = ext;
                MenhirLib.EngineTypes.startp = _startpos_ext_;
                MenhirLib.EngineTypes.endp = _endpos_ext_;
                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_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let me : (Parsetree.module_expr) = Obj.magic me in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let ext : (string Asttypes.loc option) = Obj.magic ext 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__1_inlined3_ in
        let _v : (Parsetree.open_declaration * string Asttypes.loc option) = let attrs2 =
          let _1 = _1_inlined3 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 31930 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined3_ in
        let attrs1 =
          let _1 = _1_inlined2 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 31939 "parsing/parser.ml"
          
        in
        let override = 
# 3965 "parsing/parser.mly"
                                                ( Override )
# 31945 "parsing/parser.ml"
         in
        let _endpos = _endpos_attrs2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1656 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    Opn.mk me ~override ~attrs ~loc ~docs, ext
  )
# 31958 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          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 = ext;
                MenhirLib.EngineTypes.startp = _startpos_ext_;
                MenhirLib.EngineTypes.endp = _endpos_ext_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined3_ in
        let _v : (Parsetree.open_description * string Asttypes.loc option) = let attrs2 =
          let _1 = _1_inlined3 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 32013 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined3_ in
        let id =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 32025 "parsing/parser.ml"
          
        in
        let attrs1 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 32033 "parsing/parser.ml"
          
        in
        let override = 
# 3964 "parsing/parser.mly"
                                                ( Fresh )
# 32039 "parsing/parser.ml"
         in
        let _endpos = _endpos_attrs2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1671 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    Opn.mk id ~override ~attrs ~loc ~docs, ext
  )
# 32052 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_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 = _1_inlined2;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
              MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = ext;
                MenhirLib.EngineTypes.startp = _startpos_ext_;
                MenhirLib.EngineTypes.endp = _endpos_ext_;
                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_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let ext : (string Asttypes.loc option) = Obj.magic ext 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__1_inlined4_ in
        let _v : (Parsetree.open_description * string Asttypes.loc option) = let attrs2 =
          let _1 = _1_inlined4 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 32114 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined4_ in
        let id =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 32126 "parsing/parser.ml"
          
        in
        let attrs1 =
          let _1 = _1_inlined2 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 32134 "parsing/parser.ml"
          
        in
        let override = 
# 3965 "parsing/parser.mly"
                                                ( Override )
# 32140 "parsing/parser.ml"
         in
        let _endpos = _endpos_attrs2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1671 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    Opn.mk id ~override ~attrs ~loc ~docs, ext
  )
# 32153 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 802 "parsing/parser.mly"
       (string)
# 32174 "parsing/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 : (Asttypes.label) = 
# 3756 "parsing/parser.mly"
                                                ( _1 )
# 32182 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 760 "parsing/parser.mly"
       (string)
# 32203 "parsing/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 : (Asttypes.label) = 
# 3757 "parsing/parser.mly"
                                                ( _1 )
# 32211 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 761 "parsing/parser.mly"
       (string)
# 32232 "parsing/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 : (Asttypes.label) = 
# 3758 "parsing/parser.mly"
                                                ( _1 )
# 32240 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (
# 759 "parsing/parser.mly"
       (string)
# 32282 "parsing/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 : (Asttypes.label) = 
# 3759 "parsing/parser.mly"
                                                ( "."^ _1 ^"(" ^ _3 ^ ")" )
# 32290 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (string) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (
# 759 "parsing/parser.mly"
       (string)
# 32339 "parsing/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 : (Asttypes.label) = 
# 3760 "parsing/parser.mly"
                                                ( "."^ _1 ^ "(" ^ _3 ^ ")<-" )
# 32347 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (
# 759 "parsing/parser.mly"
       (string)
# 32389 "parsing/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 : (Asttypes.label) = 
# 3761 "parsing/parser.mly"
                                                ( "."^ _1 ^"[" ^ _3 ^ "]" )
# 32397 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (string) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (
# 759 "parsing/parser.mly"
       (string)
# 32446 "parsing/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 : (Asttypes.label) = 
# 3762 "parsing/parser.mly"
                                                ( "."^ _1 ^ "[" ^ _3 ^ "]<-" )
# 32454 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (
# 759 "parsing/parser.mly"
       (string)
# 32496 "parsing/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 : (Asttypes.label) = 
# 3763 "parsing/parser.mly"
                                                ( "."^ _1 ^"{" ^ _3 ^ "}" )
# 32504 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (string) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (
# 759 "parsing/parser.mly"
       (string)
# 32553 "parsing/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 : (Asttypes.label) = 
# 3764 "parsing/parser.mly"
                                                ( "."^ _1 ^ "{" ^ _3 ^ "}<-" )
# 32561 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 813 "parsing/parser.mly"
       (string)
# 32582 "parsing/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 : (Asttypes.label) = 
# 3765 "parsing/parser.mly"
                                                ( _1 )
# 32590 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = 
# 3766 "parsing/parser.mly"
                                                ( "!" )
# 32615 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = op;
          MenhirLib.EngineTypes.startp = _startpos_op_;
          MenhirLib.EngineTypes.endp = _endpos_op_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let op : (
# 754 "parsing/parser.mly"
       (string)
# 32636 "parsing/parser.ml"
        ) = Obj.magic op in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_op_ in
        let _endpos = _endpos_op_ in
        let _v : (Asttypes.label) = let _1 = 
# 3770 "parsing/parser.mly"
                  ( op )
# 32644 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 32649 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = op;
          MenhirLib.EngineTypes.startp = _startpos_op_;
          MenhirLib.EngineTypes.endp = _endpos_op_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let op : (
# 755 "parsing/parser.mly"
       (string)
# 32670 "parsing/parser.ml"
        ) = Obj.magic op in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_op_ in
        let _endpos = _endpos_op_ in
        let _v : (Asttypes.label) = let _1 = 
# 3771 "parsing/parser.mly"
                  ( op )
# 32678 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 32683 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = op;
          MenhirLib.EngineTypes.startp = _startpos_op_;
          MenhirLib.EngineTypes.endp = _endpos_op_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let op : (
# 756 "parsing/parser.mly"
       (string)
# 32704 "parsing/parser.ml"
        ) = Obj.magic op in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_op_ in
        let _endpos = _endpos_op_ in
        let _v : (Asttypes.label) = let _1 = 
# 3772 "parsing/parser.mly"
                  ( op )
# 32712 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 32717 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = op;
          MenhirLib.EngineTypes.startp = _startpos_op_;
          MenhirLib.EngineTypes.endp = _endpos_op_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let op : (
# 757 "parsing/parser.mly"
       (string)
# 32738 "parsing/parser.ml"
        ) = Obj.magic op in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_op_ in
        let _endpos = _endpos_op_ in
        let _v : (Asttypes.label) = let _1 = 
# 3773 "parsing/parser.mly"
                  ( op )
# 32746 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 32751 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = op;
          MenhirLib.EngineTypes.startp = _startpos_op_;
          MenhirLib.EngineTypes.endp = _endpos_op_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let op : (
# 758 "parsing/parser.mly"
       (string)
# 32772 "parsing/parser.ml"
        ) = Obj.magic op in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_op_ in
        let _endpos = _endpos_op_ in
        let _v : (Asttypes.label) = let _1 = 
# 3774 "parsing/parser.mly"
                  ( op )
# 32780 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 32785 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3775 "parsing/parser.mly"
                   ("+")
# 32810 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 32815 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3776 "parsing/parser.mly"
                  ("+.")
# 32840 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 32845 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3777 "parsing/parser.mly"
                  ("+=")
# 32870 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 32875 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3778 "parsing/parser.mly"
                   ("-")
# 32900 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 32905 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3779 "parsing/parser.mly"
                  ("-.")
# 32930 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 32935 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3780 "parsing/parser.mly"
                   ("*")
# 32960 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 32965 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3781 "parsing/parser.mly"
                   ("%")
# 32990 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 32995 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3782 "parsing/parser.mly"
                   ("=")
# 33020 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 33025 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3783 "parsing/parser.mly"
                   ("<")
# 33050 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 33055 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3784 "parsing/parser.mly"
                   (">")
# 33080 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 33085 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3785 "parsing/parser.mly"
                  ("or")
# 33110 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 33115 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3786 "parsing/parser.mly"
                  ("||")
# 33140 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 33145 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3787 "parsing/parser.mly"
                   ("&")
# 33170 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 33175 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3788 "parsing/parser.mly"
                  ("&&")
# 33200 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 33205 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.label) = let _1 = 
# 3789 "parsing/parser.mly"
                  (":=")
# 33230 "parsing/parser.ml"
         in
        
# 3767 "parsing/parser.mly"
                                                ( _1 )
# 33235 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3671 "parsing/parser.mly"
                                                ( true )
# 33260 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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) = 
# 3672 "parsing/parser.mly"
                                                ( false )
# 33278 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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) = 
# 114 "<standard.mly>"
    ( None )
# 33296 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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) = 
# 116 "<standard.mly>"
    ( Some x )
# 33321 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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) = 
# 114 "<standard.mly>"
    ( None )
# 33339 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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) = 
# 116 "<standard.mly>"
    ( Some x )
# 33364 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 Asttypes.loc option) = 
# 114 "<standard.mly>"
    ( None )
# 33382 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (
# 778 "parsing/parser.mly"
       (string)
# 33409 "parsing/parser.ml"
        ) = 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 : (string Asttypes.loc option) = let x =
          let x =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 33424 "parsing/parser.ml"
            
          in
          
# 183 "<standard.mly>"
    ( x )
# 33430 "parsing/parser.ml"
          
        in
        
# 116 "<standard.mly>"
    ( Some x )
# 33436 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.core_type option) = 
# 114 "<standard.mly>"
    ( None )
# 33454 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.core_type option) = let x = 
# 183 "<standard.mly>"
    ( x )
# 33486 "parsing/parser.ml"
         in
        
# 116 "<standard.mly>"
    ( Some x )
# 33491 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.core_type option) = 
# 114 "<standard.mly>"
    ( None )
# 33509 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.core_type option) = let x = 
# 183 "<standard.mly>"
    ( x )
# 33541 "parsing/parser.ml"
         in
        
# 116 "<standard.mly>"
    ( Some x )
# 33546 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.expression option) = 
# 114 "<standard.mly>"
    ( None )
# 33564 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = 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 : (Parsetree.expression option) = let x =
          let x =
            let _1 = _1_inlined1 in
            let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 33599 "parsing/parser.ml"
             in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 33604 "parsing/parser.ml"
            
          in
          
# 183 "<standard.mly>"
    ( x )
# 33610 "parsing/parser.ml"
          
        in
        
# 116 "<standard.mly>"
    ( Some x )
# 33616 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = 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_xs_ in
        let _v : (Parsetree.expression option) = let x =
          let x =
            let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
            let _1 =
              let _3 =
                let xs =
                  let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 33675 "parsing/parser.ml"
                   in
                  
# 1176 "parsing/parser.mly"
    ( xs )
# 33680 "parsing/parser.ml"
                  
                in
                
# 2756 "parsing/parser.mly"
    ( xs )
# 33686 "parsing/parser.ml"
                
              in
              let _endpos__3_ = _endpos_xs_ in
              let _2 =
                let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                let _2 =
                  let _1 = _1_inlined1 in
                  
# 4062 "parsing/parser.mly"
    ( _1 )
# 33697 "parsing/parser.ml"
                  
                in
                
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 33703 "parsing/parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 33723 "parsing/parser.ml"
              
            in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 33729 "parsing/parser.ml"
            
          in
          
# 183 "<standard.mly>"
    ( x )
# 33735 "parsing/parser.ml"
          
        in
        
# 116 "<standard.mly>"
    ( Some x )
# 33741 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.module_type option) = 
# 114 "<standard.mly>"
    ( None )
# 33759 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.module_type option) = let x = 
# 183 "<standard.mly>"
    ( x )
# 33791 "parsing/parser.ml"
         in
        
# 116 "<standard.mly>"
    ( Some x )
# 33796 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.pattern option) = 
# 114 "<standard.mly>"
    ( None )
# 33814 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.pattern) = 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 : (Parsetree.pattern option) = let x = 
# 183 "<standard.mly>"
    ( x )
# 33846 "parsing/parser.ml"
         in
        
# 116 "<standard.mly>"
    ( Some x )
# 33851 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.expression option) = 
# 114 "<standard.mly>"
    ( None )
# 33869 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.expression option) = let x = 
# 183 "<standard.mly>"
    ( x )
# 33901 "parsing/parser.ml"
         in
        
# 116 "<standard.mly>"
    ( Some x )
# 33906 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.type_constraint option) = 
# 114 "<standard.mly>"
    ( None )
# 33924 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (Parsetree.type_constraint) = 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 : (Parsetree.type_constraint option) = 
# 116 "<standard.mly>"
    ( Some x )
# 33949 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 795 "parsing/parser.mly"
       (string)
# 33970 "parsing/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) = 
# 3976 "parsing/parser.mly"
                                                ( _1 )
# 33978 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (
# 778 "parsing/parser.mly"
       (string)
# 34012 "parsing/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 : (string) = 
# 3977 "parsing/parser.mly"
                                                ( _2 )
# 34021 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = mty;
            MenhirLib.EngineTypes.startp = _startpos_mty_;
            MenhirLib.EngineTypes.endp = _endpos_mty_;
            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 = me;
                MenhirLib.EngineTypes.startp = _startpos_me_;
                MenhirLib.EngineTypes.endp = _endpos_me_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_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 mty : (Parsetree.module_type) = Obj.magic mty in
        let _3 : unit = Obj.magic _3 in
        let me : (Parsetree.module_expr) = Obj.magic me in
        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 : (Parsetree.module_expr) = let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1433 "parsing/parser.mly"
      ( mkmod ~loc:_sloc (Pmod_constraint(me, mty)) )
# 34077 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.module_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Parsetree.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__5_ in
        let _v : (Parsetree.module_expr) = let _loc__5_ = (_startpos__5_, _endpos__5_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1435 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__5_ )
# 34132 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = me;
            MenhirLib.EngineTypes.startp = _startpos_me_;
            MenhirLib.EngineTypes.endp = _endpos_me_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_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 me : (Parsetree.module_expr) = Obj.magic me in
        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 : (Parsetree.module_expr) = 
# 1438 "parsing/parser.mly"
      ( me (* TODO consider reloc *) )
# 34171 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.module_expr) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1440 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__3_ )
# 34212 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_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 _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (Parsetree.expression) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__5_ in
        let _v : (Parsetree.module_expr) = let e =
          let _1 = _1_inlined2 in
          let e =
            let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 34268 "parsing/parser.ml"
             in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 34273 "parsing/parser.ml"
            
          in
          
# 1457 "parsing/parser.mly"
      ( e )
# 34279 "parsing/parser.ml"
          
        in
        let attrs =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 34287 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1444 "parsing/parser.mly"
      ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) )
# 34296 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
            MenhirLib.EngineTypes.startp = _startpos_xs_;
            MenhirLib.EngineTypes.endp = _endpos_xs_;
            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 = _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 _5 : unit = Obj.magic _5 in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__5_ in
        let _v : (Parsetree.module_expr) = let e =
          let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in
          let e =
            let _1 =
              let _3 =
                let xs =
                  let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 34376 "parsing/parser.ml"
                   in
                  
# 1176 "parsing/parser.mly"
    ( xs )
# 34381 "parsing/parser.ml"
                  
                in
                
# 2756 "parsing/parser.mly"
    ( xs )
# 34387 "parsing/parser.ml"
                
              in
              let _endpos__3_ = _endpos_xs_ in
              let _2 =
                let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                let _2 =
                  let _1 = _1_inlined1 in
                  
# 4062 "parsing/parser.mly"
    ( _1 )
# 34398 "parsing/parser.ml"
                  
                in
                
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 34404 "parsing/parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 34424 "parsing/parser.ml"
              
            in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 34430 "parsing/parser.ml"
            
          in
          
# 1457 "parsing/parser.mly"
      ( e )
# 34436 "parsing/parser.ml"
          
        in
        let attrs =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 34444 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1444 "parsing/parser.mly"
      ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) )
# 34453 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _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 : unit = Obj.magic _5 in
        let _1_inlined3 : (Parsetree.module_type) = Obj.magic _1_inlined3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1_inlined2 : (Parsetree.expression) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__5_ in
        let _v : (Parsetree.module_expr) = let e =
          let (_endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined1, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined3, _1_inlined2) in
          let ty =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 3646 "parsing/parser.mly"
      ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
        let descr = Ptyp_package (lid, cstrs) in
        mktyp ~loc:_sloc ~attrs descr )
# 34529 "parsing/parser.ml"
            
          in
          let _endpos_ty_ = _endpos__1_inlined1_ in
          let e =
            let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 34537 "parsing/parser.ml"
             in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 34542 "parsing/parser.ml"
            
          in
          let _startpos_e_ = _startpos__1_ in
          let _endpos = _endpos_ty_ in
          let _startpos = _startpos_e_ in
          let _loc = (_startpos, _endpos) in
          
# 1459 "parsing/parser.mly"
      ( ghexp ~loc:_loc (Pexp_constraint (e, ty)) )
# 34552 "parsing/parser.ml"
          
        in
        let attrs =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 34560 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1444 "parsing/parser.mly"
      ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) )
# 34569 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined5;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined5_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined5_;
            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 = xs;
                MenhirLib.EngineTypes.startp = _startpos_xs_;
                MenhirLib.EngineTypes.endp = _endpos_xs_;
                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 = _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 _5 : unit = Obj.magic _5 in
        let _1_inlined5 : (Parsetree.module_type) = Obj.magic _1_inlined5 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__5_ in
        let _v : (Parsetree.module_expr) = let e =
          let (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined5, _1_inlined4, _1_inlined3) in
          let ty =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 3646 "parsing/parser.mly"
      ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
        let descr = Ptyp_package (lid, cstrs) in
        mktyp ~loc:_sloc ~attrs descr )
# 34666 "parsing/parser.ml"
            
          in
          let _endpos_ty_ = _endpos__1_inlined3_ in
          let e =
            let _1 =
              let _3 =
                let xs =
                  let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 34677 "parsing/parser.ml"
                   in
                  
# 1176 "parsing/parser.mly"
    ( xs )
# 34682 "parsing/parser.ml"
                  
                in
                
# 2756 "parsing/parser.mly"
    ( xs )
# 34688 "parsing/parser.ml"
                
              in
              let _endpos__3_ = _endpos_xs_ in
              let _2 =
                let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                let _2 =
                  let _1 = _1_inlined1 in
                  
# 4062 "parsing/parser.mly"
    ( _1 )
# 34699 "parsing/parser.ml"
                  
                in
                
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 34705 "parsing/parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 34725 "parsing/parser.ml"
              
            in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 34731 "parsing/parser.ml"
            
          in
          let _startpos_e_ = _startpos__1_ in
          let _endpos = _endpos_ty_ in
          let _startpos = _startpos_e_ in
          let _loc = (_startpos, _endpos) in
          
# 1459 "parsing/parser.mly"
      ( ghexp ~loc:_loc (Pexp_constraint (e, ty)) )
# 34741 "parsing/parser.ml"
          
        in
        let attrs =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 34749 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1444 "parsing/parser.mly"
      ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) )
# 34758 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined4;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined4_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined4_;
            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_inlined3;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
                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 = _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 : unit = Obj.magic _5 in
        let _1_inlined4 : (Parsetree.module_type) = Obj.magic _1_inlined4 in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined3 : (Parsetree.module_type) = Obj.magic _1_inlined3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1_inlined2 : (Parsetree.expression) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__5_ in
        let _v : (Parsetree.module_expr) = let e =
          let (_endpos__1_inlined2_, _startpos__1_inlined2_, _endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined2, _1_inlined1, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined4, _1_inlined3, _1_inlined2) in
          let ty2 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 3646 "parsing/parser.mly"
      ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
        let descr = Ptyp_package (lid, cstrs) in
        mktyp ~loc:_sloc ~attrs descr )
# 34848 "parsing/parser.ml"
            
          in
          let _endpos_ty2_ = _endpos__1_inlined2_ in
          let ty1 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 3646 "parsing/parser.mly"
      ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
        let descr = Ptyp_package (lid, cstrs) in
        mktyp ~loc:_sloc ~attrs descr )
# 34862 "parsing/parser.ml"
            
          in
          let e =
            let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 34869 "parsing/parser.ml"
             in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 34874 "parsing/parser.ml"
            
          in
          let _startpos_e_ = _startpos__1_ in
          let _endpos = _endpos_ty2_ in
          let _startpos = _startpos_e_ in
          let _loc = (_startpos, _endpos) in
          
# 1461 "parsing/parser.mly"
      ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) )
# 34884 "parsing/parser.ml"
          
        in
        let attrs =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 34892 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1444 "parsing/parser.mly"
      ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) )
# 34901 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined6;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined6_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined6_;
            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_inlined5;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined5_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined5_;
                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 = xs;
                    MenhirLib.EngineTypes.startp = _startpos_xs_;
                    MenhirLib.EngineTypes.endp = _endpos_xs_;
                    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 = _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 _5 : unit = Obj.magic _5 in
        let _1_inlined6 : (Parsetree.module_type) = Obj.magic _1_inlined6 in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined5 : (Parsetree.module_type) = Obj.magic _1_inlined5 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__5_ in
        let _v : (Parsetree.module_expr) = let e =
          let (_endpos__1_inlined4_, _startpos__1_inlined4_, _endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined4, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined6_, _startpos__1_inlined6_, _endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined6, _1_inlined5, _1_inlined4, _1_inlined3) in
          let ty2 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _1_inlined4) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 3646 "parsing/parser.mly"
      ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
        let descr = Ptyp_package (lid, cstrs) in
        mktyp ~loc:_sloc ~attrs descr )
# 35012 "parsing/parser.ml"
            
          in
          let _endpos_ty2_ = _endpos__1_inlined4_ in
          let ty1 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 3646 "parsing/parser.mly"
      ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
        let descr = Ptyp_package (lid, cstrs) in
        mktyp ~loc:_sloc ~attrs descr )
# 35026 "parsing/parser.ml"
            
          in
          let e =
            let _1 =
              let _3 =
                let xs =
                  let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 35036 "parsing/parser.ml"
                   in
                  
# 1176 "parsing/parser.mly"
    ( xs )
# 35041 "parsing/parser.ml"
                  
                in
                
# 2756 "parsing/parser.mly"
    ( xs )
# 35047 "parsing/parser.ml"
                
              in
              let _endpos__3_ = _endpos_xs_ in
              let _2 =
                let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                let _2 =
                  let _1 = _1_inlined1 in
                  
# 4062 "parsing/parser.mly"
    ( _1 )
# 35058 "parsing/parser.ml"
                  
                in
                
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 35064 "parsing/parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 35084 "parsing/parser.ml"
              
            in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 35090 "parsing/parser.ml"
            
          in
          let _startpos_e_ = _startpos__1_ in
          let _endpos = _endpos_ty2_ in
          let _startpos = _startpos_e_ in
          let _loc = (_startpos, _endpos) in
          
# 1461 "parsing/parser.mly"
      ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) )
# 35100 "parsing/parser.ml"
          
        in
        let attrs =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 35108 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1444 "parsing/parser.mly"
      ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) )
# 35117 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _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 : unit = Obj.magic _5 in
        let _1_inlined3 : (Parsetree.module_type) = Obj.magic _1_inlined3 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let _1_inlined2 : (Parsetree.expression) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__5_ in
        let _v : (Parsetree.module_expr) = let e =
          let (_endpos__1_inlined1_, _startpos__1_inlined1_, _startpos__1_, _1_inlined1, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_inlined2_, _1_inlined3, _1_inlined2) in
          let ty2 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 3646 "parsing/parser.mly"
      ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
        let descr = Ptyp_package (lid, cstrs) in
        mktyp ~loc:_sloc ~attrs descr )
# 35193 "parsing/parser.ml"
            
          in
          let _endpos_ty2_ = _endpos__1_inlined1_ in
          let e =
            let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 35201 "parsing/parser.ml"
             in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 35206 "parsing/parser.ml"
            
          in
          let _startpos_e_ = _startpos__1_ in
          let _endpos = _endpos_ty2_ in
          let _startpos = _startpos_e_ in
          let _loc = (_startpos, _endpos) in
          
# 1463 "parsing/parser.mly"
      ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) )
# 35216 "parsing/parser.ml"
          
        in
        let attrs =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 35224 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1444 "parsing/parser.mly"
      ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) )
# 35233 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined5;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined5_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined5_;
            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 = xs;
                MenhirLib.EngineTypes.startp = _startpos_xs_;
                MenhirLib.EngineTypes.endp = _endpos_xs_;
                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 = _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 _5 : unit = Obj.magic _5 in
        let _1_inlined5 : (Parsetree.module_type) = Obj.magic _1_inlined5 in
        let _2_inlined1 : unit = Obj.magic _2_inlined1 in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__5_ in
        let _v : (Parsetree.module_expr) = let e =
          let (_endpos__1_inlined3_, _startpos__1_inlined3_, _startpos__1_, _1_inlined3, _1_inlined2, _1_inlined1) = (_endpos__1_inlined5_, _startpos__1_inlined5_, _startpos__1_inlined2_, _1_inlined5, _1_inlined4, _1_inlined3) in
          let ty2 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 3646 "parsing/parser.mly"
      ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
        let descr = Ptyp_package (lid, cstrs) in
        mktyp ~loc:_sloc ~attrs descr )
# 35330 "parsing/parser.ml"
            
          in
          let _endpos_ty2_ = _endpos__1_inlined3_ in
          let e =
            let _1 =
              let _3 =
                let xs =
                  let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 35341 "parsing/parser.ml"
                   in
                  
# 1176 "parsing/parser.mly"
    ( xs )
# 35346 "parsing/parser.ml"
                  
                in
                
# 2756 "parsing/parser.mly"
    ( xs )
# 35352 "parsing/parser.ml"
                
              in
              let _endpos__3_ = _endpos_xs_ in
              let _2 =
                let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
                let _2 =
                  let _1 = _1_inlined1 in
                  
# 4062 "parsing/parser.mly"
    ( _1 )
# 35363 "parsing/parser.ml"
                  
                in
                
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 35369 "parsing/parser.ml"
                
              in
              let _endpos = _endpos__3_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 35389 "parsing/parser.ml"
              
            in
            
# 2431 "parsing/parser.mly"
                          ( _1 )
# 35395 "parsing/parser.ml"
            
          in
          let _startpos_e_ = _startpos__1_ in
          let _endpos = _endpos_ty2_ in
          let _startpos = _startpos_e_ in
          let _loc = (_startpos, _endpos) in
          
# 1463 "parsing/parser.mly"
      ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) )
# 35405 "parsing/parser.ml"
          
        in
        let attrs =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 35413 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1444 "parsing/parser.mly"
      ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) )
# 35422 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_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 _6 : unit = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (Parsetree.expression) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__6_ in
        let _v : (Parsetree.module_expr) = let _4 =
          let _1 = _1_inlined2 in
          let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 35484 "parsing/parser.ml"
           in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 35489 "parsing/parser.ml"
          
        in
        let _3 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 35497 "parsing/parser.ml"
          
        in
        let _loc__6_ = (_startpos__6_, _endpos__6_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1446 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__6_ )
# 35505 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              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 = _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 _6 : unit = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__6_ in
        let _v : (Parsetree.module_expr) = let _4 =
          let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in
          let _1 =
            let _3 =
              let xs =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 35591 "parsing/parser.ml"
                 in
                
# 1176 "parsing/parser.mly"
    ( xs )
# 35596 "parsing/parser.ml"
                
              in
              
# 2756 "parsing/parser.mly"
    ( xs )
# 35602 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos_xs_ in
            let _2 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 35613 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 35619 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 35639 "parsing/parser.ml"
            
          in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 35645 "parsing/parser.ml"
          
        in
        let _3 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 35653 "parsing/parser.ml"
          
        in
        let _loc__6_ = (_startpos__6_, _endpos__6_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1446 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__6_ )
# 35661 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_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 _6 : unit = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (Parsetree.expression) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__6_ in
        let _v : (Parsetree.module_expr) = let _4 =
          let _1 = _1_inlined2 in
          let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 35723 "parsing/parser.ml"
           in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 35728 "parsing/parser.ml"
          
        in
        let _3 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 35736 "parsing/parser.ml"
          
        in
        let _loc__6_ = (_startpos__6_, _endpos__6_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1448 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__6_ )
# 35744 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              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 = _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 _6 : unit = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__6_ in
        let _v : (Parsetree.module_expr) = let _4 =
          let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in
          let _1 =
            let _3 =
              let xs =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 35830 "parsing/parser.ml"
                 in
                
# 1176 "parsing/parser.mly"
    ( xs )
# 35835 "parsing/parser.ml"
                
              in
              
# 2756 "parsing/parser.mly"
    ( xs )
# 35841 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos_xs_ in
            let _2 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 35852 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 35858 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 35878 "parsing/parser.ml"
            
          in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 35884 "parsing/parser.ml"
          
        in
        let _3 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 35892 "parsing/parser.ml"
          
        in
        let _loc__6_ = (_startpos__6_, _endpos__6_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1448 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__6_ )
# 35900 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_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 _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (Parsetree.expression) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__5_ in
        let _v : (Parsetree.module_expr) = let _4 =
          let _1 = _1_inlined2 in
          let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 35955 "parsing/parser.ml"
           in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 35960 "parsing/parser.ml"
          
        in
        let _3 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 35968 "parsing/parser.ml"
          
        in
        let _loc__5_ = (_startpos__5_, _endpos__5_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1450 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__5_ )
# 35976 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
            MenhirLib.EngineTypes.startp = _startpos_xs_;
            MenhirLib.EngineTypes.endp = _endpos_xs_;
            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 = _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 _5 : unit = Obj.magic _5 in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (string Asttypes.loc option) = Obj.magic _1_inlined3 in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = 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__5_ in
        let _v : (Parsetree.module_expr) = let _4 =
          let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined2_, _1_inlined4, _1_inlined3) in
          let _1 =
            let _3 =
              let xs =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 36055 "parsing/parser.ml"
                 in
                
# 1176 "parsing/parser.mly"
    ( xs )
# 36060 "parsing/parser.ml"
                
              in
              
# 2756 "parsing/parser.mly"
    ( xs )
# 36066 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos_xs_ in
            let _2 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 36077 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 36083 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 36103 "parsing/parser.ml"
            
          in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 36109 "parsing/parser.ml"
          
        in
        let _3 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 36117 "parsing/parser.ml"
          
        in
        let _loc__5_ = (_startpos__5_, _endpos__5_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 1450 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__5_ )
# 36125 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Longident.t) = 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 : (Longident.t) = 
# 1351 "parsing/parser.mly"
    ( _1 )
# 36157 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Longident.t) = 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 : (Longident.t) = 
# 1336 "parsing/parser.mly"
    ( _1 )
# 36189 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.core_type) = 
# 1311 "parsing/parser.mly"
    ( _1 )
# 36221 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.expression) = 
# 1316 "parsing/parser.mly"
    ( _1 )
# 36253 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Longident.t) = 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 : (Longident.t) = 
# 1341 "parsing/parser.mly"
    ( _1 )
# 36285 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Longident.t) = 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 : (Longident.t) = 
# 1346 "parsing/parser.mly"
    ( _1 )
# 36317 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.module_expr) = 
# 1306 "parsing/parser.mly"
    ( _1 )
# 36349 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.module_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 : (Parsetree.module_type) = 
# 1301 "parsing/parser.mly"
    ( _1 )
# 36381 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Longident.t) = 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 : (Longident.t) = 
# 1326 "parsing/parser.mly"
    ( _1 )
# 36413 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.pattern) = 
# 1321 "parsing/parser.mly"
    ( _1 )
# 36445 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Longident.t) = 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 : (Longident.t) = 
# 1331 "parsing/parser.mly"
    ( _1 )
# 36477 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.pattern) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = let _1 =
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          let _loc__2_ = (_startpos__2_, _endpos__2_) in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2876 "parsing/parser.mly"
      ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple[_1;_3])) )
# 36521 "parsing/parser.ml"
          
        in
        
# 2864 "parsing/parser.mly"
      ( _1 )
# 36527 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attribute) = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = let _1 = 
# 2878 "parsing/parser.mly"
      ( Pat.attr _1 _2 )
# 36559 "parsing/parser.ml"
         in
        
# 2864 "parsing/parser.mly"
      ( _1 )
# 36564 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = let _1 = 
# 2880 "parsing/parser.mly"
      ( _1 )
# 36589 "parsing/parser.ml"
         in
        
# 2864 "parsing/parser.mly"
      ( _1 )
# 36594 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.label) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.pattern) = 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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 =
              let _3 =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                let _endpos = _endpos__1_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 36641 "parsing/parser.ml"
                
              in
              
# 2883 "parsing/parser.mly"
        ( Ppat_alias(_1, _3) )
# 36647 "parsing/parser.ml"
              
            in
            let _endpos__1_ = _endpos__1_inlined1_ in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 36657 "parsing/parser.ml"
            
          in
          
# 2894 "parsing/parser.mly"
    ( _1 )
# 36663 "parsing/parser.ml"
          
        in
        
# 2864 "parsing/parser.mly"
      ( _1 )
# 36669 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 =
              let _loc__3_ = (_startpos__3_, _endpos__3_) in
              
# 2885 "parsing/parser.mly"
        ( expecting _loc__3_ "identifier" )
# 36712 "parsing/parser.ml"
              
            in
            let _endpos__1_ = _endpos__3_ in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 36722 "parsing/parser.ml"
            
          in
          
# 2894 "parsing/parser.mly"
    ( _1 )
# 36728 "parsing/parser.ml"
          
        in
        
# 2864 "parsing/parser.mly"
      ( _1 )
# 36734 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.pattern 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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 = 
# 2887 "parsing/parser.mly"
        ( Ppat_tuple(List.rev _1) )
# 36761 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 36769 "parsing/parser.ml"
            
          in
          
# 2894 "parsing/parser.mly"
    ( _1 )
# 36775 "parsing/parser.ml"
          
        in
        
# 2864 "parsing/parser.mly"
      ( _1 )
# 36781 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 =
              let _loc__3_ = (_startpos__3_, _endpos__3_) in
              
# 2889 "parsing/parser.mly"
        ( expecting _loc__3_ "pattern" )
# 36824 "parsing/parser.ml"
              
            in
            let _endpos__1_ = _endpos__3_ in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 36834 "parsing/parser.ml"
            
          in
          
# 2894 "parsing/parser.mly"
    ( _1 )
# 36840 "parsing/parser.ml"
          
        in
        
# 2864 "parsing/parser.mly"
      ( _1 )
# 36846 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.pattern) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 = 
# 2891 "parsing/parser.mly"
        ( Ppat_or(_1, _3) )
# 36887 "parsing/parser.ml"
             in
            let _endpos__1_ = _endpos__3_ in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 36896 "parsing/parser.ml"
            
          in
          
# 2894 "parsing/parser.mly"
    ( _1 )
# 36902 "parsing/parser.ml"
          
        in
        
# 2864 "parsing/parser.mly"
      ( _1 )
# 36908 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 =
              let _loc__3_ = (_startpos__3_, _endpos__3_) in
              
# 2893 "parsing/parser.mly"
        ( expecting _loc__3_ "pattern" )
# 36951 "parsing/parser.ml"
              
            in
            let _endpos__1_ = _endpos__3_ in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 36961 "parsing/parser.ml"
            
          in
          
# 2894 "parsing/parser.mly"
    ( _1 )
# 36967 "parsing/parser.ml"
          
        in
        
# 2864 "parsing/parser.mly"
      ( _1 )
# 36973 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.pattern) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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 : (Parsetree.pattern) = let _2 =
          let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
          let _2 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 37023 "parsing/parser.ml"
            
          in
          
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 37029 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2866 "parsing/parser.mly"
      ( mkpat_attrs ~loc:_sloc (Ppat_exception _3) _2)
# 37038 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.pattern) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.pattern list) = 
# 2993 "parsing/parser.mly"
                                                ( _3 :: _1 )
# 37077 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.pattern) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.pattern list) = 
# 2994 "parsing/parser.mly"
                                                ( [_3; _1] )
# 37116 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.pattern list) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
        
# 2995 "parsing/parser.mly"
                                                ( expecting _loc__3_ "pattern" )
# 37156 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.pattern) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.pattern list) = 
# 2993 "parsing/parser.mly"
                                                ( _3 :: _1 )
# 37195 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.pattern) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.pattern list) = 
# 2994 "parsing/parser.mly"
                                                ( [_3; _1] )
# 37234 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.pattern list) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
        
# 2995 "parsing/parser.mly"
                                                ( expecting _loc__3_ "pattern" )
# 37274 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = 
# 2899 "parsing/parser.mly"
      ( _1 )
# 37299 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.pattern) = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 37337 "parsing/parser.ml"
              
            in
            
# 2902 "parsing/parser.mly"
        ( Ppat_construct(_1, Some ([], _2)) )
# 37343 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 37353 "parsing/parser.ml"
          
        in
        
# 2908 "parsing/parser.mly"
      ( _1 )
# 37359 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = pat;
          MenhirLib.EngineTypes.startp = _startpos_pat_;
          MenhirLib.EngineTypes.endp = _endpos_pat_;
          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 = 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 pat : (Parsetree.pattern) = Obj.magic pat in
        let _5 : unit = Obj.magic _5 in
        let xs : (string Asttypes.loc list) = Obj.magic xs in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_pat_ in
        let _v : (Parsetree.pattern) = let _1 =
          let _1 =
            let newtypes = 
# 2637 "parsing/parser.mly"
    ( xs )
# 37421 "parsing/parser.ml"
             in
            let constr =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 37430 "parsing/parser.ml"
              
            in
            
# 2905 "parsing/parser.mly"
        ( Ppat_construct(constr, Some (newtypes, pat)) )
# 37436 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos_pat_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 37446 "parsing/parser.ml"
          
        in
        
# 2908 "parsing/parser.mly"
      ( _1 )
# 37452 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.pattern) = Obj.magic _2 in
        let _1 : (Asttypes.label) = 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 : (Parsetree.pattern) = let _1 =
          let _1 = 
# 2907 "parsing/parser.mly"
        ( Ppat_variant(_1, Some _2) )
# 37485 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 37494 "parsing/parser.ml"
          
        in
        
# 2908 "parsing/parser.mly"
      ( _1 )
# 37500 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.pattern) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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 : (Parsetree.pattern) = let _2 =
          let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
          let _2 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 37550 "parsing/parser.ml"
            
          in
          
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 37556 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2910 "parsing/parser.mly"
      ( mkpat_attrs ~loc:_sloc (Ppat_lazy _3) _2)
# 37565 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.pattern) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = let _1 =
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          let _loc__2_ = (_startpos__2_, _endpos__2_) in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2876 "parsing/parser.mly"
      ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple[_1;_3])) )
# 37609 "parsing/parser.ml"
          
        in
        
# 2871 "parsing/parser.mly"
      ( _1 )
# 37615 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attribute) = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = let _1 = 
# 2878 "parsing/parser.mly"
      ( Pat.attr _1 _2 )
# 37647 "parsing/parser.ml"
         in
        
# 2871 "parsing/parser.mly"
      ( _1 )
# 37652 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = let _1 = 
# 2880 "parsing/parser.mly"
      ( _1 )
# 37677 "parsing/parser.ml"
         in
        
# 2871 "parsing/parser.mly"
      ( _1 )
# 37682 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.label) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.pattern) = 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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 =
              let _3 =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
                let _endpos = _endpos__1_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 37729 "parsing/parser.ml"
                
              in
              
# 2883 "parsing/parser.mly"
        ( Ppat_alias(_1, _3) )
# 37735 "parsing/parser.ml"
              
            in
            let _endpos__1_ = _endpos__1_inlined1_ in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 37745 "parsing/parser.ml"
            
          in
          
# 2894 "parsing/parser.mly"
    ( _1 )
# 37751 "parsing/parser.ml"
          
        in
        
# 2871 "parsing/parser.mly"
      ( _1 )
# 37757 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 =
              let _loc__3_ = (_startpos__3_, _endpos__3_) in
              
# 2885 "parsing/parser.mly"
        ( expecting _loc__3_ "identifier" )
# 37800 "parsing/parser.ml"
              
            in
            let _endpos__1_ = _endpos__3_ in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 37810 "parsing/parser.ml"
            
          in
          
# 2894 "parsing/parser.mly"
    ( _1 )
# 37816 "parsing/parser.ml"
          
        in
        
# 2871 "parsing/parser.mly"
      ( _1 )
# 37822 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.pattern 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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 = 
# 2887 "parsing/parser.mly"
        ( Ppat_tuple(List.rev _1) )
# 37849 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 37857 "parsing/parser.ml"
            
          in
          
# 2894 "parsing/parser.mly"
    ( _1 )
# 37863 "parsing/parser.ml"
          
        in
        
# 2871 "parsing/parser.mly"
      ( _1 )
# 37869 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 =
              let _loc__3_ = (_startpos__3_, _endpos__3_) in
              
# 2889 "parsing/parser.mly"
        ( expecting _loc__3_ "pattern" )
# 37912 "parsing/parser.ml"
              
            in
            let _endpos__1_ = _endpos__3_ in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 37922 "parsing/parser.ml"
            
          in
          
# 2894 "parsing/parser.mly"
    ( _1 )
# 37928 "parsing/parser.ml"
          
        in
        
# 2871 "parsing/parser.mly"
      ( _1 )
# 37934 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.pattern) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 = 
# 2891 "parsing/parser.mly"
        ( Ppat_or(_1, _3) )
# 37975 "parsing/parser.ml"
             in
            let _endpos__1_ = _endpos__3_ in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 37984 "parsing/parser.ml"
            
          in
          
# 2894 "parsing/parser.mly"
    ( _1 )
# 37990 "parsing/parser.ml"
          
        in
        
# 2871 "parsing/parser.mly"
      ( _1 )
# 37996 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 =
              let _loc__3_ = (_startpos__3_, _endpos__3_) in
              
# 2893 "parsing/parser.mly"
        ( expecting _loc__3_ "pattern" )
# 38039 "parsing/parser.ml"
              
            in
            let _endpos__1_ = _endpos__3_ in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 38049 "parsing/parser.ml"
            
          in
          
# 2894 "parsing/parser.mly"
    ( _1 )
# 38055 "parsing/parser.ml"
          
        in
        
# 2871 "parsing/parser.mly"
      ( _1 )
# 38061 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 38082 "parsing/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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 38096 "parsing/parser.ml"
              
            in
            
# 2348 "parsing/parser.mly"
                        ( Ppat_var _1 )
# 38102 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 38111 "parsing/parser.ml"
          
        in
        
# 2350 "parsing/parser.mly"
    ( _1 )
# 38117 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Parsetree.pattern) = let _1 =
          let _1 = 
# 2349 "parsing/parser.mly"
                        ( Ppat_any )
# 38143 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 38151 "parsing/parser.ml"
          
        in
        
# 2350 "parsing/parser.mly"
    ( _1 )
# 38157 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.payload) = 
# 4088 "parsing/parser.mly"
              ( PStr _1 )
# 38182 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.payload) = 
# 4089 "parsing/parser.mly"
                    ( PSig _2 )
# 38214 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.payload) = 
# 4090 "parsing/parser.mly"
                    ( PTyp _2 )
# 38246 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.payload) = 
# 4091 "parsing/parser.mly"
                     ( PPat (_2, None) )
# 38278 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Parsetree.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 : (Parsetree.payload) = 
# 4092 "parsing/parser.mly"
                                   ( PPat (_2, Some _4) )
# 38324 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.core_type) = 
# 3429 "parsing/parser.mly"
    ( _1 )
# 38349 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _3 : (Parsetree.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos__3_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 =
            let _1 =
              let _1 =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 38392 "parsing/parser.ml"
                 in
                
# 1062 "parsing/parser.mly"
    ( xs )
# 38397 "parsing/parser.ml"
                
              in
              
# 3421 "parsing/parser.mly"
    ( _1 )
# 38403 "parsing/parser.ml"
              
            in
            
# 3425 "parsing/parser.mly"
    ( Ptyp_poly(_1, _3) )
# 38409 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 38419 "parsing/parser.ml"
          
        in
        
# 3431 "parsing/parser.mly"
    ( _1 )
# 38425 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.core_type) = let _1 = 
# 3460 "parsing/parser.mly"
    ( _1 )
# 38450 "parsing/parser.ml"
         in
        
# 3429 "parsing/parser.mly"
    ( _1 )
# 38455 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1 : (Parsetree.core_type) = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 =
            let _3 = 
# 3460 "parsing/parser.mly"
    ( _1 )
# 38496 "parsing/parser.ml"
             in
            let _1 =
              let _1 =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 38503 "parsing/parser.ml"
                 in
                
# 1062 "parsing/parser.mly"
    ( xs )
# 38508 "parsing/parser.ml"
                
              in
              
# 3421 "parsing/parser.mly"
    ( _1 )
# 38514 "parsing/parser.ml"
              
            in
            
# 3425 "parsing/parser.mly"
    ( Ptyp_poly(_1, _3) )
# 38520 "parsing/parser.ml"
            
          in
          let _startpos__1_ = _startpos_xs_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 38530 "parsing/parser.ml"
          
        in
        
# 3431 "parsing/parser.mly"
    ( _1 )
# 38536 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.payload) = Obj.magic _3 in
        let _2 : (Ast_helper.str) = 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 : (Parsetree.attribute) = let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 4049 "parsing/parser.mly"
    ( mk_attr ~loc:(make_loc _sloc) _2 _3 )
# 38585 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = prim;
            MenhirLib.EngineTypes.startp = _startpos_prim_;
            MenhirLib.EngineTypes.endp = _endpos_prim_;
            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 = ty;
                MenhirLib.EngineTypes.startp = _startpos_ty_;
                MenhirLib.EngineTypes.endp = _endpos_ty_;
                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_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 = ext;
                        MenhirLib.EngineTypes.startp = _startpos_ext_;
                        MenhirLib.EngineTypes.endp = _endpos_ext_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _menhir_s;
                          MenhirLib.EngineTypes.semv = _1;
                          MenhirLib.EngineTypes.startp = _startpos__1_;
                          MenhirLib.EngineTypes.endp = _endpos__1_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let prim : (string list) = Obj.magic prim in
        let _7 : unit = Obj.magic _7 in
        let ty : (Parsetree.core_type) = Obj.magic ty in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (Asttypes.label) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined3_ in
        let _v : (Parsetree.value_description * string Asttypes.loc option) = let attrs2 =
          let _1 = _1_inlined3 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 38668 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined3_ in
        let id =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 38680 "parsing/parser.ml"
          
        in
        let attrs1 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 38688 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_attrs2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3057 "parsing/parser.mly"
    ( let attrs = attrs1 @ attrs2 in
      let loc = make_loc _sloc in
      let docs = symbol_docs _sloc in
      Val.mk id ty ~prim ~attrs ~loc ~docs,
      ext )
# 38701 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Asttypes.private_flag) = let _1 = 
# 3917 "parsing/parser.mly"
                                                ( Public )
# 38719 "parsing/parser.ml"
         in
        
# 3914 "parsing/parser.mly"
    ( _1 )
# 38724 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.private_flag) = let _1 = 
# 3918 "parsing/parser.mly"
                                                ( Private )
# 38749 "parsing/parser.ml"
         in
        
# 3914 "parsing/parser.mly"
    ( _1 )
# 38754 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Asttypes.private_flag * Asttypes.virtual_flag) = 
# 3940 "parsing/parser.mly"
                 ( Public, Concrete )
# 38772 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.private_flag * Asttypes.virtual_flag) = 
# 3941 "parsing/parser.mly"
            ( Private, Concrete )
# 38797 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.private_flag * Asttypes.virtual_flag) = 
# 3942 "parsing/parser.mly"
            ( Public, Virtual )
# 38822 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.private_flag * Asttypes.virtual_flag) = 
# 3943 "parsing/parser.mly"
                    ( Private, Virtual )
# 38854 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.private_flag * Asttypes.virtual_flag) = 
# 3944 "parsing/parser.mly"
                    ( Private, Virtual )
# 38886 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Asttypes.rec_flag) = 
# 3895 "parsing/parser.mly"
                                                ( Nonrecursive )
# 38904 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.rec_flag) = 
# 3896 "parsing/parser.mly"
                                                ( Recursive )
# 38929 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = fields;
          MenhirLib.EngineTypes.startp = _startpos_fields_;
          MenhirLib.EngineTypes.endp = _endpos_fields_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let fields : ((Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic fields in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_fields_ in
        let _endpos = _endpos_fields_ in
        let _v : (Parsetree.expression option *
  (Longident.t Asttypes.loc * Parsetree.expression) list) = let eo = 
# 124 "<standard.mly>"
    ( None )
# 38955 "parsing/parser.ml"
         in
        
# 2796 "parsing/parser.mly"
    ( eo, fields )
# 38960 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = fields;
          MenhirLib.EngineTypes.startp = _startpos_fields_;
          MenhirLib.EngineTypes.endp = _endpos_fields_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.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 fields : ((Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic fields in
        let _2 : unit = Obj.magic _2 in
        let x : (Parsetree.expression) = Obj.magic x in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_ in
        let _endpos = _endpos_fields_ in
        let _v : (Parsetree.expression option *
  (Longident.t Asttypes.loc * Parsetree.expression) list) = let eo =
          let x = 
# 191 "<standard.mly>"
    ( x )
# 39001 "parsing/parser.ml"
           in
          
# 126 "<standard.mly>"
    ( Some x )
# 39006 "parsing/parser.ml"
          
        in
        
# 2796 "parsing/parser.mly"
    ( eo, fields )
# 39012 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = d;
          MenhirLib.EngineTypes.startp = _startpos_d_;
          MenhirLib.EngineTypes.endp = _endpos_d_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let d : (Ast_helper.str * Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option * Parsetree.attributes * Location.t *
  Docstrings.info) = Obj.magic d in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_d_ in
        let _endpos = _endpos_d_ in
        let _v : (Parsetree.constructor_declaration list) = let x = 
# 3242 "parsing/parser.mly"
    (
      let cid, vars, args, res, attrs, loc, info = d in
      Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info
    )
# 39042 "parsing/parser.ml"
         in
        
# 1193 "parsing/parser.mly"
      ( [x] )
# 39047 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = d;
          MenhirLib.EngineTypes.startp = _startpos_d_;
          MenhirLib.EngineTypes.endp = _endpos_d_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let d : (Ast_helper.str * Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option * Parsetree.attributes * Location.t *
  Docstrings.info) = Obj.magic d in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_d_ in
        let _endpos = _endpos_d_ in
        let _v : (Parsetree.constructor_declaration list) = let x = 
# 3242 "parsing/parser.mly"
    (
      let cid, vars, args, res, attrs, loc, info = d in
      Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info
    )
# 39077 "parsing/parser.ml"
         in
        
# 1196 "parsing/parser.mly"
      ( [x] )
# 39082 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = d;
          MenhirLib.EngineTypes.startp = _startpos_d_;
          MenhirLib.EngineTypes.endp = _endpos_d_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = xs;
            MenhirLib.EngineTypes.startp = _startpos_xs_;
            MenhirLib.EngineTypes.endp = _endpos_xs_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let d : (Ast_helper.str * Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option * Parsetree.attributes * Location.t *
  Docstrings.info) = Obj.magic d in
        let xs : (Parsetree.constructor_declaration list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_d_ in
        let _v : (Parsetree.constructor_declaration list) = let x = 
# 3242 "parsing/parser.mly"
    (
      let cid, vars, args, res, attrs, loc, info = d in
      Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info
    )
# 39119 "parsing/parser.ml"
         in
        
# 1200 "parsing/parser.mly"
      ( x :: xs )
# 39124 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = d;
          MenhirLib.EngineTypes.startp = _startpos_d_;
          MenhirLib.EngineTypes.endp = _endpos_d_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let d : (Ast_helper.str * Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option * Parsetree.attributes * Location.t *
  Docstrings.info) = Obj.magic d in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_d_ in
        let _endpos = _endpos_d_ in
        let _v : (Parsetree.extension_constructor list) = let x =
          let _1 = 
# 3359 "parsing/parser.mly"
    (
      let cid, vars, args, res, attrs, loc, info = d in
      Te.decl cid ~vars ~args ?res ~attrs ~loc ~info
    )
# 39155 "parsing/parser.ml"
           in
          
# 3353 "parsing/parser.mly"
      ( _1 )
# 39160 "parsing/parser.ml"
          
        in
        
# 1193 "parsing/parser.mly"
      ( [x] )
# 39166 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.extension_constructor list) = let x = 
# 3355 "parsing/parser.mly"
      ( _1 )
# 39191 "parsing/parser.ml"
         in
        
# 1193 "parsing/parser.mly"
      ( [x] )
# 39196 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = d;
          MenhirLib.EngineTypes.startp = _startpos_d_;
          MenhirLib.EngineTypes.endp = _endpos_d_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let d : (Ast_helper.str * Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option * Parsetree.attributes * Location.t *
  Docstrings.info) = Obj.magic d in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_d_ in
        let _endpos = _endpos_d_ in
        let _v : (Parsetree.extension_constructor list) = let x =
          let _1 = 
# 3359 "parsing/parser.mly"
    (
      let cid, vars, args, res, attrs, loc, info = d in
      Te.decl cid ~vars ~args ?res ~attrs ~loc ~info
    )
# 39227 "parsing/parser.ml"
           in
          
# 3353 "parsing/parser.mly"
      ( _1 )
# 39232 "parsing/parser.ml"
          
        in
        
# 1196 "parsing/parser.mly"
      ( [x] )
# 39238 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.extension_constructor list) = let x = 
# 3355 "parsing/parser.mly"
      ( _1 )
# 39263 "parsing/parser.ml"
         in
        
# 1196 "parsing/parser.mly"
      ( [x] )
# 39268 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = d;
          MenhirLib.EngineTypes.startp = _startpos_d_;
          MenhirLib.EngineTypes.endp = _endpos_d_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = xs;
            MenhirLib.EngineTypes.startp = _startpos_xs_;
            MenhirLib.EngineTypes.endp = _endpos_xs_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let d : (Ast_helper.str * Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option * Parsetree.attributes * Location.t *
  Docstrings.info) = Obj.magic d in
        let xs : (Parsetree.extension_constructor list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_d_ in
        let _v : (Parsetree.extension_constructor list) = let x =
          let _1 = 
# 3359 "parsing/parser.mly"
    (
      let cid, vars, args, res, attrs, loc, info = d in
      Te.decl cid ~vars ~args ?res ~attrs ~loc ~info
    )
# 39306 "parsing/parser.ml"
           in
          
# 3353 "parsing/parser.mly"
      ( _1 )
# 39311 "parsing/parser.ml"
          
        in
        
# 1200 "parsing/parser.mly"
      ( x :: xs )
# 39317 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
            MenhirLib.EngineTypes.startp = _startpos_xs_;
            MenhirLib.EngineTypes.endp = _endpos_xs_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _1 : (Parsetree.extension_constructor) = Obj.magic _1 in
        let xs : (Parsetree.extension_constructor list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.extension_constructor list) = let x = 
# 3355 "parsing/parser.mly"
      ( _1 )
# 39349 "parsing/parser.ml"
         in
        
# 1200 "parsing/parser.mly"
      ( x :: xs )
# 39354 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = d;
          MenhirLib.EngineTypes.startp = _startpos_d_;
          MenhirLib.EngineTypes.endp = _endpos_d_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let d : (Ast_helper.str * Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option * Parsetree.attributes * Location.t *
  Docstrings.info) = Obj.magic d in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_d_ in
        let _endpos = _endpos_d_ in
        let _v : (Parsetree.extension_constructor list) = let x = 
# 3359 "parsing/parser.mly"
    (
      let cid, vars, args, res, attrs, loc, info = d in
      Te.decl cid ~vars ~args ?res ~attrs ~loc ~info
    )
# 39384 "parsing/parser.ml"
         in
        
# 1193 "parsing/parser.mly"
      ( [x] )
# 39389 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = d;
          MenhirLib.EngineTypes.startp = _startpos_d_;
          MenhirLib.EngineTypes.endp = _endpos_d_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let d : (Ast_helper.str * Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option * Parsetree.attributes * Location.t *
  Docstrings.info) = Obj.magic d in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_d_ in
        let _endpos = _endpos_d_ in
        let _v : (Parsetree.extension_constructor list) = let x = 
# 3359 "parsing/parser.mly"
    (
      let cid, vars, args, res, attrs, loc, info = d in
      Te.decl cid ~vars ~args ?res ~attrs ~loc ~info
    )
# 39419 "parsing/parser.ml"
         in
        
# 1196 "parsing/parser.mly"
      ( [x] )
# 39424 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = d;
          MenhirLib.EngineTypes.startp = _startpos_d_;
          MenhirLib.EngineTypes.endp = _endpos_d_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = xs;
            MenhirLib.EngineTypes.startp = _startpos_xs_;
            MenhirLib.EngineTypes.endp = _endpos_xs_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let d : (Ast_helper.str * Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option * Parsetree.attributes * Location.t *
  Docstrings.info) = Obj.magic d in
        let xs : (Parsetree.extension_constructor list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_d_ in
        let _v : (Parsetree.extension_constructor list) = let x = 
# 3359 "parsing/parser.mly"
    (
      let cid, vars, args, res, attrs, loc, info = d in
      Te.decl cid ~vars ~args ?res ~attrs ~loc ~info
    )
# 39461 "parsing/parser.ml"
         in
        
# 1200 "parsing/parser.mly"
      ( x :: xs )
# 39466 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = 
# 1038 "parsing/parser.mly"
    ( [] )
# 39484 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = _;
                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 = xs;
                  MenhirLib.EngineTypes.startp = _startpos_xs_;
                  MenhirLib.EngineTypes.endp = _endpos_xs_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _3 : (Parsetree.core_type) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos__3_ in
        let _v : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = let x =
          let x =
            let (_startpos__1_, _1) = (_startpos__1_inlined1_, _1_inlined1) in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2197 "parsing/parser.mly"
    ( _1, _3, make_loc _sloc )
# 39543 "parsing/parser.ml"
            
          in
          
# 183 "<standard.mly>"
    ( x )
# 39549 "parsing/parser.ml"
          
        in
        
# 1040 "parsing/parser.mly"
    ( x :: xs )
# 39555 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (Parsetree.function_param 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 : (Parsetree.function_param list) = 
# 1071 "parsing/parser.mly"
    ( List.rev x )
# 39580 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
            MenhirLib.EngineTypes.startp = _startpos_xs_;
            MenhirLib.EngineTypes.endp = _endpos_xs_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Parsetree.function_param list) = Obj.magic x in
        let xs : (Parsetree.function_param list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_x_ in
        let _v : (Parsetree.function_param list) = 
# 1073 "parsing/parser.mly"
    ( List.rev_append x xs )
# 39612 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (Lexing.position * Parsetree.functor_parameter) = 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 : ((Lexing.position * Parsetree.functor_parameter) list) = 
# 1052 "parsing/parser.mly"
    ( [ x ] )
# 39637 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
            MenhirLib.EngineTypes.startp = _startpos_xs_;
            MenhirLib.EngineTypes.endp = _endpos_xs_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Lexing.position * Parsetree.functor_parameter) = Obj.magic x in
        let xs : ((Lexing.position * Parsetree.functor_parameter) list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_x_ in
        let _v : ((Lexing.position * Parsetree.functor_parameter) list) = 
# 1054 "parsing/parser.mly"
    ( x :: xs )
# 39669 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (Asttypes.arg_label * Parsetree.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 : ((Asttypes.arg_label * Parsetree.expression) list) = 
# 1052 "parsing/parser.mly"
    ( [ x ] )
# 39694 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
            MenhirLib.EngineTypes.startp = _startpos_xs_;
            MenhirLib.EngineTypes.endp = _endpos_xs_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Asttypes.arg_label * Parsetree.expression) = Obj.magic x in
        let xs : ((Asttypes.arg_label * Parsetree.expression) list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_x_ in
        let _v : ((Asttypes.arg_label * Parsetree.expression) list) = 
# 1054 "parsing/parser.mly"
    ( x :: xs )
# 39726 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (Asttypes.label) = 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 : (Asttypes.label list) = 
# 1052 "parsing/parser.mly"
    ( [ x ] )
# 39751 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
            MenhirLib.EngineTypes.startp = _startpos_xs_;
            MenhirLib.EngineTypes.endp = _endpos_xs_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Asttypes.label) = Obj.magic x in
        let xs : (Asttypes.label list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_x_ in
        let _v : (Asttypes.label list) = 
# 1054 "parsing/parser.mly"
    ( x :: xs )
# 39783 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.label) = 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 : (Asttypes.label Asttypes.loc list) = let x =
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3417 "parsing/parser.mly"
    ( mkrhs _2 _sloc )
# 39819 "parsing/parser.ml"
          
        in
        
# 1052 "parsing/parser.mly"
    ( [ x ] )
# 39825 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _2 : (Asttypes.label) = Obj.magic _2 in
        let _1 : unit = Obj.magic _1 in
        let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos__2_ in
        let _v : (Asttypes.label Asttypes.loc list) = let x =
          let _endpos = _endpos__2_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3417 "parsing/parser.mly"
    ( mkrhs _2 _sloc )
# 39868 "parsing/parser.ml"
          
        in
        
# 1054 "parsing/parser.mly"
    ( x :: xs )
# 39874 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (Parsetree.case) = 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 : (Parsetree.case list) = let _1 = 
# 124 "<standard.mly>"
    ( None )
# 39899 "parsing/parser.ml"
         in
        
# 1164 "parsing/parser.mly"
    ( [x] )
# 39904 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = x_inlined1;
            MenhirLib.EngineTypes.startp = _startpos_x_inlined1_;
            MenhirLib.EngineTypes.endp = _endpos_x_inlined1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let x : (Parsetree.case) = Obj.magic x in
        let x_inlined1 : unit = Obj.magic x_inlined1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x_inlined1_ in
        let _endpos = _endpos_x_ in
        let _v : (Parsetree.case list) = let _1 =
          let x = x_inlined1 in
          
# 126 "<standard.mly>"
    ( Some x )
# 39938 "parsing/parser.ml"
          
        in
        
# 1164 "parsing/parser.mly"
    ( [x] )
# 39944 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Parsetree.case) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_x_ in
        let _v : (Parsetree.case list) = 
# 1168 "parsing/parser.mly"
    ( x :: xs )
# 39983 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.core_type list) = let xs =
          let x = 
# 3460 "parsing/parser.mly"
    ( _1 )
# 40009 "parsing/parser.ml"
           in
          
# 1099 "parsing/parser.mly"
    ( [ x ] )
# 40014 "parsing/parser.ml"
          
        in
        
# 1107 "parsing/parser.mly"
    ( xs )
# 40020 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1 : (Parsetree.core_type) = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let xs : (Parsetree.core_type list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.core_type list) = let xs =
          let x = 
# 3460 "parsing/parser.mly"
    ( _1 )
# 40060 "parsing/parser.ml"
           in
          
# 1103 "parsing/parser.mly"
    ( x :: xs )
# 40065 "parsing/parser.ml"
          
        in
        
# 1107 "parsing/parser.mly"
    ( xs )
# 40071 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (Parsetree.with_constraint) = 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 : (Parsetree.with_constraint list) = let xs = 
# 1099 "parsing/parser.mly"
    ( [ x ] )
# 40096 "parsing/parser.ml"
         in
        
# 1107 "parsing/parser.mly"
    ( xs )
# 40101 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Parsetree.with_constraint) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let xs : (Parsetree.with_constraint list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_x_ in
        let _v : (Parsetree.with_constraint list) = let xs = 
# 1103 "parsing/parser.mly"
    ( x :: xs )
# 40140 "parsing/parser.ml"
         in
        
# 1107 "parsing/parser.mly"
    ( xs )
# 40145 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (Parsetree.row_field) = 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 : (Parsetree.row_field list) = let xs = 
# 1099 "parsing/parser.mly"
    ( [ x ] )
# 40170 "parsing/parser.ml"
         in
        
# 1107 "parsing/parser.mly"
    ( xs )
# 40175 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Parsetree.row_field) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let xs : (Parsetree.row_field list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_x_ in
        let _v : (Parsetree.row_field list) = let xs = 
# 1103 "parsing/parser.mly"
    ( x :: xs )
# 40214 "parsing/parser.ml"
         in
        
# 1107 "parsing/parser.mly"
    ( xs )
# 40219 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (Parsetree.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 : (Parsetree.core_type list) = let xs = 
# 1099 "parsing/parser.mly"
    ( [ x ] )
# 40244 "parsing/parser.ml"
         in
        
# 1107 "parsing/parser.mly"
    ( xs )
# 40249 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Parsetree.core_type) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let xs : (Parsetree.core_type list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_x_ in
        let _v : (Parsetree.core_type list) = let xs = 
# 1103 "parsing/parser.mly"
    ( x :: xs )
# 40288 "parsing/parser.ml"
         in
        
# 1107 "parsing/parser.mly"
    ( xs )
# 40293 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = 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 : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = 
# 1099 "parsing/parser.mly"
    ( [ x ] )
# 40318 "parsing/parser.ml"
         in
        
# 1107 "parsing/parser.mly"
    ( xs )
# 40323 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let xs : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_x_ in
        let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = 
# 1103 "parsing/parser.mly"
    ( x :: xs )
# 40362 "parsing/parser.ml"
         in
        
# 1107 "parsing/parser.mly"
    ( xs )
# 40367 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (Parsetree.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 : (Parsetree.core_type list) = let xs = 
# 1099 "parsing/parser.mly"
    ( [ x ] )
# 40392 "parsing/parser.ml"
         in
        
# 1107 "parsing/parser.mly"
    ( xs )
# 40397 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Parsetree.core_type) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let xs : (Parsetree.core_type list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_x_ in
        let _v : (Parsetree.core_type list) = let xs = 
# 1103 "parsing/parser.mly"
    ( x :: xs )
# 40436 "parsing/parser.ml"
         in
        
# 1107 "parsing/parser.mly"
    ( xs )
# 40441 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Parsetree.core_type) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let xs : (Parsetree.core_type list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_x_ in
        let _v : (Parsetree.core_type list) = 
# 1130 "parsing/parser.mly"
    ( x :: xs )
# 40480 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x2;
          MenhirLib.EngineTypes.startp = _startpos_x2_;
          MenhirLib.EngineTypes.endp = _endpos_x2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = x1;
              MenhirLib.EngineTypes.startp = _startpos_x1_;
              MenhirLib.EngineTypes.endp = _endpos_x1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x2 : (Parsetree.core_type) = Obj.magic x2 in
        let _2 : unit = Obj.magic _2 in
        let x1 : (Parsetree.core_type) = Obj.magic x1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x1_ in
        let _endpos = _endpos_x2_ in
        let _v : (Parsetree.core_type list) = 
# 1134 "parsing/parser.mly"
    ( [ x2; x1 ] )
# 40519 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let xs : (Parsetree.expression list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.expression list) = let x =
          let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 40559 "parsing/parser.ml"
           in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 40564 "parsing/parser.ml"
          
        in
        
# 1130 "parsing/parser.mly"
    ( x :: xs )
# 40570 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined1;
          MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos_xs_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 = _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 = xs;
                    MenhirLib.EngineTypes.startp = _startpos_xs_;
                    MenhirLib.EngineTypes.endp = _endpos_xs_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let xs_inlined1 : (Parsetree.case list) = Obj.magic xs_inlined1 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let _2 : unit = Obj.magic _2 in
        let xs : (Parsetree.expression list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_xs_inlined1_ in
        let _v : (Parsetree.expression list) = let x =
          let (_endpos_xs_, xs) = (_endpos_xs_inlined1_, xs_inlined1) in
          let _1 =
            let _3 =
              let xs =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 40635 "parsing/parser.ml"
                 in
                
# 1176 "parsing/parser.mly"
    ( xs )
# 40640 "parsing/parser.ml"
                
              in
              
# 2756 "parsing/parser.mly"
    ( xs )
# 40646 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos_xs_ in
            let _2 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 40657 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 40663 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 40683 "parsing/parser.ml"
            
          in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 40689 "parsing/parser.ml"
          
        in
        
# 1130 "parsing/parser.mly"
    ( x :: xs )
# 40695 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.expression list) = let x2 =
          let _1 = _1_inlined1 in
          let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 40736 "parsing/parser.ml"
           in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 40741 "parsing/parser.ml"
          
        in
        let x1 =
          let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 40748 "parsing/parser.ml"
           in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 40753 "parsing/parser.ml"
          
        in
        
# 1134 "parsing/parser.mly"
    ( [ x2; x1 ] )
# 40759 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (string Asttypes.loc option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.expression) = 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 : (Parsetree.expression list) = let x2 =
          let (_startpos__1_, _1_inlined2, _1_inlined1) = (_startpos__1_inlined1_, _1_inlined3, _1_inlined2) in
          let _1 =
            let _3 =
              let xs =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 40824 "parsing/parser.ml"
                 in
                
# 1176 "parsing/parser.mly"
    ( xs )
# 40829 "parsing/parser.ml"
                
              in
              
# 2756 "parsing/parser.mly"
    ( xs )
# 40835 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos_xs_ in
            let _2 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 40846 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 40852 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 40872 "parsing/parser.ml"
            
          in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 40878 "parsing/parser.ml"
          
        in
        let x1 =
          let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 40885 "parsing/parser.ml"
           in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 40890 "parsing/parser.ml"
          
        in
        
# 1134 "parsing/parser.mly"
    ( [ x2; x1 ] )
# 40896 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          MenhirLib.EngineTypes.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 = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              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 _1_inlined3 : (Parsetree.expression) = Obj.magic _1_inlined3 in
        let _2 : unit = Obj.magic _2 in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_inlined3_ in
        let _v : (Parsetree.expression list) = let x2 =
          let _1 = _1_inlined3 in
          let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 40958 "parsing/parser.ml"
           in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 40963 "parsing/parser.ml"
          
        in
        let x1 =
          let _1 =
            let _3 =
              let xs =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 40973 "parsing/parser.ml"
                 in
                
# 1176 "parsing/parser.mly"
    ( xs )
# 40978 "parsing/parser.ml"
                
              in
              
# 2756 "parsing/parser.mly"
    ( xs )
# 40984 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos_xs_ in
            let _2 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 40995 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 41001 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 41021 "parsing/parser.ml"
            
          in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 41027 "parsing/parser.ml"
          
        in
        
# 1134 "parsing/parser.mly"
    ( [ x2; x1 ] )
# 41033 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined1;
          MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_;
          MenhirLib.EngineTypes.endp = _endpos_xs_inlined1_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _1_inlined5;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined5_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined5_;
            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 = _2;
                  MenhirLib.EngineTypes.startp = _startpos__2_;
                  MenhirLib.EngineTypes.endp = _endpos__2_;
                  MenhirLib.EngineTypes.next = {
                    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 = _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 xs_inlined1 : (Parsetree.case list) = Obj.magic xs_inlined1 in
        let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in
        let _1_inlined4 : (string Asttypes.loc option) = Obj.magic _1_inlined4 in
        let _1_inlined3 : unit = Obj.magic _1_inlined3 in
        let _2 : unit = Obj.magic _2 in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_xs_inlined1_ in
        let _v : (Parsetree.expression list) = let x2 =
          let (_endpos_xs_, _startpos__1_, xs, _1_inlined2, _1_inlined1) = (_endpos_xs_inlined1_, _startpos__1_inlined3_, xs_inlined1, _1_inlined5, _1_inlined4) in
          let _1 =
            let _3 =
              let xs =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 41119 "parsing/parser.ml"
                 in
                
# 1176 "parsing/parser.mly"
    ( xs )
# 41124 "parsing/parser.ml"
                
              in
              
# 2756 "parsing/parser.mly"
    ( xs )
# 41130 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos_xs_ in
            let _2 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 41141 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 41147 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 41167 "parsing/parser.ml"
            
          in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 41173 "parsing/parser.ml"
          
        in
        let x1 =
          let _1 =
            let _3 =
              let xs =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 41183 "parsing/parser.ml"
                 in
                
# 1176 "parsing/parser.mly"
    ( xs )
# 41188 "parsing/parser.ml"
                
              in
              
# 2756 "parsing/parser.mly"
    ( xs )
# 41194 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos_xs_ in
            let _2 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 41205 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 41211 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 41231 "parsing/parser.ml"
            
          in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 41237 "parsing/parser.ml"
          
        in
        
# 1134 "parsing/parser.mly"
    ( [ x2; x1 ] )
# 41243 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
              MenhirLib.EngineTypes.startp = _startpos_xs_;
              MenhirLib.EngineTypes.endp = _endpos_xs_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x : (Parsetree.core_type) = Obj.magic x in
        let _2 : unit = Obj.magic _2 in
        let xs : (Parsetree.core_type list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_x_ in
        let _v : (Parsetree.core_type list) = 
# 1130 "parsing/parser.mly"
    ( x :: xs )
# 41282 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = x2;
          MenhirLib.EngineTypes.startp = _startpos_x2_;
          MenhirLib.EngineTypes.endp = _endpos_x2_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = _2;
            MenhirLib.EngineTypes.startp = _startpos__2_;
            MenhirLib.EngineTypes.endp = _endpos__2_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = x1;
              MenhirLib.EngineTypes.startp = _startpos_x1_;
              MenhirLib.EngineTypes.endp = _endpos_x1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let x2 : (Parsetree.core_type) = Obj.magic x2 in
        let _2 : unit = Obj.magic _2 in
        let x1 : (Parsetree.core_type) = Obj.magic x1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_x1_ in
        let _endpos = _endpos_x2_ in
        let _v : (Parsetree.core_type list) = 
# 1134 "parsing/parser.mly"
    ( [ x2; x1 ] )
# 41321 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.row_field) = 
# 3656 "parsing/parser.mly"
      ( _1 )
# 41346 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.row_field) = let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3658 "parsing/parser.mly"
      ( Rf.inherit_ ~loc:(make_loc _sloc) _1 )
# 41374 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.expression list) = let _2 = 
# 124 "<standard.mly>"
    ( None )
# 41399 "parsing/parser.ml"
         in
        let x =
          let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 41405 "parsing/parser.ml"
           in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 41410 "parsing/parser.ml"
          
        in
        
# 1151 "parsing/parser.mly"
    ( [x] )
# 41416 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : unit = Obj.magic x in
        let _1 : (Parsetree.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 : (Parsetree.expression list) = let _2 = 
# 126 "<standard.mly>"
    ( Some x )
# 41448 "parsing/parser.ml"
         in
        let x =
          let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 41454 "parsing/parser.ml"
           in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 41459 "parsing/parser.ml"
          
        in
        
# 1151 "parsing/parser.mly"
    ( [x] )
# 41465 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_xs_ in
        let _v : (Parsetree.expression list) = let _2 = 
# 124 "<standard.mly>"
    ( None )
# 41511 "parsing/parser.ml"
         in
        let x =
          let _1 =
            let _3 =
              let xs =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 41520 "parsing/parser.ml"
                 in
                
# 1176 "parsing/parser.mly"
    ( xs )
# 41525 "parsing/parser.ml"
                
              in
              
# 2756 "parsing/parser.mly"
    ( xs )
# 41531 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos_xs_ in
            let _2 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 41542 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 41548 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 41568 "parsing/parser.ml"
            
          in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 41574 "parsing/parser.ml"
          
        in
        
# 1151 "parsing/parser.mly"
    ( [x] )
# 41580 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xs;
            MenhirLib.EngineTypes.startp = _startpos_xs_;
            MenhirLib.EngineTypes.endp = _endpos_xs_;
            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 : unit = Obj.magic x in
        let xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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 : (Parsetree.expression list) = let _2 = 
# 126 "<standard.mly>"
    ( Some x )
# 41633 "parsing/parser.ml"
         in
        let x =
          let _1 =
            let _3 =
              let xs =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 41642 "parsing/parser.ml"
                 in
                
# 1176 "parsing/parser.mly"
    ( xs )
# 41647 "parsing/parser.ml"
                
              in
              
# 2756 "parsing/parser.mly"
    ( xs )
# 41653 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos_xs_ in
            let _2 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 41664 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 41670 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 41690 "parsing/parser.ml"
            
          in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 41696 "parsing/parser.ml"
          
        in
        
# 1151 "parsing/parser.mly"
    ( [x] )
# 41702 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression list) = Obj.magic xs in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.expression) = 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 : (Parsetree.expression list) = let x =
          let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 41742 "parsing/parser.ml"
           in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 41747 "parsing/parser.ml"
          
        in
        
# 1155 "parsing/parser.mly"
    ( x :: xs )
# 41753 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
              MenhirLib.EngineTypes.semv = xs_inlined1;
              MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_;
              MenhirLib.EngineTypes.endp = _endpos_xs_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 = _menhir_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 : (Parsetree.expression list) = Obj.magic xs in
        let _2 : unit = Obj.magic _2 in
        let xs_inlined1 : (Parsetree.case list) = Obj.magic xs_inlined1 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_xs_ in
        let _v : (Parsetree.expression list) = let x =
          let (_endpos_xs_, xs) = (_endpos_xs_inlined1_, xs_inlined1) in
          let _1 =
            let _3 =
              let xs =
                let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 41818 "parsing/parser.ml"
                 in
                
# 1176 "parsing/parser.mly"
    ( xs )
# 41823 "parsing/parser.ml"
                
              in
              
# 2756 "parsing/parser.mly"
    ( xs )
# 41829 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos_xs_ in
            let _2 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 41840 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 41846 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 41866 "parsing/parser.ml"
            
          in
          
# 2431 "parsing/parser.mly"
                          ( _1 )
# 41872 "parsing/parser.ml"
          
        in
        
# 1155 "parsing/parser.mly"
    ( x :: xs )
# 41878 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = oe;
          MenhirLib.EngineTypes.startp = _startpos_oe_;
          MenhirLib.EngineTypes.endp = _endpos_oe_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let oe : (Parsetree.expression option) = Obj.magic oe in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 41906 "parsing/parser.ml"
        ) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_oe_ in
        let _v : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = let _2 = 
# 124 "<standard.mly>"
    ( None )
# 41914 "parsing/parser.ml"
         in
        let x =
          let label =
            let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 41921 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 41929 "parsing/parser.ml"
            
          in
          
# 2819 "parsing/parser.mly"
      ( let label, e =
          match oe with
          | None ->
              (* No expression; this is a pun. Desugar it. *)
              make_ghost label, exp_of_label label
          | Some e ->
              label, e
        in
        label, e )
# 41943 "parsing/parser.ml"
          
        in
        
# 1151 "parsing/parser.mly"
    ( [x] )
# 41949 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = oe;
            MenhirLib.EngineTypes.startp = _startpos_oe_;
            MenhirLib.EngineTypes.endp = _endpos_oe_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_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 : unit = Obj.magic x in
        let oe : (Parsetree.expression option) = Obj.magic oe in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 41984 "parsing/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 : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = let _2 = 
# 126 "<standard.mly>"
    ( Some x )
# 41992 "parsing/parser.ml"
         in
        let x =
          let label =
            let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 41999 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 42007 "parsing/parser.ml"
            
          in
          
# 2819 "parsing/parser.mly"
      ( let label, e =
          match oe with
          | None ->
              (* No expression; this is a pun. Desugar it. *)
              make_ghost label, exp_of_label label
          | Some e ->
              label, e
        in
        label, e )
# 42021 "parsing/parser.ml"
          
        in
        
# 1151 "parsing/parser.mly"
    ( [x] )
# 42027 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
              MenhirLib.EngineTypes.semv = oe;
              MenhirLib.EngineTypes.startp = _startpos_oe_;
              MenhirLib.EngineTypes.endp = _endpos_oe_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_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 : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = Obj.magic xs in
        let _2 : unit = Obj.magic _2 in
        let oe : (Parsetree.expression option) = Obj.magic oe in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 42069 "parsing/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 : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = let x =
          let label =
            let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 42079 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 42087 "parsing/parser.ml"
            
          in
          
# 2819 "parsing/parser.mly"
      ( let label, e =
          match oe with
          | None ->
              (* No expression; this is a pun. Desugar it. *)
              make_ghost label, exp_of_label label
          | Some e ->
              label, e
        in
        label, e )
# 42101 "parsing/parser.ml"
          
        in
        
# 1155 "parsing/parser.mly"
    ( x :: xs )
# 42107 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.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 : (Parsetree.pattern) = 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 : (Parsetree.pattern list) = let _2 = 
# 124 "<standard.mly>"
    ( None )
# 42132 "parsing/parser.ml"
         in
        
# 1151 "parsing/parser.mly"
    ( [x] )
# 42137 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 x : (Parsetree.pattern) = 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 : (Parsetree.pattern list) = let _2 =
          let x = x_inlined1 in
          
# 126 "<standard.mly>"
    ( Some x )
# 42171 "parsing/parser.ml"
          
        in
        
# 1151 "parsing/parser.mly"
    ( [x] )
# 42177 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.pattern list) = Obj.magic xs in
        let _2 : unit = Obj.magic _2 in
        let x : (Parsetree.pattern) = 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 : (Parsetree.pattern list) = 
# 1155 "parsing/parser.mly"
    ( x :: xs )
# 42216 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = eo;
          MenhirLib.EngineTypes.startp = _startpos_eo_;
          MenhirLib.EngineTypes.endp = _endpos_eo_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = c;
            MenhirLib.EngineTypes.startp = _startpos_c_;
            MenhirLib.EngineTypes.endp = _endpos_c_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = _1;
              MenhirLib.EngineTypes.startp = _startpos__1_;
              MenhirLib.EngineTypes.endp = _endpos__1_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let eo : (Parsetree.expression option) = Obj.magic eo in
        let c : (Parsetree.type_constraint option) = Obj.magic c in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_eo_ in
        let _v : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let _2 = 
# 124 "<standard.mly>"
    ( None )
# 42255 "parsing/parser.ml"
         in
        let x =
          let label =
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 42265 "parsing/parser.ml"
            
          in
          let _startpos_label_ = _startpos__1_ in
          let _endpos = _endpos_eo_ in
          let _symbolstartpos = _startpos_label_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2802 "parsing/parser.mly"
      ( let constraint_loc, label, e =
          match eo with
          | None ->
              (* No pattern; this is a pun. Desugar it. *)
              _sloc, make_ghost label, exp_of_longident label
          | Some e ->
              (_startpos_c_, _endpos), label, e
        in
        label, mkexp_opt_constraint ~loc:constraint_loc e c )
# 42283 "parsing/parser.ml"
          
        in
        
# 1151 "parsing/parser.mly"
    ( [x] )
# 42289 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = eo;
            MenhirLib.EngineTypes.startp = _startpos_eo_;
            MenhirLib.EngineTypes.endp = _endpos_eo_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = c;
              MenhirLib.EngineTypes.startp = _startpos_c_;
              MenhirLib.EngineTypes.endp = _endpos_c_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _menhir_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 : unit = Obj.magic x in
        let eo : (Parsetree.expression option) = Obj.magic eo in
        let c : (Parsetree.type_constraint option) = Obj.magic c in
        let _1 : (Longident.t) = 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 : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let _2 = 
# 126 "<standard.mly>"
    ( Some x )
# 42335 "parsing/parser.ml"
         in
        let x =
          let label =
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 42345 "parsing/parser.ml"
            
          in
          let _startpos_label_ = _startpos__1_ in
          let _endpos = _endpos_eo_ in
          let _symbolstartpos = _startpos_label_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2802 "parsing/parser.mly"
      ( let constraint_loc, label, e =
          match eo with
          | None ->
              (* No pattern; this is a pun. Desugar it. *)
              _sloc, make_ghost label, exp_of_longident label
          | Some e ->
              (_startpos_c_, _endpos), label, e
        in
        label, mkexp_opt_constraint ~loc:constraint_loc e c )
# 42363 "parsing/parser.ml"
          
        in
        
# 1151 "parsing/parser.mly"
    ( [x] )
# 42369 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _;
              MenhirLib.EngineTypes.semv = eo;
              MenhirLib.EngineTypes.startp = _startpos_eo_;
              MenhirLib.EngineTypes.endp = _endpos_eo_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = c;
                MenhirLib.EngineTypes.startp = _startpos_c_;
                MenhirLib.EngineTypes.endp = _endpos_c_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_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 : ((Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic xs in
        let _2 : unit = Obj.magic _2 in
        let eo : (Parsetree.expression option) = Obj.magic eo in
        let c : (Parsetree.type_constraint option) = Obj.magic c in
        let _1 : (Longident.t) = 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 : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let x =
          let label =
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 42427 "parsing/parser.ml"
            
          in
          let _startpos_label_ = _startpos__1_ in
          let _endpos = _endpos_eo_ in
          let _symbolstartpos = _startpos_label_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2802 "parsing/parser.mly"
      ( let constraint_loc, label, e =
          match eo with
          | None ->
              (* No pattern; this is a pun. Desugar it. *)
              _sloc, make_ghost label, exp_of_longident label
          | Some e ->
              (_startpos_c_, _endpos), label, e
        in
        label, mkexp_opt_constraint ~loc:constraint_loc e c )
# 42445 "parsing/parser.ml"
          
        in
        
# 1155 "parsing/parser.mly"
    ( x :: xs )
# 42451 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.expression) = let _1 = 
# 2287 "parsing/parser.mly"
      ( _1 )
# 42476 "parsing/parser.ml"
         in
        
# 2325 "parsing/parser.mly"
                              ( _1 )
# 42481 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 xs : (Parsetree.case list) = Obj.magic xs in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_xs_ in
        let _v : (Parsetree.expression) = let _1 =
          let _3 =
            let xs =
              let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 42530 "parsing/parser.ml"
               in
              
# 1176 "parsing/parser.mly"
    ( xs )
# 42535 "parsing/parser.ml"
              
            in
            
# 2756 "parsing/parser.mly"
    ( xs )
# 42541 "parsing/parser.ml"
            
          in
          let _endpos__3_ = _endpos_xs_ in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 42552 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 42558 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2289 "parsing/parser.mly"
      ( let loc = make_loc _sloc in
        let cases = _3 in
        (* There are two choices of where to put attributes: on the
           Pexp_function node; on the Pfunction_cases body. We put them on the
           Pexp_function node here because the compiler only uses
           Pfunction_cases attributes for enabling/disabling warnings in
           typechecking. For standalone function cases, we want the compiler to
           respect, e.g., [@inline] attributes.
        *)
        let desc = mkfunction [] None (Pfunction_cases (cases, loc, [])) in
        mkexp_attrs ~loc:_sloc desc _2
      )
# 42578 "parsing/parser.ml"
          
        in
        
# 2325 "parsing/parser.mly"
                              ( _1 )
# 42584 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_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 = vars_args_res;
              MenhirLib.EngineTypes.startp = _startpos_vars_args_res_;
              MenhirLib.EngineTypes.endp = _endpos_vars_args_res_;
              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 = ext;
                    MenhirLib.EngineTypes.startp = _startpos_ext_;
                    MenhirLib.EngineTypes.endp = _endpos_ext_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let vars_args_res : (Ast_helper.str list * Parsetree.constructor_arguments *
  Parsetree.core_type option) = Obj.magic vars_args_res in
        let _1_inlined2 : (Asttypes.label) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined4_ in
        let _v : (Parsetree.type_exception * string Asttypes.loc option) = let attrs =
          let _1 = _1_inlined4 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 42654 "parsing/parser.ml"
          
        in
        let _endpos_attrs_ = _endpos__1_inlined4_ in
        let attrs2 =
          let _1 = _1_inlined3 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 42663 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined3_ in
        let id =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 42675 "parsing/parser.ml"
          
        in
        let attrs1 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 42683 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_attrs_ in
        let _startpos = _startpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3272 "parsing/parser.mly"
    ( let vars, args, res = vars_args_res in
      let loc = make_loc (_startpos, _endpos_attrs2_) in
      let docs = symbol_docs _sloc in
      Te.mk_exception ~attrs
        (Te.decl id ~vars ~args ?res ~attrs:(attrs1 @ attrs2) ~loc ~docs)
      , ext )
# 42698 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = xss;
          MenhirLib.EngineTypes.startp = _startpos_xss_;
          MenhirLib.EngineTypes.endp = _endpos_xss_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let xss : (Parsetree.signature_item list list) = Obj.magic xss in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xss_ in
        let _endpos = _endpos_xss_ in
        let _v : (Parsetree.signature) = let _1 =
          let _1 = 
# 260 "<standard.mly>"
    ( List.flatten xss )
# 42724 "parsing/parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
          let _endpos = _endpos__1_ in
          let _startpos = _startpos__1_ in
          
# 953 "parsing/parser.mly"
                              ( extra_sig _startpos _endpos _1 )
# 42732 "parsing/parser.ml"
          
        in
        
# 1733 "parsing/parser.mly"
    ( _1 )
# 42738 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let _1 : (Parsetree.extension) = 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 : (Parsetree.signature_item) = let _2 =
          let _1 = _1_inlined1 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 42772 "parsing/parser.ml"
          
        in
        let _endpos__2_ = _endpos__1_inlined1_ in
        let _endpos = _endpos__2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1748 "parsing/parser.mly"
      ( let docs = symbol_docs _sloc in
        mksig ~loc:_sloc (Psig_extension (_1, (add_docs_attrs docs _2))) )
# 42783 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.attribute) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.signature_item) = let _1 =
          let _1 = 
# 1752 "parsing/parser.mly"
        ( Psig_attribute _1 )
# 42809 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1001 "parsing/parser.mly"
    ( mksig ~loc:_sloc _1 )
# 42817 "parsing/parser.ml"
          
        in
        
# 1754 "parsing/parser.mly"
    ( _1 )
# 42823 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.value_description * string Asttypes.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 : (Parsetree.signature_item) = let _1 =
          let _1 = 
# 1757 "parsing/parser.mly"
        ( psig_value _1 )
# 42849 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 42857 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 42863 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.value_description * string Asttypes.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 : (Parsetree.signature_item) = let _1 =
          let _1 = 
# 1759 "parsing/parser.mly"
        ( psig_value _1 )
# 42889 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 42897 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 42903 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = bs;
          MenhirLib.EngineTypes.startp = _startpos_bs_;
          MenhirLib.EngineTypes.endp = _endpos_bs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = a;
            MenhirLib.EngineTypes.startp = _startpos_a_;
            MenhirLib.EngineTypes.endp = _endpos_a_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let bs : (Parsetree.type_declaration list) = Obj.magic bs in
        let a : ((Asttypes.rec_flag * string Asttypes.loc option) *
  Parsetree.type_declaration) = Obj.magic a in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_a_ in
        let _endpos = _endpos_bs_ in
        let _v : (Parsetree.signature_item) = let _1 =
          let _1 =
            let _1 =
              let _1 =
                let _1 = 
# 1212 "parsing/parser.mly"
    ( let (x, b) = a in x, b :: bs )
# 42940 "parsing/parser.ml"
                 in
                
# 3093 "parsing/parser.mly"
  ( _1 )
# 42945 "parsing/parser.ml"
                
              in
              
# 3076 "parsing/parser.mly"
    ( _1 )
# 42951 "parsing/parser.ml"
              
            in
            
# 1761 "parsing/parser.mly"
        ( psig_type _1 )
# 42957 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 42967 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 42973 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = bs;
          MenhirLib.EngineTypes.startp = _startpos_bs_;
          MenhirLib.EngineTypes.endp = _endpos_bs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = a;
            MenhirLib.EngineTypes.startp = _startpos_a_;
            MenhirLib.EngineTypes.endp = _endpos_a_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let bs : (Parsetree.type_declaration list) = Obj.magic bs in
        let a : ((Asttypes.rec_flag * string Asttypes.loc option) *
  Parsetree.type_declaration) = Obj.magic a in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_a_ in
        let _endpos = _endpos_bs_ in
        let _v : (Parsetree.signature_item) = let _1 =
          let _1 =
            let _1 =
              let _1 =
                let _1 = 
# 1212 "parsing/parser.mly"
    ( let (x, b) = a in x, b :: bs )
# 43010 "parsing/parser.ml"
                 in
                
# 3093 "parsing/parser.mly"
  ( _1 )
# 43015 "parsing/parser.ml"
                
              in
              
# 3081 "parsing/parser.mly"
    ( _1 )
# 43021 "parsing/parser.ml"
              
            in
            
# 1763 "parsing/parser.mly"
        ( psig_typesubst _1 )
# 43027 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 43037 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 43043 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          MenhirLib.EngineTypes.next = {
            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 = 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 = _1_inlined2;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                  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 = ext;
                        MenhirLib.EngineTypes.startp = _startpos_ext_;
                        MenhirLib.EngineTypes.endp = _endpos_ext_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _menhir_s;
                          MenhirLib.EngineTypes.semv = _1;
                          MenhirLib.EngineTypes.startp = _startpos__1_;
                          MenhirLib.EngineTypes.endp = _endpos__1_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let xs : (Parsetree.extension_constructor list) = Obj.magic xs in
        let priv : (Asttypes.private_flag) = Obj.magic priv in
        let _7 : unit = Obj.magic _7 in
        let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined3_ in
        let _v : (Parsetree.signature_item) = let _1 =
          let _1 =
            let _1 =
              let _1 =
                let attrs2 =
                  let _1 = _1_inlined3 in
                  
# 4058 "parsing/parser.mly"
    ( _1 )
# 43130 "parsing/parser.ml"
                  
                in
                let _endpos_attrs2_ = _endpos__1_inlined3_ in
                let cs = 
# 1204 "parsing/parser.mly"
    ( List.rev xs )
# 43137 "parsing/parser.ml"
                 in
                let tid =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
                  let _endpos = _endpos__1_ in
                  let _symbolstartpos = _startpos__1_ in
                  let _sloc = (_symbolstartpos, _endpos) in
                  
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 43147 "parsing/parser.ml"
                  
                in
                let _4 = 
# 3903 "parsing/parser.mly"
                ( Recursive )
# 43153 "parsing/parser.ml"
                 in
                let attrs1 =
                  let _1 = _1_inlined1 in
                  
# 4062 "parsing/parser.mly"
    ( _1 )
# 43160 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos_attrs2_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 3346 "parsing/parser.mly"
    ( let docs = symbol_docs _sloc in
      let attrs = attrs1 @ attrs2 in
      Te.mk tid cs ~params ~priv ~attrs ~docs,
      ext )
# 43172 "parsing/parser.ml"
                
              in
              
# 3333 "parsing/parser.mly"
    ( _1 )
# 43178 "parsing/parser.ml"
              
            in
            
# 1765 "parsing/parser.mly"
        ( psig_typext _1 )
# 43184 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 43194 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 43200 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined4;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined4_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined4_;
          MenhirLib.EngineTypes.next = {
            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 = 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 = _1_inlined3;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
                  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_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 = ext;
                          MenhirLib.EngineTypes.startp = _startpos_ext_;
                          MenhirLib.EngineTypes.endp = _endpos_ext_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = _1;
                            MenhirLib.EngineTypes.startp = _startpos__1_;
                            MenhirLib.EngineTypes.endp = _endpos__1_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let xs : (Parsetree.extension_constructor list) = Obj.magic xs in
        let priv : (Asttypes.private_flag) = Obj.magic priv in
        let _7 : unit = Obj.magic _7 in
        let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined4_ in
        let _v : (Parsetree.signature_item) = let _1 =
          let _1 =
            let _1 =
              let _1 =
                let attrs2 =
                  let _1 = _1_inlined4 in
                  
# 4058 "parsing/parser.mly"
    ( _1 )
# 43294 "parsing/parser.ml"
                  
                in
                let _endpos_attrs2_ = _endpos__1_inlined4_ in
                let cs = 
# 1204 "parsing/parser.mly"
    ( List.rev xs )
# 43301 "parsing/parser.ml"
                 in
                let tid =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
                  let _endpos = _endpos__1_ in
                  let _symbolstartpos = _startpos__1_ in
                  let _sloc = (_symbolstartpos, _endpos) in
                  
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 43311 "parsing/parser.ml"
                  
                in
                let _4 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  let _loc = (_startpos, _endpos) in
                  
# 3905 "parsing/parser.mly"
                ( not_expecting _loc "nonrec flag" )
# 43322 "parsing/parser.ml"
                  
                in
                let attrs1 =
                  let _1 = _1_inlined1 in
                  
# 4062 "parsing/parser.mly"
    ( _1 )
# 43330 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos_attrs2_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 3346 "parsing/parser.mly"
    ( let docs = symbol_docs _sloc in
      let attrs = attrs1 @ attrs2 in
      Te.mk tid cs ~params ~priv ~attrs ~docs,
      ext )
# 43342 "parsing/parser.ml"
                
              in
              
# 3333 "parsing/parser.mly"
    ( _1 )
# 43348 "parsing/parser.ml"
              
            in
            
# 1765 "parsing/parser.mly"
        ( psig_typext _1 )
# 43354 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined4_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 43364 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 43370 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.type_exception * string Asttypes.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 : (Parsetree.signature_item) = let _1 =
          let _1 = 
# 1767 "parsing/parser.mly"
        ( psig_exception _1 )
# 43396 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 43404 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 43410 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          MenhirLib.EngineTypes.next = {
            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 = _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 = ext;
                  MenhirLib.EngineTypes.startp = _startpos_ext_;
                  MenhirLib.EngineTypes.endp = _endpos_ext_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let body : (Parsetree.module_type) = Obj.magic body in
        let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined3_ in
        let _v : (Parsetree.signature_item) = let _1 =
          let _1 =
            let _1 =
              let attrs2 =
                let _1 = _1_inlined3 in
                
# 4058 "parsing/parser.mly"
    ( _1 )
# 43475 "parsing/parser.ml"
                
              in
              let _endpos_attrs2_ = _endpos__1_inlined3_ in
              let name =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
                let _endpos = _endpos__1_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 43487 "parsing/parser.ml"
                
              in
              let attrs1 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 43495 "parsing/parser.ml"
                
              in
              let _endpos = _endpos_attrs2_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 1798 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    Md.mk name body ~attrs ~loc ~docs, ext
  )
# 43509 "parsing/parser.ml"
              
            in
            
# 1769 "parsing/parser.mly"
        ( let (body, ext) = _1 in (Psig_module body, ext) )
# 43515 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 43525 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 43531 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_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 = _5;
              MenhirLib.EngineTypes.startp = _startpos__5_;
              MenhirLib.EngineTypes.endp = _endpos__5_;
              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 = ext;
                    MenhirLib.EngineTypes.startp = _startpos_ext_;
                    MenhirLib.EngineTypes.endp = _endpos_ext_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined4_ in
        let _v : (Parsetree.signature_item) = let _1 =
          let _1 =
            let _1 =
              let attrs2 =
                let _1 = _1_inlined4 in
                
# 4058 "parsing/parser.mly"
    ( _1 )
# 43603 "parsing/parser.ml"
                
              in
              let _endpos_attrs2_ = _endpos__1_inlined4_ in
              let body =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
                let id =
                  let _endpos = _endpos__1_ in
                  let _symbolstartpos = _startpos__1_ in
                  let _sloc = (_symbolstartpos, _endpos) in
                  
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 43616 "parsing/parser.ml"
                  
                in
                let (_endpos_id_, _startpos_id_) = (_endpos__1_, _startpos__1_) in
                let _endpos = _endpos_id_ in
                let _symbolstartpos = _startpos_id_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 1837 "parsing/parser.mly"
    ( Mty.alias ~loc:(make_loc _sloc) id )
# 43626 "parsing/parser.ml"
                
              in
              let name =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
                let _endpos = _endpos__1_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 43637 "parsing/parser.ml"
                
              in
              let attrs1 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 43645 "parsing/parser.ml"
                
              in
              let _endpos = _endpos_attrs2_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 1828 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    Md.mk name body ~attrs ~loc ~docs, ext
  )
# 43659 "parsing/parser.ml"
              
            in
            
# 1771 "parsing/parser.mly"
        ( let (body, ext) = _1 in (Psig_module body, ext) )
# 43665 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined4_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 43675 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 43681 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.module_substitution * string Asttypes.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 : (Parsetree.signature_item) = let _1 =
          let _1 = 
# 1773 "parsing/parser.mly"
        ( let (body, ext) = _1 in (Psig_modsubst body, ext) )
# 43707 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 43715 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 43721 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = bs;
          MenhirLib.EngineTypes.startp = _startpos_bs_;
          MenhirLib.EngineTypes.endp = _endpos_bs_;
          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 = mty;
              MenhirLib.EngineTypes.startp = _startpos_mty_;
              MenhirLib.EngineTypes.endp = _endpos_mty_;
              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 = _1_inlined2;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                  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 = ext;
                        MenhirLib.EngineTypes.startp = _startpos_ext_;
                        MenhirLib.EngineTypes.endp = _endpos_ext_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _menhir_s;
                          MenhirLib.EngineTypes.semv = _1;
                          MenhirLib.EngineTypes.startp = _startpos__1_;
                          MenhirLib.EngineTypes.endp = _endpos__1_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let bs : (Parsetree.module_declaration list) = Obj.magic bs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let mty : (Parsetree.module_type) = Obj.magic mty in
        let _6 : unit = Obj.magic _6 in
        let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_bs_ in
        let _v : (Parsetree.signature_item) = let _1 =
          let _1 =
            let _1 =
              let _1 =
                let a =
                  let attrs2 =
                    let _1 = _1_inlined3 in
                    
# 4058 "parsing/parser.mly"
    ( _1 )
# 43809 "parsing/parser.ml"
                    
                  in
                  let _endpos_attrs2_ = _endpos__1_inlined3_ in
                  let name =
                    let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
                    let _endpos = _endpos__1_ in
                    let _symbolstartpos = _startpos__1_ in
                    let _sloc = (_symbolstartpos, _endpos) in
                    
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 43821 "parsing/parser.ml"
                    
                  in
                  let attrs1 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 43829 "parsing/parser.ml"
                    
                  in
                  let _endpos = _endpos_attrs2_ in
                  let _symbolstartpos = _startpos__1_ in
                  let _sloc = (_symbolstartpos, _endpos) in
                  
# 1871 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    ext, Md.mk name mty ~attrs ~loc ~docs
  )
# 43843 "parsing/parser.ml"
                  
                in
                
# 1212 "parsing/parser.mly"
    ( let (x, b) = a in x, b :: bs )
# 43849 "parsing/parser.ml"
                
              in
              
# 1860 "parsing/parser.mly"
    ( _1 )
# 43855 "parsing/parser.ml"
              
            in
            
# 1775 "parsing/parser.mly"
        ( let (ext, l) = _1 in (Psig_recmodule l, ext) )
# 43861 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos_bs_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 43871 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 43877 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.module_type_declaration * string Asttypes.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 : (Parsetree.signature_item) = let _1 =
          let _1 = 
# 1777 "parsing/parser.mly"
        ( let (body, ext) = _1 in (Psig_modtype body, ext) )
# 43903 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 43911 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 43917 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.module_type_declaration * string Asttypes.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 : (Parsetree.signature_item) = let _1 =
          let _1 = 
# 1779 "parsing/parser.mly"
        ( let (body, ext) = _1 in (Psig_modtypesubst body, ext) )
# 43943 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 43951 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 43957 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.open_description * string Asttypes.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 : (Parsetree.signature_item) = let _1 =
          let _1 = 
# 1781 "parsing/parser.mly"
        ( let (body, ext) = _1 in (Psig_open body, ext) )
# 43983 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 43991 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 43997 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = thing;
            MenhirLib.EngineTypes.startp = _startpos_thing_;
            MenhirLib.EngineTypes.endp = _endpos_thing_;
            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 = ext;
                MenhirLib.EngineTypes.startp = _startpos_ext_;
                MenhirLib.EngineTypes.endp = _endpos_ext_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  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 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let thing : (Parsetree.module_type) = Obj.magic thing in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined2_ in
        let _v : (Parsetree.signature_item) = let _1 =
          let _1 =
            let _1 =
              let attrs2 =
                let _1 = _1_inlined2 in
                
# 4058 "parsing/parser.mly"
    ( _1 )
# 44055 "parsing/parser.ml"
                
              in
              let _endpos_attrs2_ = _endpos__1_inlined2_ in
              let attrs1 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 44064 "parsing/parser.ml"
                
              in
              let _endpos = _endpos_attrs2_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 1621 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    Incl.mk thing ~attrs ~loc ~docs, ext
  )
# 44078 "parsing/parser.ml"
              
            in
            
# 1783 "parsing/parser.mly"
        ( psig_include _1 )
# 44084 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 44094 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 44100 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = bs;
          MenhirLib.EngineTypes.startp = _startpos_bs_;
          MenhirLib.EngineTypes.endp = _endpos_bs_;
          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 = cty;
              MenhirLib.EngineTypes.startp = _startpos_cty_;
              MenhirLib.EngineTypes.endp = _endpos_cty_;
              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 = _1_inlined2;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                  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 = virt;
                      MenhirLib.EngineTypes.startp = _startpos_virt_;
                      MenhirLib.EngineTypes.endp = _endpos_virt_;
                      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 = ext;
                          MenhirLib.EngineTypes.startp = _startpos_ext_;
                          MenhirLib.EngineTypes.endp = _endpos_ext_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = _1;
                            MenhirLib.EngineTypes.startp = _startpos__1_;
                            MenhirLib.EngineTypes.endp = _endpos__1_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let bs : (Parsetree.class_description list) = Obj.magic bs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let cty : (Parsetree.class_type) = Obj.magic cty in
        let _7 : unit = Obj.magic _7 in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 44179 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let virt : (Asttypes.virtual_flag) = Obj.magic virt in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_bs_ in
        let _v : (Parsetree.signature_item) = let _1 =
          let _1 =
            let _1 =
              let _1 =
                let a =
                  let attrs2 =
                    let _1 = _1_inlined3 in
                    
# 4058 "parsing/parser.mly"
    ( _1 )
# 44199 "parsing/parser.ml"
                    
                  in
                  let _endpos_attrs2_ = _endpos__1_inlined3_ in
                  let id =
                    let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
                    let _endpos = _endpos__1_ in
                    let _symbolstartpos = _startpos__1_ in
                    let _sloc = (_symbolstartpos, _endpos) in
                    
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 44211 "parsing/parser.ml"
                    
                  in
                  let attrs1 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 44219 "parsing/parser.ml"
                    
                  in
                  let _endpos = _endpos_attrs2_ in
                  let _symbolstartpos = _startpos__1_ in
                  let _sloc = (_symbolstartpos, _endpos) in
                  
# 2218 "parsing/parser.mly"
    (
      let attrs = attrs1 @ attrs2 in
      let loc = make_loc _sloc in
      let docs = symbol_docs _sloc in
      ext,
      Ci.mk id cty ~virt ~params ~attrs ~loc ~docs
    )
# 44234 "parsing/parser.ml"
                  
                in
                
# 1212 "parsing/parser.mly"
    ( let (x, b) = a in x, b :: bs )
# 44240 "parsing/parser.ml"
                
              in
              
# 2206 "parsing/parser.mly"
    ( _1 )
# 44246 "parsing/parser.ml"
              
            in
            
# 1785 "parsing/parser.mly"
        ( let (ext, l) = _1 in (Psig_class l, ext) )
# 44252 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos_bs_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 44262 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 44268 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 Asttypes.loc option * 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 : (Parsetree.signature_item) = let _1 =
          let _1 = 
# 1787 "parsing/parser.mly"
        ( let (ext, l) = _1 in (Psig_class_type l, ext) )
# 44294 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1018 "parsing/parser.mly"
    ( wrap_mksig_ext ~loc:_sloc _1 )
# 44302 "parsing/parser.ml"
          
        in
        
# 1789 "parsing/parser.mly"
    ( _1 )
# 44308 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.constant) = 
# 3732 "parsing/parser.mly"
                 ( _1 )
# 44333 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (
# 764 "parsing/parser.mly"
       (string * char option)
# 44360 "parsing/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 : (Parsetree.constant) = 
# 3733 "parsing/parser.mly"
                 ( let (n, m) = _2 in Pconst_integer("-" ^ n, m) )
# 44369 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (
# 743 "parsing/parser.mly"
       (string * char option)
# 44396 "parsing/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 : (Parsetree.constant) = 
# 3734 "parsing/parser.mly"
                 ( let (f, m) = _2 in Pconst_float("-" ^ f, m) )
# 44405 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (
# 764 "parsing/parser.mly"
       (string * char option)
# 44432 "parsing/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 : (Parsetree.constant) = 
# 3735 "parsing/parser.mly"
                 ( let (n, m) = _2 in Pconst_integer (n, m) )
# 44441 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (
# 743 "parsing/parser.mly"
       (string * char option)
# 44468 "parsing/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 : (Parsetree.constant) = 
# 3736 "parsing/parser.mly"
                 ( let (f, m) = _2 in Pconst_float(f, m) )
# 44477 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = 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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _2 =
              let _1 = _1_inlined1 in
              
# 3005 "parsing/parser.mly"
    ( let fields, closed = _1 in
      let closed = match closed with Some () -> Open | None -> Closed in
      fields, closed )
# 44522 "parsing/parser.ml"
              
            in
            
# 2976 "parsing/parser.mly"
      ( let (fields, closed) = _2 in
        Ppat_record(fields, closed) )
# 44529 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 44539 "parsing/parser.ml"
          
        in
        
# 2990 "parsing/parser.mly"
    ( _1 )
# 44545 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = 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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _2 =
              let _1 = _1_inlined1 in
              
# 3005 "parsing/parser.mly"
    ( let fields, closed = _1 in
      let closed = match closed with Some () -> Open | None -> Closed in
      fields, closed )
# 44590 "parsing/parser.ml"
              
            in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2979 "parsing/parser.mly"
      ( unclosed "{" _loc__1_ "}" _loc__3_ )
# 44598 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 44608 "parsing/parser.ml"
          
        in
        
# 2990 "parsing/parser.mly"
    ( _1 )
# 44614 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = ps;
            MenhirLib.EngineTypes.startp = _startpos_ps_;
            MenhirLib.EngineTypes.endp = _endpos_ps_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_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 ps : (Parsetree.pattern list) = Obj.magic ps in
        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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _2 = 
# 2999 "parsing/parser.mly"
    ( ps )
# 44655 "parsing/parser.ml"
             in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            
# 2981 "parsing/parser.mly"
      ( fst (mktailpat _loc__3_ _2) )
# 44661 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 44671 "parsing/parser.ml"
          
        in
        
# 2990 "parsing/parser.mly"
    ( _1 )
# 44677 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = ps;
            MenhirLib.EngineTypes.startp = _startpos_ps_;
            MenhirLib.EngineTypes.endp = _endpos_ps_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_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 ps : (Parsetree.pattern list) = Obj.magic ps in
        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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _2 = 
# 2999 "parsing/parser.mly"
    ( ps )
# 44718 "parsing/parser.ml"
             in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2983 "parsing/parser.mly"
      ( unclosed "[" _loc__1_ "]" _loc__3_ )
# 44725 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 44735 "parsing/parser.ml"
          
        in
        
# 2990 "parsing/parser.mly"
    ( _1 )
# 44741 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = ps;
            MenhirLib.EngineTypes.startp = _startpos_ps_;
            MenhirLib.EngineTypes.endp = _endpos_ps_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_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 ps : (Parsetree.pattern list) = Obj.magic ps in
        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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _2 = 
# 2999 "parsing/parser.mly"
    ( ps )
# 44782 "parsing/parser.ml"
             in
            
# 2985 "parsing/parser.mly"
      ( Ppat_array _2 )
# 44787 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 44797 "parsing/parser.ml"
          
        in
        
# 2990 "parsing/parser.mly"
    ( _1 )
# 44803 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.pattern) = let _1 =
          let _1 = 
# 2987 "parsing/parser.mly"
      ( Ppat_array [] )
# 44836 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 44845 "parsing/parser.ml"
          
        in
        
# 2990 "parsing/parser.mly"
    ( _1 )
# 44851 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = ps;
            MenhirLib.EngineTypes.startp = _startpos_ps_;
            MenhirLib.EngineTypes.endp = _endpos_ps_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_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 ps : (Parsetree.pattern list) = Obj.magic ps in
        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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _2 = 
# 2999 "parsing/parser.mly"
    ( ps )
# 44892 "parsing/parser.ml"
             in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2989 "parsing/parser.mly"
      ( unclosed "[|" _loc__1_ "|]" _loc__3_ )
# 44899 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 44909 "parsing/parser.ml"
          
        in
        
# 2990 "parsing/parser.mly"
    ( _1 )
# 44915 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.expression) = let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2493 "parsing/parser.mly"
      ( reloc_exp ~loc:_sloc _2 )
# 44957 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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 : (Parsetree.expression) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 2495 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__3_ )
# 44998 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.type_constraint) = Obj.magic _3 in
        let _2 : (Parsetree.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 : (Parsetree.expression) = let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2497 "parsing/parser.mly"
      ( mkexp_constraint ~loc:_sloc _2 _3 )
# 45047 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = i;
            MenhirLib.EngineTypes.startp = _startpos_i_;
            MenhirLib.EngineTypes.endp = _endpos_i_;
            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 = d;
                MenhirLib.EngineTypes.startp = _startpos_d_;
                MenhirLib.EngineTypes.endp = _endpos_d_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = array;
                  MenhirLib.EngineTypes.startp = _startpos_array_;
                  MenhirLib.EngineTypes.endp = _endpos_array_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let i : (Parsetree.expression) = Obj.magic i in
        let _3 : unit = Obj.magic _3 in
        let d : unit = Obj.magic d in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__5_ in
        let _v : (Parsetree.expression) = let _1 =
          let r = 
# 2498 "parsing/parser.mly"
                                ( None )
# 45101 "parsing/parser.ml"
           in
          
# 2379 "parsing/parser.mly"
    ( array, d, Paren,   i, r )
# 45106 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2499 "parsing/parser.mly"
      ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
# 45116 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = i;
            MenhirLib.EngineTypes.startp = _startpos_i_;
            MenhirLib.EngineTypes.endp = _endpos_i_;
            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 = d;
                MenhirLib.EngineTypes.startp = _startpos_d_;
                MenhirLib.EngineTypes.endp = _endpos_d_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = array;
                  MenhirLib.EngineTypes.startp = _startpos_array_;
                  MenhirLib.EngineTypes.endp = _endpos_array_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let i : (Parsetree.expression) = Obj.magic i in
        let _3 : unit = Obj.magic _3 in
        let d : unit = Obj.magic d in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__5_ in
        let _v : (Parsetree.expression) = let _1 =
          let r = 
# 2498 "parsing/parser.mly"
                                ( None )
# 45170 "parsing/parser.ml"
           in
          
# 2381 "parsing/parser.mly"
    ( array, d, Brace,   i, r )
# 45175 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2499 "parsing/parser.mly"
      ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
# 45185 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = i;
            MenhirLib.EngineTypes.startp = _startpos_i_;
            MenhirLib.EngineTypes.endp = _endpos_i_;
            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 = d;
                MenhirLib.EngineTypes.startp = _startpos_d_;
                MenhirLib.EngineTypes.endp = _endpos_d_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = array;
                  MenhirLib.EngineTypes.startp = _startpos_array_;
                  MenhirLib.EngineTypes.endp = _endpos_array_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let i : (Parsetree.expression) = Obj.magic i in
        let _3 : unit = Obj.magic _3 in
        let d : unit = Obj.magic d in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__5_ in
        let _v : (Parsetree.expression) = let _1 =
          let r = 
# 2498 "parsing/parser.mly"
                                ( None )
# 45239 "parsing/parser.ml"
           in
          
# 2383 "parsing/parser.mly"
    ( array, d, Bracket, i, r )
# 45244 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2499 "parsing/parser.mly"
      ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 )
# 45254 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            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 = array;
                  MenhirLib.EngineTypes.startp = _startpos_array_;
                  MenhirLib.EngineTypes.endp = _endpos_array_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 45302 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__5_ in
        let _v : (Parsetree.expression) = let _1 =
          let r = 
# 2500 "parsing/parser.mly"
                                                  ( None )
# 45312 "parsing/parser.ml"
           in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 45317 "parsing/parser.ml"
           in
          let d =
            let _1 = 
# 124 "<standard.mly>"
    ( None )
# 45323 "parsing/parser.ml"
             in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 45328 "parsing/parser.ml"
            
          in
          
# 2379 "parsing/parser.mly"
    ( array, d, Paren,   i, r )
# 45334 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2501 "parsing/parser.mly"
      ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 45344 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            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 = _;
                    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 = array;
                      MenhirLib.EngineTypes.startp = _startpos_array_;
                      MenhirLib.EngineTypes.endp = _endpos_array_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 45404 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__5_ in
        let _v : (Parsetree.expression) = let _1 =
          let r = 
# 2500 "parsing/parser.mly"
                                                  ( None )
# 45416 "parsing/parser.ml"
           in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 45421 "parsing/parser.ml"
           in
          let d =
            let _1 =
              let _2 = _2_inlined1 in
              let x = 
# 2395 "parsing/parser.mly"
                                                   (_2)
# 45429 "parsing/parser.ml"
               in
              
# 126 "<standard.mly>"
    ( Some x )
# 45434 "parsing/parser.ml"
              
            in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 45440 "parsing/parser.ml"
            
          in
          
# 2379 "parsing/parser.mly"
    ( array, d, Paren,   i, r )
# 45446 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2501 "parsing/parser.mly"
      ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 45456 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            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 = array;
                  MenhirLib.EngineTypes.startp = _startpos_array_;
                  MenhirLib.EngineTypes.endp = _endpos_array_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 45504 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__5_ in
        let _v : (Parsetree.expression) = let _1 =
          let r = 
# 2500 "parsing/parser.mly"
                                                  ( None )
# 45514 "parsing/parser.ml"
           in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 45519 "parsing/parser.ml"
           in
          let d =
            let _1 = 
# 124 "<standard.mly>"
    ( None )
# 45525 "parsing/parser.ml"
             in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 45530 "parsing/parser.ml"
            
          in
          
# 2381 "parsing/parser.mly"
    ( array, d, Brace,   i, r )
# 45536 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2501 "parsing/parser.mly"
      ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 45546 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            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 = _;
                    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 = array;
                      MenhirLib.EngineTypes.startp = _startpos_array_;
                      MenhirLib.EngineTypes.endp = _endpos_array_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 45606 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__5_ in
        let _v : (Parsetree.expression) = let _1 =
          let r = 
# 2500 "parsing/parser.mly"
                                                  ( None )
# 45618 "parsing/parser.ml"
           in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 45623 "parsing/parser.ml"
           in
          let d =
            let _1 =
              let _2 = _2_inlined1 in
              let x = 
# 2395 "parsing/parser.mly"
                                                   (_2)
# 45631 "parsing/parser.ml"
               in
              
# 126 "<standard.mly>"
    ( Some x )
# 45636 "parsing/parser.ml"
              
            in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 45642 "parsing/parser.ml"
            
          in
          
# 2381 "parsing/parser.mly"
    ( array, d, Brace,   i, r )
# 45648 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2501 "parsing/parser.mly"
      ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 45658 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            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 = array;
                  MenhirLib.EngineTypes.startp = _startpos_array_;
                  MenhirLib.EngineTypes.endp = _endpos_array_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 45706 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__5_ in
        let _v : (Parsetree.expression) = let _1 =
          let r = 
# 2500 "parsing/parser.mly"
                                                  ( None )
# 45716 "parsing/parser.ml"
           in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 45721 "parsing/parser.ml"
           in
          let d =
            let _1 = 
# 124 "<standard.mly>"
    ( None )
# 45727 "parsing/parser.ml"
             in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 45732 "parsing/parser.ml"
            
          in
          
# 2383 "parsing/parser.mly"
    ( array, d, Bracket, i, r )
# 45738 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2501 "parsing/parser.mly"
      ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 45748 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            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 = _;
                    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 = array;
                      MenhirLib.EngineTypes.startp = _startpos_array_;
                      MenhirLib.EngineTypes.endp = _endpos_array_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _5 : unit = Obj.magic _5 in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 45808 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
        let _1 : unit = Obj.magic _1 in
        let array : (Parsetree.expression) = Obj.magic array in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_array_ in
        let _endpos = _endpos__5_ in
        let _v : (Parsetree.expression) = let _1 =
          let r = 
# 2500 "parsing/parser.mly"
                                                  ( None )
# 45820 "parsing/parser.ml"
           in
          let i = 
# 2831 "parsing/parser.mly"
    ( es )
# 45825 "parsing/parser.ml"
           in
          let d =
            let _1 =
              let _2 = _2_inlined1 in
              let x = 
# 2395 "parsing/parser.mly"
                                                   (_2)
# 45833 "parsing/parser.ml"
               in
              
# 126 "<standard.mly>"
    ( Some x )
# 45838 "parsing/parser.ml"
              
            in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 45844 "parsing/parser.ml"
            
          in
          
# 2383 "parsing/parser.mly"
    ( array, d, Bracket, i, r )
# 45850 "parsing/parser.ml"
          
        in
        let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2501 "parsing/parser.mly"
      ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 )
# 45860 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _e;
          MenhirLib.EngineTypes.startp = _startpos__e_;
          MenhirLib.EngineTypes.endp = _endpos__e_;
          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 = _p;
              MenhirLib.EngineTypes.startp = _startpos__p_;
              MenhirLib.EngineTypes.endp = _endpos__p_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _e : unit = Obj.magic _e in
        let _4 : (Parsetree.expression) = Obj.magic _4 in
        let _p : unit = Obj.magic _p in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__e_ in
        let _v : (Parsetree.expression) = let _1 =
          let _loc__p_ = (_startpos__p_, _endpos__p_) in
          let _loc__e_ = (_startpos__e_, _endpos__e_) in
          
# 2388 "parsing/parser.mly"
    ( indexop_unclosed_error _loc__p_  Paren _loc__e_ )
# 45916 "parsing/parser.ml"
          
        in
        
# 2502 "parsing/parser.mly"
                                  ( _1 )
# 45922 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _e;
          MenhirLib.EngineTypes.startp = _startpos__e_;
          MenhirLib.EngineTypes.endp = _endpos__e_;
          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 = _p;
              MenhirLib.EngineTypes.startp = _startpos__p_;
              MenhirLib.EngineTypes.endp = _endpos__p_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _e : unit = Obj.magic _e in
        let _4 : (Parsetree.expression) = Obj.magic _4 in
        let _p : unit = Obj.magic _p in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__e_ in
        let _v : (Parsetree.expression) = let _1 =
          let _loc__p_ = (_startpos__p_, _endpos__p_) in
          let _loc__e_ = (_startpos__e_, _endpos__e_) in
          
# 2390 "parsing/parser.mly"
    ( indexop_unclosed_error _loc__p_ Brace _loc__e_ )
# 45978 "parsing/parser.ml"
          
        in
        
# 2502 "parsing/parser.mly"
                                  ( _1 )
# 45984 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _e;
          MenhirLib.EngineTypes.startp = _startpos__e_;
          MenhirLib.EngineTypes.endp = _endpos__e_;
          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 = _p;
              MenhirLib.EngineTypes.startp = _startpos__p_;
              MenhirLib.EngineTypes.endp = _endpos__p_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _e : unit = Obj.magic _e in
        let _4 : (Parsetree.expression) = Obj.magic _4 in
        let _p : unit = Obj.magic _p in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__e_ in
        let _v : (Parsetree.expression) = let _1 =
          let _loc__p_ = (_startpos__p_, _endpos__p_) in
          let _loc__e_ = (_startpos__e_, _endpos__e_) in
          
# 2392 "parsing/parser.mly"
    ( indexop_unclosed_error _loc__p_ Bracket _loc__e_ )
# 46040 "parsing/parser.ml"
          
        in
        
# 2502 "parsing/parser.mly"
                                  ( _1 )
# 46046 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _e;
          MenhirLib.EngineTypes.startp = _startpos__e_;
          MenhirLib.EngineTypes.endp = _endpos__e_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _p;
              MenhirLib.EngineTypes.startp = _startpos__p_;
              MenhirLib.EngineTypes.endp = _endpos__p_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _e : unit = Obj.magic _e in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _p : unit = Obj.magic _p in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 46094 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__e_ in
        let _v : (Parsetree.expression) = let _1 =
          let _4 = 
# 2831 "parsing/parser.mly"
    ( es )
# 46104 "parsing/parser.ml"
           in
          let _2 =
            let _1 = 
# 124 "<standard.mly>"
    ( None )
# 46110 "parsing/parser.ml"
             in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 46115 "parsing/parser.ml"
            
          in
          let _loc__p_ = (_startpos__p_, _endpos__p_) in
          let _loc__e_ = (_startpos__e_, _endpos__e_) in
          
# 2388 "parsing/parser.mly"
    ( indexop_unclosed_error _loc__p_  Paren _loc__e_ )
# 46123 "parsing/parser.ml"
          
        in
        
# 2503 "parsing/parser.mly"
                                                    ( _1 )
# 46129 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _e;
          MenhirLib.EngineTypes.startp = _startpos__e_;
          MenhirLib.EngineTypes.endp = _endpos__e_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _p;
              MenhirLib.EngineTypes.startp = _startpos__p_;
              MenhirLib.EngineTypes.endp = _endpos__p_;
              MenhirLib.EngineTypes.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 = _;
                    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 _e : unit = Obj.magic _e in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _p : unit = Obj.magic _p in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 46189 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__e_ in
        let _v : (Parsetree.expression) = let _1 =
          let _4 = 
# 2831 "parsing/parser.mly"
    ( es )
# 46201 "parsing/parser.ml"
           in
          let _2 =
            let _1 =
              let _2 = _2_inlined1 in
              let x = 
# 2395 "parsing/parser.mly"
                                                   (_2)
# 46209 "parsing/parser.ml"
               in
              
# 126 "<standard.mly>"
    ( Some x )
# 46214 "parsing/parser.ml"
              
            in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 46220 "parsing/parser.ml"
            
          in
          let _loc__p_ = (_startpos__p_, _endpos__p_) in
          let _loc__e_ = (_startpos__e_, _endpos__e_) in
          
# 2388 "parsing/parser.mly"
    ( indexop_unclosed_error _loc__p_  Paren _loc__e_ )
# 46228 "parsing/parser.ml"
          
        in
        
# 2503 "parsing/parser.mly"
                                                    ( _1 )
# 46234 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _e;
          MenhirLib.EngineTypes.startp = _startpos__e_;
          MenhirLib.EngineTypes.endp = _endpos__e_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _p;
              MenhirLib.EngineTypes.startp = _startpos__p_;
              MenhirLib.EngineTypes.endp = _endpos__p_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _e : unit = Obj.magic _e in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _p : unit = Obj.magic _p in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 46282 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__e_ in
        let _v : (Parsetree.expression) = let _1 =
          let _4 = 
# 2831 "parsing/parser.mly"
    ( es )
# 46292 "parsing/parser.ml"
           in
          let _2 =
            let _1 = 
# 124 "<standard.mly>"
    ( None )
# 46298 "parsing/parser.ml"
             in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 46303 "parsing/parser.ml"
            
          in
          let _loc__p_ = (_startpos__p_, _endpos__p_) in
          let _loc__e_ = (_startpos__e_, _endpos__e_) in
          
# 2390 "parsing/parser.mly"
    ( indexop_unclosed_error _loc__p_ Brace _loc__e_ )
# 46311 "parsing/parser.ml"
          
        in
        
# 2503 "parsing/parser.mly"
                                                    ( _1 )
# 46317 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _e;
          MenhirLib.EngineTypes.startp = _startpos__e_;
          MenhirLib.EngineTypes.endp = _endpos__e_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _p;
              MenhirLib.EngineTypes.startp = _startpos__p_;
              MenhirLib.EngineTypes.endp = _endpos__p_;
              MenhirLib.EngineTypes.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 = _;
                    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 _e : unit = Obj.magic _e in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _p : unit = Obj.magic _p in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 46377 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__e_ in
        let _v : (Parsetree.expression) = let _1 =
          let _4 = 
# 2831 "parsing/parser.mly"
    ( es )
# 46389 "parsing/parser.ml"
           in
          let _2 =
            let _1 =
              let _2 = _2_inlined1 in
              let x = 
# 2395 "parsing/parser.mly"
                                                   (_2)
# 46397 "parsing/parser.ml"
               in
              
# 126 "<standard.mly>"
    ( Some x )
# 46402 "parsing/parser.ml"
              
            in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 46408 "parsing/parser.ml"
            
          in
          let _loc__p_ = (_startpos__p_, _endpos__p_) in
          let _loc__e_ = (_startpos__e_, _endpos__e_) in
          
# 2390 "parsing/parser.mly"
    ( indexop_unclosed_error _loc__p_ Brace _loc__e_ )
# 46416 "parsing/parser.ml"
          
        in
        
# 2503 "parsing/parser.mly"
                                                    ( _1 )
# 46422 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _e;
          MenhirLib.EngineTypes.startp = _startpos__e_;
          MenhirLib.EngineTypes.endp = _endpos__e_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _p;
              MenhirLib.EngineTypes.startp = _startpos__p_;
              MenhirLib.EngineTypes.endp = _endpos__p_;
              MenhirLib.EngineTypes.next = {
                MenhirLib.EngineTypes.state = _;
                MenhirLib.EngineTypes.semv = _2;
                MenhirLib.EngineTypes.startp = _startpos__2_;
                MenhirLib.EngineTypes.endp = _endpos__2_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let _e : unit = Obj.magic _e in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _p : unit = Obj.magic _p in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 46470 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__e_ in
        let _v : (Parsetree.expression) = let _1 =
          let _4 = 
# 2831 "parsing/parser.mly"
    ( es )
# 46480 "parsing/parser.ml"
           in
          let _2 =
            let _1 = 
# 124 "<standard.mly>"
    ( None )
# 46486 "parsing/parser.ml"
             in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 46491 "parsing/parser.ml"
            
          in
          let _loc__p_ = (_startpos__p_, _endpos__p_) in
          let _loc__e_ = (_startpos__e_, _endpos__e_) in
          
# 2392 "parsing/parser.mly"
    ( indexop_unclosed_error _loc__p_ Bracket _loc__e_ )
# 46499 "parsing/parser.ml"
          
        in
        
# 2503 "parsing/parser.mly"
                                                    ( _1 )
# 46505 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = _e;
          MenhirLib.EngineTypes.startp = _startpos__e_;
          MenhirLib.EngineTypes.endp = _endpos__e_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _;
              MenhirLib.EngineTypes.semv = _p;
              MenhirLib.EngineTypes.startp = _startpos__p_;
              MenhirLib.EngineTypes.endp = _endpos__p_;
              MenhirLib.EngineTypes.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 = _;
                    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 _e : unit = Obj.magic _e in
        let es : (Parsetree.expression list) = Obj.magic es in
        let _p : unit = Obj.magic _p in
        let _2 : (
# 759 "parsing/parser.mly"
       (string)
# 46565 "parsing/parser.ml"
        ) = Obj.magic _2 in
        let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _1 : (Parsetree.expression) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__e_ in
        let _v : (Parsetree.expression) = let _1 =
          let _4 = 
# 2831 "parsing/parser.mly"
    ( es )
# 46577 "parsing/parser.ml"
           in
          let _2 =
            let _1 =
              let _2 = _2_inlined1 in
              let x = 
# 2395 "parsing/parser.mly"
                                                   (_2)
# 46585 "parsing/parser.ml"
               in
              
# 126 "<standard.mly>"
    ( Some x )
# 46590 "parsing/parser.ml"
              
            in
            
# 2395 "parsing/parser.mly"
                                                               ( _1, _2 )
# 46596 "parsing/parser.ml"
            
          in
          let _loc__p_ = (_startpos__p_, _endpos__p_) in
          let _loc__e_ = (_startpos__e_, _endpos__e_) in
          
# 2392 "parsing/parser.mly"
    ( indexop_unclosed_error _loc__p_ Bracket _loc__e_ )
# 46604 "parsing/parser.ml"
          
        in
        
# 2503 "parsing/parser.mly"
                                                    ( _1 )
# 46610 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = e;
            MenhirLib.EngineTypes.startp = _startpos_e_;
            MenhirLib.EngineTypes.endp = _endpos_e_;
            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 = ext;
                MenhirLib.EngineTypes.startp = _startpos_ext_;
                MenhirLib.EngineTypes.endp = _endpos_ext_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_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 e : (Parsetree.expression) = Obj.magic e in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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 : (Parsetree.expression) = let _1 =
          let attrs =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 46666 "parsing/parser.ml"
            
          in
          
# 2512 "parsing/parser.mly"
      ( e.pexp_desc, (ext, attrs @ e.pexp_attributes) )
# 46672 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__5_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2505 "parsing/parser.mly"
    ( let desc, attrs = _1 in
      mkexp_attrs ~loc:_sloc desc attrs )
# 46683 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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 : (Parsetree.expression) = let _1 =
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 46734 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 46740 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__3_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2514 "parsing/parser.mly"
      ( Pexp_construct (mkloc (Lident "()") (make_loc _sloc), None), _2 )
# 46749 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__3_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2505 "parsing/parser.mly"
    ( let desc, attrs = _1 in
      mkexp_attrs ~loc:_sloc desc attrs )
# 46760 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_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 : unit = Obj.magic _4 in
        let _3 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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 : (Parsetree.expression) = let _1 =
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 46818 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 46824 "parsing/parser.ml"
            
          in
          let _loc__4_ = (_startpos__4_, _endpos__4_) in
          let _loc__1_ = (_startpos__1_, _endpos__1_) in
          
# 2516 "parsing/parser.mly"
      ( unclosed "begin" _loc__1_ "end" _loc__4_ )
# 46832 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__4_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2505 "parsing/parser.mly"
    ( let desc, attrs = _1 in
      mkexp_attrs ~loc:_sloc desc attrs )
# 46843 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          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 _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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_inlined3_ in
        let _v : (Parsetree.expression) = let _1 =
          let _3 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 46895 "parsing/parser.ml"
            
          in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 46905 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 46911 "parsing/parser.ml"
            
          in
          
# 2518 "parsing/parser.mly"
      ( Pexp_new(_3), _2 )
# 46917 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__1_inlined3_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2505 "parsing/parser.mly"
    ( let desc, attrs = _1 in
      mkexp_attrs ~loc:_sloc desc attrs )
# 46928 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 : unit = Obj.magic _5 in
        let _4 : (Parsetree.module_expr) = Obj.magic _4 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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__5_ in
        let _v : (Parsetree.expression) = let _1 =
          let _3 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 46993 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 46999 "parsing/parser.ml"
            
          in
          
# 2520 "parsing/parser.mly"
      ( Pexp_pack _4, _3 )
# 47005 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__5_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2505 "parsing/parser.mly"
    ( let desc, attrs = _1 in
      mkexp_attrs ~loc:_sloc desc attrs )
# 47016 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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_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 _7 : unit = Obj.magic _7 in
        let _1_inlined3 : (Parsetree.module_type) = Obj.magic _1_inlined3 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Parsetree.module_expr) = Obj.magic _4 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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__7_ in
        let _v : (Parsetree.expression) = let _1 =
          let _6 =
            let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 3646 "parsing/parser.mly"
      ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
        let descr = Ptyp_package (lid, cstrs) in
        mktyp ~loc:_sloc ~attrs descr )
# 47098 "parsing/parser.ml"
            
          in
          let _3 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 47108 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 47114 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__7_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 2522 "parsing/parser.mly"
      ( Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _4), _6), _3 )
# 47123 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__7_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2505 "parsing/parser.mly"
    ( let desc, attrs = _1 in
      mkexp_attrs ~loc:_sloc desc attrs )
# 47134 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_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 _6 : unit = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (Parsetree.module_expr) = Obj.magic _4 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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__6_ in
        let _v : (Parsetree.expression) = let _1 =
          let _3 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 47206 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 47212 "parsing/parser.ml"
            
          in
          let _loc__6_ = (_startpos__6_, _endpos__6_) in
          let _loc__1_ = (_startpos__1_, _endpos__1_) in
          
# 2524 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__6_ )
# 47220 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__6_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2505 "parsing/parser.mly"
    ( let desc, attrs = _1 in
      mkexp_attrs ~loc:_sloc desc attrs )
# 47231 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xss;
            MenhirLib.EngineTypes.startp = _startpos_xss_;
            MenhirLib.EngineTypes.endp = _endpos_xss_;
            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 = _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 : unit = Obj.magic _4 in
        let xss : (Parsetree.class_field list list) = Obj.magic xss in
        let _1_inlined3 : (Parsetree.pattern) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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 : (Parsetree.expression) = let _1 =
          let _3 =
            let _1 = _1_inlined3 in
            let _2 =
              let _1 =
                let _1 = 
# 260 "<standard.mly>"
    ( List.flatten xss )
# 47296 "parsing/parser.ml"
                 in
                
# 2034 "parsing/parser.mly"
    ( _1 )
# 47301 "parsing/parser.ml"
                
              in
              let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
              let _endpos = _endpos__1_ in
              let _startpos = _startpos__1_ in
              
# 954 "parsing/parser.mly"
                               ( extra_cstr _startpos _endpos _1 )
# 47310 "parsing/parser.ml"
              
            in
            
# 2021 "parsing/parser.mly"
       ( Cstr.mk _1 _2 )
# 47316 "parsing/parser.ml"
            
          in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 47326 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 47332 "parsing/parser.ml"
            
          in
          
# 2526 "parsing/parser.mly"
      ( Pexp_object _3, _2 )
# 47338 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__4_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2505 "parsing/parser.mly"
    ( let desc, attrs = _1 in
      mkexp_attrs ~loc:_sloc desc attrs )
# 47349 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xss;
            MenhirLib.EngineTypes.startp = _startpos_xss_;
            MenhirLib.EngineTypes.endp = _endpos_xss_;
            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 = _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 : unit = Obj.magic _4 in
        let xss : (Parsetree.class_field list list) = Obj.magic xss in
        let _1_inlined3 : (Parsetree.pattern) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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 : (Parsetree.expression) = let _1 =
          let _3 =
            let _1 = _1_inlined3 in
            let _2 =
              let _1 =
                let _1 = 
# 260 "<standard.mly>"
    ( List.flatten xss )
# 47414 "parsing/parser.ml"
                 in
                
# 2034 "parsing/parser.mly"
    ( _1 )
# 47419 "parsing/parser.ml"
                
              in
              let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
              let _endpos = _endpos__1_ in
              let _startpos = _startpos__1_ in
              
# 954 "parsing/parser.mly"
                               ( extra_cstr _startpos _endpos _1 )
# 47428 "parsing/parser.ml"
              
            in
            
# 2021 "parsing/parser.mly"
       ( Cstr.mk _1 _2 )
# 47434 "parsing/parser.ml"
            
          in
          let _2 =
            let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
            let _2 =
              let _1 = _1_inlined1 in
              
# 4062 "parsing/parser.mly"
    ( _1 )
# 47444 "parsing/parser.ml"
              
            in
            
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 47450 "parsing/parser.ml"
            
          in
          let _loc__4_ = (_startpos__4_, _endpos__4_) in
          let _loc__1_ = (_startpos__1_, _endpos__1_) in
          
# 2528 "parsing/parser.mly"
      ( unclosed "object" _loc__1_ "end" _loc__4_ )
# 47458 "parsing/parser.ml"
          
        in
        let _endpos__1_ = _endpos__4_ in
        let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2505 "parsing/parser.mly"
    ( let desc, attrs = _1 in
      mkexp_attrs ~loc:_sloc desc attrs )
# 47469 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let _1 =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 47500 "parsing/parser.ml"
              
            in
            
# 2532 "parsing/parser.mly"
      ( Pexp_ident (_1) )
# 47506 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 47515 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 47521 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.expression) = let _1 =
          let _1 = 
# 2534 "parsing/parser.mly"
      ( Pexp_constant _1 )
# 47547 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 47555 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 47561 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let _1 =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 47592 "parsing/parser.ml"
              
            in
            
# 2536 "parsing/parser.mly"
      ( Pexp_construct(_1, None) )
# 47598 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 47607 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 47613 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Asttypes.label) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 = 
# 2538 "parsing/parser.mly"
      ( Pexp_variant(_1, None) )
# 47639 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 47647 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 47653 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _2 in
        let _1 : (
# 802 "parsing/parser.mly"
       (string)
# 47681 "parsing/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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _1 =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 47695 "parsing/parser.ml"
              
            in
            
# 2540 "parsing/parser.mly"
      ( Pexp_apply(_1, [Nolabel,_2]) )
# 47701 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 47711 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 47717 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _1 =
              let _1 = 
# 2541 "parsing/parser.mly"
            ("!")
# 47752 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 47760 "parsing/parser.ml"
              
            in
            
# 2542 "parsing/parser.mly"
      ( Pexp_apply(_1, [Nolabel,_2]) )
# 47766 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 47776 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 47782 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = 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 _3 : unit = Obj.magic _3 in
        let xs : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = Obj.magic xs in
        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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _2 = 
# 2814 "parsing/parser.mly"
    ( xs )
# 47823 "parsing/parser.ml"
             in
            
# 2544 "parsing/parser.mly"
      ( Pexp_override _2 )
# 47828 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 47838 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 47844 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = 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 _3 : unit = Obj.magic _3 in
        let xs : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = Obj.magic xs in
        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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _2 = 
# 2814 "parsing/parser.mly"
    ( xs )
# 47885 "parsing/parser.ml"
             in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2546 "parsing/parser.mly"
      ( unclosed "{<" _loc__1_ ">}" _loc__3_ )
# 47892 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 47902 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 47908 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = let _1 =
          let _1 = 
# 2548 "parsing/parser.mly"
      ( Pexp_override [] )
# 47941 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 47950 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 47956 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Longident.t) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _3 =
              let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 48002 "parsing/parser.ml"
              
            in
            
# 2550 "parsing/parser.mly"
      ( Pexp_field(_1, _3) )
# 48008 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 48018 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 48024 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let od =
              let _1 =
                let _endpos = _endpos__1_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 48084 "parsing/parser.ml"
                
              in
              let _loc__1_ = (_startpos__1_, _endpos__1_) in
              
# 1680 "parsing/parser.mly"
  ( let loc = make_loc _loc__1_ in
    let me = Mod.ident ~loc _1 in
    Opn.mk ~loc me )
# 48093 "parsing/parser.ml"
              
            in
            
# 2552 "parsing/parser.mly"
      ( Pexp_open(od, _4) )
# 48099 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 48109 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 48115 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = 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 _5 : unit = Obj.magic _5 in
        let xs : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = Obj.magic xs in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _4 = 
# 2814 "parsing/parser.mly"
    ( xs )
# 48170 "parsing/parser.ml"
             in
            let od =
              let _1 =
                let _endpos = _endpos__1_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 48180 "parsing/parser.ml"
                
              in
              let _loc__1_ = (_startpos__1_, _endpos__1_) in
              
# 1680 "parsing/parser.mly"
  ( let loc = make_loc _loc__1_ in
    let me = Mod.ident ~loc _1 in
    Opn.mk ~loc me )
# 48189 "parsing/parser.ml"
              
            in
            let _startpos_od_ = _startpos__1_ in
            let _endpos = _endpos__5_ in
            let _symbolstartpos = _startpos_od_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2554 "parsing/parser.mly"
      ( (* TODO: review the location of Pexp_override *)
        Pexp_open(od, mkexp ~loc:_sloc (Pexp_override _4)) )
# 48200 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 48210 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 48216 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = 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 _5 : unit = Obj.magic _5 in
        let xs : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = Obj.magic xs in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _4 = 
# 2814 "parsing/parser.mly"
    ( xs )
# 48271 "parsing/parser.ml"
             in
            let _loc__5_ = (_startpos__5_, _endpos__5_) in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            
# 2557 "parsing/parser.mly"
      ( unclosed "{<" _loc__3_ ">}" _loc__5_ )
# 48278 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 48288 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 48294 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (
# 778 "parsing/parser.mly"
       (string)
# 48327 "parsing/parser.ml"
        ) = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _3 =
              let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
              let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 48341 "parsing/parser.ml"
               in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 48349 "parsing/parser.ml"
              
            in
            
# 2559 "parsing/parser.mly"
      ( Pexp_send(_1, _3) )
# 48355 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 48365 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 48371 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.expression) = Obj.magic _3 in
        let _1_inlined1 : (
# 813 "parsing/parser.mly"
       (string)
# 48405 "parsing/parser.ml"
        ) = Obj.magic _1_inlined1 in
        let _1 : (Parsetree.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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _2 =
              let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 987 "parsing/parser.mly"
   ( mkoperator ~loc:_sloc _1 )
# 48421 "parsing/parser.ml"
              
            in
            
# 2561 "parsing/parser.mly"
      ( mkinfix _1 _2 _3 )
# 48427 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 48437 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 48443 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (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 : (Parsetree.expression) = let _1 =
          let _1 = 
# 2563 "parsing/parser.mly"
      ( Pexp_extension _1 )
# 48469 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 48477 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 48483 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : unit = Obj.magic _2_inlined1 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _3 =
              let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in
              let _1 = 
# 2564 "parsing/parser.mly"
                                                    (Lident "()")
# 48533 "parsing/parser.ml"
               in
              let _endpos__1_ = _endpos__2_ in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 48542 "parsing/parser.ml"
              
            in
            let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in
            let od =
              let _1 =
                let _endpos = _endpos__1_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 48554 "parsing/parser.ml"
                
              in
              let _loc__1_ = (_startpos__1_, _endpos__1_) in
              
# 1680 "parsing/parser.mly"
  ( let loc = make_loc _loc__1_ in
    let me = Mod.ident ~loc _1 in
    Opn.mk ~loc me )
# 48563 "parsing/parser.ml"
              
            in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            
# 2565 "parsing/parser.mly"
      ( Pexp_open(od, mkexp ~loc:(_loc__3_) (Pexp_construct(_3, None))) )
# 48570 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__2_inlined1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 48580 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 48586 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _loc__5_ = (_startpos__5_, _endpos__5_) in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            
# 2567 "parsing/parser.mly"
      ( unclosed "(" _loc__3_ ")" _loc__5_ )
# 48643 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 48653 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 48659 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.expression option *
  (Longident.t Asttypes.loc * Parsetree.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 : (Parsetree.expression) = let _1 =
          let _1 = 
# 2569 "parsing/parser.mly"
      ( let (exten, fields) = _2 in
        Pexp_record(fields, exten) )
# 48701 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 48710 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 48716 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.expression option *
  (Longident.t Asttypes.loc * Parsetree.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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2572 "parsing/parser.mly"
      ( unclosed "{" _loc__1_ "}" _loc__3_ )
# 48760 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 48770 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 48776 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression option *
  (Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let od =
              let _1 =
                let _endpos = _endpos__1_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 48837 "parsing/parser.ml"
                
              in
              let _loc__1_ = (_startpos__1_, _endpos__1_) in
              
# 1680 "parsing/parser.mly"
  ( let loc = make_loc _loc__1_ in
    let me = Mod.ident ~loc _1 in
    Opn.mk ~loc me )
# 48846 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__5_ in
            
# 2574 "parsing/parser.mly"
      ( let (exten, fields) = _4 in
        Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos)
                        (Pexp_record(fields, exten))) )
# 48855 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 48865 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 48871 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression option *
  (Longident.t Asttypes.loc * Parsetree.expression) list) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _loc__5_ = (_startpos__5_, _endpos__5_) in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            
# 2578 "parsing/parser.mly"
      ( unclosed "{" _loc__3_ "}" _loc__5_ )
# 48929 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 48939 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 48945 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_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 es : (Parsetree.expression list) = Obj.magic es in
        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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _2 = 
# 2831 "parsing/parser.mly"
    ( es )
# 48986 "parsing/parser.ml"
             in
            
# 2580 "parsing/parser.mly"
      ( Pexp_array(_2) )
# 48991 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 49001 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 49007 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_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 es : (Parsetree.expression list) = Obj.magic es in
        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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _2 = 
# 2831 "parsing/parser.mly"
    ( es )
# 49048 "parsing/parser.ml"
             in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2582 "parsing/parser.mly"
      ( unclosed "[|" _loc__1_ "|]" _loc__3_ )
# 49055 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 49065 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 49071 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.expression) = let _1 =
          let _1 = 
# 2584 "parsing/parser.mly"
      ( Pexp_array [] )
# 49104 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 49113 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 49119 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            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 es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _4 = 
# 2831 "parsing/parser.mly"
    ( es )
# 49174 "parsing/parser.ml"
             in
            let od =
              let _1 =
                let _endpos = _endpos__1_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 49184 "parsing/parser.ml"
                
              in
              let _loc__1_ = (_startpos__1_, _endpos__1_) in
              
# 1680 "parsing/parser.mly"
  ( let loc = make_loc _loc__1_ in
    let me = Mod.ident ~loc _1 in
    Opn.mk ~loc me )
# 49193 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__5_ in
            
# 2586 "parsing/parser.mly"
      ( Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos) (Pexp_array(_4))) )
# 49200 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 49210 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 49216 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let od =
              let _1 =
                let _endpos = _endpos__1_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 49269 "parsing/parser.ml"
                
              in
              let _loc__1_ = (_startpos__1_, _endpos__1_) in
              
# 1680 "parsing/parser.mly"
  ( let loc = make_loc _loc__1_ in
    let me = Mod.ident ~loc _1 in
    Opn.mk ~loc me )
# 49278 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__4_ in
            
# 2588 "parsing/parser.mly"
      ( (* TODO: review the location of Pexp_array *)
        Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos) (Pexp_array [])) )
# 49286 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__4_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 49296 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 49302 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            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 es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _4 = 
# 2831 "parsing/parser.mly"
    ( es )
# 49357 "parsing/parser.ml"
             in
            let _loc__5_ = (_startpos__5_, _endpos__5_) in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            
# 2592 "parsing/parser.mly"
      ( unclosed "[|" _loc__3_ "|]" _loc__5_ )
# 49364 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 49374 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 49380 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_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 es : (Parsetree.expression list) = Obj.magic es in
        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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _2 = 
# 2831 "parsing/parser.mly"
    ( es )
# 49421 "parsing/parser.ml"
             in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            
# 2594 "parsing/parser.mly"
      ( fst (mktailexp _loc__3_ _2) )
# 49427 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 49437 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 49443 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_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 es : (Parsetree.expression list) = Obj.magic es in
        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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _2 = 
# 2831 "parsing/parser.mly"
    ( es )
# 49484 "parsing/parser.ml"
             in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2596 "parsing/parser.mly"
      ( unclosed "[" _loc__1_ "]" _loc__3_ )
# 49491 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 49501 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 49507 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            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 es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _4 = 
# 2831 "parsing/parser.mly"
    ( es )
# 49562 "parsing/parser.ml"
             in
            let od =
              let _1 =
                let _endpos = _endpos__1_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 49572 "parsing/parser.ml"
                
              in
              let _loc__1_ = (_startpos__1_, _endpos__1_) in
              
# 1680 "parsing/parser.mly"
  ( let loc = make_loc _loc__1_ in
    let me = Mod.ident ~loc _1 in
    Opn.mk ~loc me )
# 49581 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__5_ in
            let _loc__5_ = (_startpos__5_, _endpos__5_) in
            
# 2598 "parsing/parser.mly"
      ( let list_exp =
          (* TODO: review the location of list_exp *)
          let tail_exp, _tail_loc = mktailexp _loc__5_ _4 in
          mkexp ~loc:(_startpos__3_, _endpos) tail_exp in
        Pexp_open(od, list_exp) )
# 49593 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 49603 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 49609 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : unit = Obj.magic _2_inlined1 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _3 =
              let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in
              let _1 = 
# 2603 "parsing/parser.mly"
                                                        (Lident "[]")
# 49659 "parsing/parser.ml"
               in
              let _endpos__1_ = _endpos__2_ in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 49668 "parsing/parser.ml"
              
            in
            let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in
            let od =
              let _1 =
                let _endpos = _endpos__1_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 49680 "parsing/parser.ml"
                
              in
              let _loc__1_ = (_startpos__1_, _endpos__1_) in
              
# 1680 "parsing/parser.mly"
  ( let loc = make_loc _loc__1_ in
    let me = Mod.ident ~loc _1 in
    Opn.mk ~loc me )
# 49689 "parsing/parser.ml"
              
            in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            
# 2604 "parsing/parser.mly"
      ( Pexp_open(od, mkexp ~loc:_loc__3_ (Pexp_construct(_3, None))) )
# 49696 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__2_inlined1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 49706 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 49712 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = es;
            MenhirLib.EngineTypes.startp = _startpos_es_;
            MenhirLib.EngineTypes.endp = _endpos_es_;
            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 es : (Parsetree.expression list) = Obj.magic es in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _4 = 
# 2831 "parsing/parser.mly"
    ( es )
# 49767 "parsing/parser.ml"
             in
            let _loc__5_ = (_startpos__5_, _endpos__5_) in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            
# 2607 "parsing/parser.mly"
      ( unclosed "[" _loc__3_ "]" _loc__5_ )
# 49774 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 49784 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 49790 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 = _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 = _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 _9 : unit = Obj.magic _9 in
        let _1_inlined3 : (Parsetree.module_type) = Obj.magic _1_inlined3 in
        let _7 : unit = Obj.magic _7 in
        let _6 : (Parsetree.module_expr) = Obj.magic _6 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__9_ in
        let _v : (Parsetree.expression) = let _1 =
          let _1 =
            let _8 =
              let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 3646 "parsing/parser.mly"
      ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
        let descr = Ptyp_package (lid, cstrs) in
        mktyp ~loc:_sloc ~attrs descr )
# 49887 "parsing/parser.ml"
              
            in
            let _5 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 49897 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 49903 "parsing/parser.ml"
              
            in
            let od =
              let _1 =
                let _endpos = _endpos__1_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 49914 "parsing/parser.ml"
                
              in
              let _loc__1_ = (_startpos__1_, _endpos__1_) in
              
# 1680 "parsing/parser.mly"
  ( let loc = make_loc _loc__1_ in
    let me = Mod.ident ~loc _1 in
    Opn.mk ~loc me )
# 49923 "parsing/parser.ml"
              
            in
            let _startpos_od_ = _startpos__1_ in
            let _endpos = _endpos__9_ in
            let _symbolstartpos = _startpos_od_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2610 "parsing/parser.mly"
      ( let modexp =
          mkexp_attrs ~loc:(_startpos__3_, _endpos)
            (Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _6), _8)) _5 in
        Pexp_open(od, modexp) )
# 49936 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__9_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 49946 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 49952 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 = _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 : unit = Obj.magic _7 in
        let _6 : (Parsetree.module_expr) = Obj.magic _6 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in
        let _4 : unit = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.expression) = let _1 =
          let _1 =
            let _5 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 50039 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 50045 "parsing/parser.ml"
              
            in
            let _loc__8_ = (_startpos__8_, _endpos__8_) in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            
# 2616 "parsing/parser.mly"
      ( unclosed "(" _loc__3_ ")" _loc__8_ )
# 50053 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__8_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 993 "parsing/parser.mly"
    ( mkexp ~loc:_sloc _1 )
# 50063 "parsing/parser.ml"
          
        in
        
# 2508 "parsing/parser.mly"
      ( _1 )
# 50069 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Asttypes.label) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 50100 "parsing/parser.ml"
              
            in
            
# 2914 "parsing/parser.mly"
      ( Ppat_var (_1) )
# 50106 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 50115 "parsing/parser.ml"
          
        in
        
# 2915 "parsing/parser.mly"
      ( _1 )
# 50121 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = 
# 2916 "parsing/parser.mly"
                             ( _1 )
# 50146 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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__3_ in
        let _v : (Parsetree.pattern) = let _endpos = _endpos__3_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2921 "parsing/parser.mly"
      ( reloc_pat ~loc:_sloc _2 )
# 50188 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = 
# 2923 "parsing/parser.mly"
      ( _1 )
# 50213 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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 _5 : unit = Obj.magic _5 in
        let _1_inlined3 : (string option) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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__5_ in
        let _v : (Parsetree.pattern) = let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 50278 "parsing/parser.ml"
          
        in
        let _3 =
          let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
          let _2 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 50288 "parsing/parser.ml"
            
          in
          
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 50294 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2925 "parsing/parser.mly"
      ( mkpat_attrs ~loc:_sloc (Ppat_unpack _4) _3 )
# 50303 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined4;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined4_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined4_;
            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_inlined3;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
                MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
                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 _7 : unit = Obj.magic _7 in
        let _1_inlined4 : (Parsetree.module_type) = Obj.magic _1_inlined4 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined3 : (string option) = Obj.magic _1_inlined3 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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__7_ in
        let _v : (Parsetree.pattern) = let _6 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined4_, _startpos__1_inlined4_, _1_inlined4) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 3646 "parsing/parser.mly"
      ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
        let descr = Ptyp_package (lid, cstrs) in
        mktyp ~loc:_sloc ~attrs descr )
# 50384 "parsing/parser.ml"
          
        in
        let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 50395 "parsing/parser.ml"
          
        in
        let (_endpos__4_, _startpos__4_) = (_endpos__1_inlined3_, _startpos__1_inlined3_) in
        let _3 =
          let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
          let _2 =
            let _1 = _1_inlined1 in
            
# 4062 "parsing/parser.mly"
    ( _1 )
# 50406 "parsing/parser.ml"
            
          in
          
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 50412 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__7_ in
        let _symbolstartpos = _startpos__1_ in
        let _loc__4_ = (_startpos__4_, _endpos__4_) in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2927 "parsing/parser.mly"
      ( mkpat_attrs ~loc:_sloc
          (Ppat_constraint(mkpat ~loc:_loc__4_ (Ppat_unpack _4), _6))
          _3 )
# 50424 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Parsetree.pattern) = let _1 =
          let _1 = 
# 2935 "parsing/parser.mly"
      ( Ppat_any )
# 50450 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 50458 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 50464 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = let _1 =
          let _1 = 
# 2937 "parsing/parser.mly"
      ( Ppat_constant _1 )
# 50490 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 50498 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 50504 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.constant) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.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 : (Parsetree.pattern) = let _1 =
          let _1 = 
# 2939 "parsing/parser.mly"
      ( Ppat_interval (_1, _3) )
# 50544 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 50553 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 50559 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 50590 "parsing/parser.ml"
              
            in
            
# 2941 "parsing/parser.mly"
      ( Ppat_construct(_1, None) )
# 50596 "parsing/parser.ml"
            
          in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 50605 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 50611 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Asttypes.label) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.pattern) = let _1 =
          let _1 = 
# 2943 "parsing/parser.mly"
      ( Ppat_variant(_1, None) )
# 50637 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 50645 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 50651 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Longident.t) = 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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _2 =
              let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 50690 "parsing/parser.ml"
              
            in
            
# 2945 "parsing/parser.mly"
      ( Ppat_type (_2) )
# 50696 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 50706 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 50712 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.pattern) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 50757 "parsing/parser.ml"
              
            in
            
# 2947 "parsing/parser.mly"
      ( Ppat_open(_1, _3) )
# 50763 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 50773 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 50779 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : unit = Obj.magic _2_inlined1 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _3 =
              let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in
              let _1 = 
# 2948 "parsing/parser.mly"
                                                     (Lident "[]")
# 50829 "parsing/parser.ml"
               in
              let _endpos__1_ = _endpos__2_ in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 50838 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos__2_inlined1_ in
            let _1 =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 50849 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2949 "parsing/parser.mly"
    ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) )
# 50858 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__2_inlined1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 50868 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 50874 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : unit = Obj.magic _2_inlined1 in
        let _1_inlined1 : unit = Obj.magic _1_inlined1 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _3 =
              let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in
              let _1 = 
# 2950 "parsing/parser.mly"
                                                 (Lident "()")
# 50924 "parsing/parser.ml"
               in
              let _endpos__1_ = _endpos__2_ in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 50933 "parsing/parser.ml"
              
            in
            let _endpos__3_ = _endpos__2_inlined1_ in
            let _1 =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 50944 "parsing/parser.ml"
              
            in
            let _endpos = _endpos__3_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 2951 "parsing/parser.mly"
    ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) )
# 50953 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__2_inlined1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 50963 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 50969 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.pattern) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _1 =
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 51028 "parsing/parser.ml"
              
            in
            
# 2953 "parsing/parser.mly"
      ( Ppat_open (_1, _4) )
# 51034 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 51044 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 51050 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.pattern) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _loc__5_ = (_startpos__5_, _endpos__5_) in
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            
# 2955 "parsing/parser.mly"
      ( unclosed "(" _loc__3_ ")" _loc__5_  )
# 51107 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 51117 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 51123 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : unit = Obj.magic _2 in
        let _1 : (Longident.t) = 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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _loc__4_ = (_startpos__4_, _endpos__4_) in
            
# 2957 "parsing/parser.mly"
      ( expecting _loc__4_ "pattern" )
# 51172 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__4_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 51182 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 51188 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Parsetree.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__3_ in
        let _v : (Parsetree.pattern) = let _1 =
          let _1 =
            let _loc__3_ = (_startpos__3_, _endpos__3_) in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2959 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__3_ )
# 51231 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 51241 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 51247 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Parsetree.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__5_ in
        let _v : (Parsetree.pattern) = let _1 =
          let _1 = 
# 2961 "parsing/parser.mly"
      ( Ppat_constraint(_2, _4) )
# 51301 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 51310 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 51316 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Parsetree.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__5_ in
        let _v : (Parsetree.pattern) = let _1 =
          let _1 =
            let _loc__5_ = (_startpos__5_, _endpos__5_) in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2963 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__5_ )
# 51373 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__5_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 51383 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 51389 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.pattern) = let _1 =
          let _1 =
            let _loc__4_ = (_startpos__4_, _endpos__4_) in
            
# 2965 "parsing/parser.mly"
      ( expecting _loc__4_ "type" )
# 51438 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__4_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 51448 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 51454 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined3;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
            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_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 _7 : unit = Obj.magic _7 in
        let _1_inlined3 : (Parsetree.module_type) = Obj.magic _1_inlined3 in
        let _5 : unit = Obj.magic _5 in
        let _4 : (string option) = Obj.magic _4 in
        let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (string Asttypes.loc option) = 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__7_ in
        let _v : (Parsetree.pattern) = let _1 =
          let _1 =
            let _6 =
              let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
              let _endpos = _endpos__1_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 3646 "parsing/parser.mly"
      ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in
        let descr = Ptyp_package (lid, cstrs) in
        mktyp ~loc:_sloc ~attrs descr )
# 51537 "parsing/parser.ml"
              
            in
            let _3 =
              let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in
              let _2 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 51547 "parsing/parser.ml"
                
              in
              
# 4075 "parsing/parser.mly"
                    ( _1, _2 )
# 51553 "parsing/parser.ml"
              
            in
            let _loc__7_ = (_startpos__7_, _endpos__7_) in
            let _loc__1_ = (_startpos__1_, _endpos__1_) in
            
# 2968 "parsing/parser.mly"
      ( unclosed "(" _loc__1_ ")" _loc__7_ )
# 51561 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__7_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 51571 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 51577 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (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 : (Parsetree.pattern) = let _1 =
          let _1 = 
# 2970 "parsing/parser.mly"
      ( Ppat_extension _1 )
# 51603 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 995 "parsing/parser.mly"
    ( mkpat ~loc:_sloc _1 )
# 51611 "parsing/parser.ml"
          
        in
        
# 2931 "parsing/parser.mly"
      ( _1 )
# 51617 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 51638 "parsing/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) = 
# 3983 "parsing/parser.mly"
           ( _1 )
# 51646 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 829 "parsing/parser.mly"
       (string)
# 51667 "parsing/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) = 
# 3984 "parsing/parser.mly"
           ( _1 )
# 51675 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3985 "parsing/parser.mly"
        ( "and" )
# 51700 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3986 "parsing/parser.mly"
       ( "as" )
# 51725 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3987 "parsing/parser.mly"
           ( "assert" )
# 51750 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3988 "parsing/parser.mly"
          ( "begin" )
# 51775 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3989 "parsing/parser.mly"
          ( "class" )
# 51800 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3990 "parsing/parser.mly"
               ( "constraint" )
# 51825 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3991 "parsing/parser.mly"
       ( "do" )
# 51850 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3992 "parsing/parser.mly"
         ( "done" )
# 51875 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3993 "parsing/parser.mly"
           ( "downto" )
# 51900 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3994 "parsing/parser.mly"
         ( "else" )
# 51925 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3995 "parsing/parser.mly"
        ( "end" )
# 51950 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3996 "parsing/parser.mly"
              ( "exception" )
# 51975 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3997 "parsing/parser.mly"
             ( "external" )
# 52000 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3998 "parsing/parser.mly"
          ( "false" )
# 52025 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3999 "parsing/parser.mly"
        ( "for" )
# 52050 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4000 "parsing/parser.mly"
        ( "fun" )
# 52075 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4001 "parsing/parser.mly"
             ( "function" )
# 52100 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4002 "parsing/parser.mly"
            ( "functor" )
# 52125 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4003 "parsing/parser.mly"
       ( "if" )
# 52150 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4004 "parsing/parser.mly"
       ( "in" )
# 52175 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4005 "parsing/parser.mly"
            ( "include" )
# 52200 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4006 "parsing/parser.mly"
            ( "inherit" )
# 52225 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4007 "parsing/parser.mly"
                ( "initializer" )
# 52250 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4008 "parsing/parser.mly"
         ( "lazy" )
# 52275 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4009 "parsing/parser.mly"
        ( "let" )
# 52300 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4010 "parsing/parser.mly"
          ( "match" )
# 52325 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4011 "parsing/parser.mly"
           ( "method" )
# 52350 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4012 "parsing/parser.mly"
           ( "module" )
# 52375 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4013 "parsing/parser.mly"
            ( "mutable" )
# 52400 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4014 "parsing/parser.mly"
        ( "new" )
# 52425 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4015 "parsing/parser.mly"
           ( "nonrec" )
# 52450 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4016 "parsing/parser.mly"
           ( "object" )
# 52475 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4017 "parsing/parser.mly"
       ( "of" )
# 52500 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4018 "parsing/parser.mly"
         ( "open" )
# 52525 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4019 "parsing/parser.mly"
       ( "or" )
# 52550 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4020 "parsing/parser.mly"
            ( "private" )
# 52575 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4021 "parsing/parser.mly"
        ( "rec" )
# 52600 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4022 "parsing/parser.mly"
        ( "sig" )
# 52625 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4023 "parsing/parser.mly"
           ( "struct" )
# 52650 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4024 "parsing/parser.mly"
         ( "then" )
# 52675 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4025 "parsing/parser.mly"
       ( "to" )
# 52700 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4026 "parsing/parser.mly"
         ( "true" )
# 52725 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4027 "parsing/parser.mly"
        ( "try" )
# 52750 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4028 "parsing/parser.mly"
         ( "type" )
# 52775 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4029 "parsing/parser.mly"
        ( "val" )
# 52800 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4030 "parsing/parser.mly"
            ( "virtual" )
# 52825 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4031 "parsing/parser.mly"
         ( "when" )
# 52850 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4032 "parsing/parser.mly"
          ( "while" )
# 52875 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 4033 "parsing/parser.mly"
         ( "with" )
# 52900 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.type_exception * string Asttypes.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 : (Parsetree.type_exception * string Asttypes.loc option) = 
# 3249 "parsing/parser.mly"
    ( _1 )
# 52925 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined5;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined5_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined5_;
          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 = _5;
                MenhirLib.EngineTypes.startp = _startpos__5_;
                MenhirLib.EngineTypes.endp = _endpos__5_;
                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 = ext;
                      MenhirLib.EngineTypes.startp = _startpos_ext_;
                      MenhirLib.EngineTypes.endp = _endpos_ext_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined5 : (Parsetree.attributes) = Obj.magic _1_inlined5 in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (Asttypes.label) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined5_ in
        let _v : (Parsetree.type_exception * string Asttypes.loc option) = let attrs =
          let _1 = _1_inlined5 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 53001 "parsing/parser.ml"
          
        in
        let _endpos_attrs_ = _endpos__1_inlined5_ in
        let attrs2 =
          let _1 = _1_inlined4 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 53010 "parsing/parser.ml"
          
        in
        let lid =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 53021 "parsing/parser.ml"
          
        in
        let id =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 53032 "parsing/parser.ml"
          
        in
        let attrs1 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 53040 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_attrs_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3258 "parsing/parser.mly"
  ( let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    Te.mk_exception ~attrs
      (Te.rebind id lid ~attrs:(attrs1 @ attrs2) ~loc ~docs)
    , ext )
# 53053 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.expression) = 
# 2735 "parsing/parser.mly"
      ( _2 )
# 53085 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.function_body) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Parsetree.type_constraint option) = Obj.magic _2 in
        let _1 : (Parsetree.function_param 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 : (Parsetree.expression) = let _endpos = _endpos__4_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2737 "parsing/parser.mly"
      ( ghexp ~loc:_sloc (mkfunction _1 _2 _4)
      )
# 53135 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = xss;
          MenhirLib.EngineTypes.startp = _startpos_xss_;
          MenhirLib.EngineTypes.endp = _endpos_xss_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let xss : (Parsetree.structure_item list list) = Obj.magic xss in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xss_ in
        let _endpos = _endpos_xss_ in
        let _v : (Parsetree.structure) = let _1 =
          let _1 =
            let ys = 
# 260 "<standard.mly>"
    ( List.flatten xss )
# 53162 "parsing/parser.ml"
             in
            let xs =
              let items = 
# 1030 "parsing/parser.mly"
    ( [] )
# 53168 "parsing/parser.ml"
               in
              
# 1481 "parsing/parser.mly"
    ( items )
# 53173 "parsing/parser.ml"
              
            in
            
# 267 "<standard.mly>"
    ( xs @ ys )
# 53179 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
          let _endpos = _endpos__1_ in
          let _startpos = _startpos__1_ in
          
# 952 "parsing/parser.mly"
                              ( extra_str _startpos _endpos _1 )
# 53188 "parsing/parser.ml"
          
        in
        
# 1474 "parsing/parser.mly"
  ( _1 )
# 53194 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = xss;
          MenhirLib.EngineTypes.startp = _startpos_xss_;
          MenhirLib.EngineTypes.endp = _endpos_xss_;
          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 = e;
              MenhirLib.EngineTypes.startp = _startpos_e_;
              MenhirLib.EngineTypes.endp = _endpos_e_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let xss : (Parsetree.structure_item list list) = Obj.magic xss in
        let _1 : (Parsetree.attributes) = Obj.magic _1 in
        let e : (Parsetree.expression) = Obj.magic e in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e_ in
        let _endpos = _endpos_xss_ in
        let _v : (Parsetree.structure) = let _1 =
          let _1 =
            let ys = 
# 260 "<standard.mly>"
    ( List.flatten xss )
# 53235 "parsing/parser.ml"
             in
            let xs =
              let items =
                let x =
                  let _1 =
                    let _1 =
                      let attrs = 
# 4058 "parsing/parser.mly"
    ( _1 )
# 53245 "parsing/parser.ml"
                       in
                      
# 1488 "parsing/parser.mly"
    ( mkstrexp e attrs )
# 53250 "parsing/parser.ml"
                      
                    in
                    let _startpos__1_ = _startpos_e_ in
                    let _startpos = _startpos__1_ in
                    
# 964 "parsing/parser.mly"
  ( text_str _startpos @ [_1] )
# 53258 "parsing/parser.ml"
                    
                  in
                  let _startpos__1_ = _startpos_e_ in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  
# 983 "parsing/parser.mly"
  ( mark_rhs_docs _startpos _endpos;
    _1 )
# 53268 "parsing/parser.ml"
                  
                in
                
# 1032 "parsing/parser.mly"
    ( x )
# 53274 "parsing/parser.ml"
                
              in
              
# 1481 "parsing/parser.mly"
    ( items )
# 53280 "parsing/parser.ml"
              
            in
            
# 267 "<standard.mly>"
    ( xs @ ys )
# 53286 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in
          let _endpos = _endpos__1_ in
          let _startpos = _startpos__1_ in
          
# 952 "parsing/parser.mly"
                              ( extra_str _startpos _endpos _1 )
# 53295 "parsing/parser.ml"
          
        in
        
# 1474 "parsing/parser.mly"
  ( _1 )
# 53301 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (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 : (Parsetree.structure_item) = let _endpos = _endpos__1_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 1503 "parsing/parser.mly"
      ( val_of_let_bindings ~loc:_sloc _1 )
# 53329 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let _1 : (Parsetree.extension) = 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 : (Parsetree.structure_item) = let _1 =
          let _1 =
            let _2 =
              let _1 = _1_inlined1 in
              
# 4058 "parsing/parser.mly"
    ( _1 )
# 53365 "parsing/parser.ml"
              
            in
            let _endpos__2_ = _endpos__1_inlined1_ in
            let _endpos = _endpos__2_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 1506 "parsing/parser.mly"
        ( let docs = symbol_docs _sloc in
          Pstr_extension (_1, add_docs_attrs docs _2) )
# 53376 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined1_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 999 "parsing/parser.mly"
    ( mkstr ~loc:_sloc _1 )
# 53386 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 53392 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.attribute) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Parsetree.structure_item) = let _1 =
          let _1 = 
# 1509 "parsing/parser.mly"
        ( Pstr_attribute _1 )
# 53418 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 999 "parsing/parser.mly"
    ( mkstr ~loc:_sloc _1 )
# 53426 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 53432 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.value_description * string Asttypes.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 : (Parsetree.structure_item) = let _1 =
          let _1 = 
# 1513 "parsing/parser.mly"
        ( pstr_primitive _1 )
# 53458 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1016 "parsing/parser.mly"
    ( wrap_mkstr_ext ~loc:_sloc _1 )
# 53466 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 53472 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.value_description * string Asttypes.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 : (Parsetree.structure_item) = let _1 =
          let _1 = 
# 1515 "parsing/parser.mly"
        ( pstr_primitive _1 )
# 53498 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1016 "parsing/parser.mly"
    ( wrap_mkstr_ext ~loc:_sloc _1 )
# 53506 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 53512 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = bs;
          MenhirLib.EngineTypes.startp = _startpos_bs_;
          MenhirLib.EngineTypes.endp = _endpos_bs_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = a;
            MenhirLib.EngineTypes.startp = _startpos_a_;
            MenhirLib.EngineTypes.endp = _endpos_a_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let bs : (Parsetree.type_declaration list) = Obj.magic bs in
        let a : ((Asttypes.rec_flag * string Asttypes.loc option) *
  Parsetree.type_declaration) = Obj.magic a in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_a_ in
        let _endpos = _endpos_bs_ in
        let _v : (Parsetree.structure_item) = let _1 =
          let _1 =
            let _1 =
              let _1 =
                let _1 = 
# 1212 "parsing/parser.mly"
    ( let (x, b) = a in x, b :: bs )
# 53549 "parsing/parser.ml"
                 in
                
# 3093 "parsing/parser.mly"
  ( _1 )
# 53554 "parsing/parser.ml"
                
              in
              
# 3076 "parsing/parser.mly"
    ( _1 )
# 53560 "parsing/parser.ml"
              
            in
            
# 1517 "parsing/parser.mly"
        ( pstr_type _1 )
# 53566 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1016 "parsing/parser.mly"
    ( wrap_mkstr_ext ~loc:_sloc _1 )
# 53576 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 53582 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          MenhirLib.EngineTypes.next = {
            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 = 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 = _1_inlined2;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
                  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 = ext;
                        MenhirLib.EngineTypes.startp = _startpos_ext_;
                        MenhirLib.EngineTypes.endp = _endpos_ext_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _menhir_s;
                          MenhirLib.EngineTypes.semv = _1;
                          MenhirLib.EngineTypes.startp = _startpos__1_;
                          MenhirLib.EngineTypes.endp = _endpos__1_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let xs : (Parsetree.extension_constructor list) = Obj.magic xs in
        let priv : (Asttypes.private_flag) = Obj.magic priv in
        let _7 : unit = Obj.magic _7 in
        let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined3_ in
        let _v : (Parsetree.structure_item) = let _1 =
          let _1 =
            let _1 =
              let _1 =
                let attrs2 =
                  let _1 = _1_inlined3 in
                  
# 4058 "parsing/parser.mly"
    ( _1 )
# 53669 "parsing/parser.ml"
                  
                in
                let _endpos_attrs2_ = _endpos__1_inlined3_ in
                let cs = 
# 1204 "parsing/parser.mly"
    ( List.rev xs )
# 53676 "parsing/parser.ml"
                 in
                let tid =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
                  let _endpos = _endpos__1_ in
                  let _symbolstartpos = _startpos__1_ in
                  let _sloc = (_symbolstartpos, _endpos) in
                  
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 53686 "parsing/parser.ml"
                  
                in
                let _4 = 
# 3903 "parsing/parser.mly"
                ( Recursive )
# 53692 "parsing/parser.ml"
                 in
                let attrs1 =
                  let _1 = _1_inlined1 in
                  
# 4062 "parsing/parser.mly"
    ( _1 )
# 53699 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos_attrs2_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 3346 "parsing/parser.mly"
    ( let docs = symbol_docs _sloc in
      let attrs = attrs1 @ attrs2 in
      Te.mk tid cs ~params ~priv ~attrs ~docs,
      ext )
# 53711 "parsing/parser.ml"
                
              in
              
# 3329 "parsing/parser.mly"
    ( _1 )
# 53717 "parsing/parser.ml"
              
            in
            
# 1519 "parsing/parser.mly"
        ( pstr_typext _1 )
# 53723 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1016 "parsing/parser.mly"
    ( wrap_mkstr_ext ~loc:_sloc _1 )
# 53733 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 53739 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined4;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined4_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined4_;
          MenhirLib.EngineTypes.next = {
            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 = 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 = _1_inlined3;
                  MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
                  MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
                  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_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 = ext;
                          MenhirLib.EngineTypes.startp = _startpos_ext_;
                          MenhirLib.EngineTypes.endp = _endpos_ext_;
                          MenhirLib.EngineTypes.next = {
                            MenhirLib.EngineTypes.state = _menhir_s;
                            MenhirLib.EngineTypes.semv = _1;
                            MenhirLib.EngineTypes.startp = _startpos__1_;
                            MenhirLib.EngineTypes.endp = _endpos__1_;
                            MenhirLib.EngineTypes.next = _menhir_stack;
                          };
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in
        let xs : (Parsetree.extension_constructor list) = Obj.magic xs in
        let priv : (Asttypes.private_flag) = Obj.magic priv in
        let _7 : unit = Obj.magic _7 in
        let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let _1_inlined2 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined4_ in
        let _v : (Parsetree.structure_item) = let _1 =
          let _1 =
            let _1 =
              let _1 =
                let attrs2 =
                  let _1 = _1_inlined4 in
                  
# 4058 "parsing/parser.mly"
    ( _1 )
# 53833 "parsing/parser.ml"
                  
                in
                let _endpos_attrs2_ = _endpos__1_inlined4_ in
                let cs = 
# 1204 "parsing/parser.mly"
    ( List.rev xs )
# 53840 "parsing/parser.ml"
                 in
                let tid =
                  let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in
                  let _endpos = _endpos__1_ in
                  let _symbolstartpos = _startpos__1_ in
                  let _sloc = (_symbolstartpos, _endpos) in
                  
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 53850 "parsing/parser.ml"
                  
                in
                let _4 =
                  let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in
                  let _endpos = _endpos__1_ in
                  let _startpos = _startpos__1_ in
                  let _loc = (_startpos, _endpos) in
                  
# 3905 "parsing/parser.mly"
                ( not_expecting _loc "nonrec flag" )
# 53861 "parsing/parser.ml"
                  
                in
                let attrs1 =
                  let _1 = _1_inlined1 in
                  
# 4062 "parsing/parser.mly"
    ( _1 )
# 53869 "parsing/parser.ml"
                  
                in
                let _endpos = _endpos_attrs2_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 3346 "parsing/parser.mly"
    ( let docs = symbol_docs _sloc in
      let attrs = attrs1 @ attrs2 in
      Te.mk tid cs ~params ~priv ~attrs ~docs,
      ext )
# 53881 "parsing/parser.ml"
                
              in
              
# 3329 "parsing/parser.mly"
    ( _1 )
# 53887 "parsing/parser.ml"
              
            in
            
# 1519 "parsing/parser.mly"
        ( pstr_typext _1 )
# 53893 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined4_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1016 "parsing/parser.mly"
    ( wrap_mkstr_ext ~loc:_sloc _1 )
# 53903 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 53909 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.type_exception * string Asttypes.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 : (Parsetree.structure_item) = let _1 =
          let _1 = 
# 1521 "parsing/parser.mly"
        ( pstr_exception _1 )
# 53935 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1016 "parsing/parser.mly"
    ( wrap_mkstr_ext ~loc:_sloc _1 )
# 53943 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 53949 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          MenhirLib.EngineTypes.next = {
            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 = _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 = ext;
                  MenhirLib.EngineTypes.startp = _startpos_ext_;
                  MenhirLib.EngineTypes.endp = _endpos_ext_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _menhir_s;
                    MenhirLib.EngineTypes.semv = _1;
                    MenhirLib.EngineTypes.startp = _startpos__1_;
                    MenhirLib.EngineTypes.endp = _endpos__1_;
                    MenhirLib.EngineTypes.next = _menhir_stack;
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let body : (Parsetree.module_expr) = Obj.magic body in
        let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined3_ in
        let _v : (Parsetree.structure_item) = let _1 =
          let _1 =
            let _1 =
              let attrs2 =
                let _1 = _1_inlined3 in
                
# 4058 "parsing/parser.mly"
    ( _1 )
# 54014 "parsing/parser.ml"
                
              in
              let _endpos_attrs2_ = _endpos__1_inlined3_ in
              let name =
                let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
                let _endpos = _endpos__1_ in
                let _symbolstartpos = _startpos__1_ in
                let _sloc = (_symbolstartpos, _endpos) in
                
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 54026 "parsing/parser.ml"
                
              in
              let attrs1 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 54034 "parsing/parser.ml"
                
              in
              let _endpos = _endpos_attrs2_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 1547 "parsing/parser.mly"
    ( let docs = symbol_docs _sloc in
      let loc = make_loc _sloc in
      let attrs = attrs1 @ attrs2 in
      let body = Mb.mk name body ~attrs ~loc ~docs in
      Pstr_module body, ext )
# 54047 "parsing/parser.ml"
              
            in
            
# 1523 "parsing/parser.mly"
        ( _1 )
# 54053 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined3_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1016 "parsing/parser.mly"
    ( wrap_mkstr_ext ~loc:_sloc _1 )
# 54063 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 54069 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = bs;
          MenhirLib.EngineTypes.startp = _startpos_bs_;
          MenhirLib.EngineTypes.endp = _endpos_bs_;
          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 = body;
              MenhirLib.EngineTypes.startp = _startpos_body_;
              MenhirLib.EngineTypes.endp = _endpos_body_;
              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 = _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 = ext;
                      MenhirLib.EngineTypes.startp = _startpos_ext_;
                      MenhirLib.EngineTypes.endp = _endpos_ext_;
                      MenhirLib.EngineTypes.next = {
                        MenhirLib.EngineTypes.state = _menhir_s;
                        MenhirLib.EngineTypes.semv = _1;
                        MenhirLib.EngineTypes.startp = _startpos__1_;
                        MenhirLib.EngineTypes.endp = _endpos__1_;
                        MenhirLib.EngineTypes.next = _menhir_stack;
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let bs : (Parsetree.module_binding list) = Obj.magic bs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let body : (Parsetree.module_expr) = Obj.magic body in
        let _1_inlined2 : (string option) = Obj.magic _1_inlined2 in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_bs_ in
        let _v : (Parsetree.structure_item) = let _1 =
          let _1 =
            let _1 =
              let _1 =
                let a =
                  let attrs2 =
                    let _1 = _1_inlined3 in
                    
# 4058 "parsing/parser.mly"
    ( _1 )
# 54150 "parsing/parser.ml"
                    
                  in
                  let _endpos_attrs2_ = _endpos__1_inlined3_ in
                  let name =
                    let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
                    let _endpos = _endpos__1_ in
                    let _symbolstartpos = _startpos__1_ in
                    let _sloc = (_symbolstartpos, _endpos) in
                    
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 54162 "parsing/parser.ml"
                    
                  in
                  let attrs1 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 54170 "parsing/parser.ml"
                    
                  in
                  let _endpos = _endpos_attrs2_ in
                  let _symbolstartpos = _startpos__1_ in
                  let _sloc = (_symbolstartpos, _endpos) in
                  
# 1584 "parsing/parser.mly"
  (
    let loc = make_loc _sloc in
    let attrs = attrs1 @ attrs2 in
    let docs = symbol_docs _sloc in
    ext,
    Mb.mk name body ~attrs ~loc ~docs
  )
# 54185 "parsing/parser.ml"
                  
                in
                
# 1212 "parsing/parser.mly"
    ( let (x, b) = a in x, b :: bs )
# 54191 "parsing/parser.ml"
                
              in
              
# 1572 "parsing/parser.mly"
    ( _1 )
# 54197 "parsing/parser.ml"
              
            in
            
# 1525 "parsing/parser.mly"
        ( pstr_recmodule _1 )
# 54203 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos_bs_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1016 "parsing/parser.mly"
    ( wrap_mkstr_ext ~loc:_sloc _1 )
# 54213 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 54219 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.module_type_declaration * string Asttypes.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 : (Parsetree.structure_item) = let _1 =
          let _1 = 
# 1527 "parsing/parser.mly"
        ( let (body, ext) = _1 in (Pstr_modtype body, ext) )
# 54245 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1016 "parsing/parser.mly"
    ( wrap_mkstr_ext ~loc:_sloc _1 )
# 54253 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 54259 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Parsetree.open_declaration * string Asttypes.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 : (Parsetree.structure_item) = let _1 =
          let _1 = 
# 1529 "parsing/parser.mly"
        ( let (body, ext) = _1 in (Pstr_open body, ext) )
# 54285 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1016 "parsing/parser.mly"
    ( wrap_mkstr_ext ~loc:_sloc _1 )
# 54293 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 54299 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = bs;
          MenhirLib.EngineTypes.startp = _startpos_bs_;
          MenhirLib.EngineTypes.endp = _endpos_bs_;
          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 = body;
              MenhirLib.EngineTypes.startp = _startpos_body_;
              MenhirLib.EngineTypes.endp = _endpos_body_;
              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 = params;
                  MenhirLib.EngineTypes.startp = _startpos_params_;
                  MenhirLib.EngineTypes.endp = _endpos_params_;
                  MenhirLib.EngineTypes.next = {
                    MenhirLib.EngineTypes.state = _;
                    MenhirLib.EngineTypes.semv = virt;
                    MenhirLib.EngineTypes.startp = _startpos_virt_;
                    MenhirLib.EngineTypes.endp = _endpos_virt_;
                    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 = ext;
                        MenhirLib.EngineTypes.startp = _startpos_ext_;
                        MenhirLib.EngineTypes.endp = _endpos_ext_;
                        MenhirLib.EngineTypes.next = {
                          MenhirLib.EngineTypes.state = _menhir_s;
                          MenhirLib.EngineTypes.semv = _1;
                          MenhirLib.EngineTypes.startp = _startpos__1_;
                          MenhirLib.EngineTypes.endp = _endpos__1_;
                          MenhirLib.EngineTypes.next = _menhir_stack;
                        };
                      };
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let bs : (Parsetree.class_declaration list) = Obj.magic bs in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let body : (Parsetree.class_expr) = Obj.magic body in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 54371 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in
        let virt : (Asttypes.virtual_flag) = Obj.magic virt in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_bs_ in
        let _v : (Parsetree.structure_item) = let _1 =
          let _1 =
            let _1 =
              let _1 =
                let a =
                  let attrs2 =
                    let _1 = _1_inlined3 in
                    
# 4058 "parsing/parser.mly"
    ( _1 )
# 54391 "parsing/parser.ml"
                    
                  in
                  let _endpos_attrs2_ = _endpos__1_inlined3_ in
                  let id =
                    let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
                    let _endpos = _endpos__1_ in
                    let _symbolstartpos = _startpos__1_ in
                    let _sloc = (_symbolstartpos, _endpos) in
                    
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 54403 "parsing/parser.ml"
                    
                  in
                  let attrs1 =
                    let _1 = _1_inlined1 in
                    
# 4062 "parsing/parser.mly"
    ( _1 )
# 54411 "parsing/parser.ml"
                    
                  in
                  let _endpos = _endpos_attrs2_ in
                  let _symbolstartpos = _startpos__1_ in
                  let _sloc = (_symbolstartpos, _endpos) in
                  
# 1928 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    ext,
    Ci.mk id body ~virt ~params ~attrs ~loc ~docs
  )
# 54426 "parsing/parser.ml"
                  
                in
                
# 1212 "parsing/parser.mly"
    ( let (x, b) = a in x, b :: bs )
# 54432 "parsing/parser.ml"
                
              in
              
# 1917 "parsing/parser.mly"
    ( _1 )
# 54438 "parsing/parser.ml"
              
            in
            
# 1531 "parsing/parser.mly"
        ( let (ext, l) = _1 in (Pstr_class l, ext) )
# 54444 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos_bs_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1016 "parsing/parser.mly"
    ( wrap_mkstr_ext ~loc:_sloc _1 )
# 54454 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 54460 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 Asttypes.loc option * 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 : (Parsetree.structure_item) = let _1 =
          let _1 = 
# 1533 "parsing/parser.mly"
        ( let (ext, l) = _1 in (Pstr_class_type l, ext) )
# 54486 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1016 "parsing/parser.mly"
    ( wrap_mkstr_ext ~loc:_sloc _1 )
# 54494 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 54500 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = thing;
            MenhirLib.EngineTypes.startp = _startpos_thing_;
            MenhirLib.EngineTypes.endp = _endpos_thing_;
            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 = ext;
                MenhirLib.EngineTypes.startp = _startpos_ext_;
                MenhirLib.EngineTypes.endp = _endpos_ext_;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  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 : (Parsetree.attributes) = Obj.magic _1_inlined2 in
        let thing : (Parsetree.module_expr) = Obj.magic thing in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined2_ in
        let _v : (Parsetree.structure_item) = let _1 =
          let _1 =
            let _1 =
              let attrs2 =
                let _1 = _1_inlined2 in
                
# 4058 "parsing/parser.mly"
    ( _1 )
# 54558 "parsing/parser.ml"
                
              in
              let _endpos_attrs2_ = _endpos__1_inlined2_ in
              let attrs1 =
                let _1 = _1_inlined1 in
                
# 4062 "parsing/parser.mly"
    ( _1 )
# 54567 "parsing/parser.ml"
                
              in
              let _endpos = _endpos_attrs2_ in
              let _symbolstartpos = _startpos__1_ in
              let _sloc = (_symbolstartpos, _endpos) in
              
# 1621 "parsing/parser.mly"
  (
    let attrs = attrs1 @ attrs2 in
    let loc = make_loc _sloc in
    let docs = symbol_docs _sloc in
    Incl.mk thing ~attrs ~loc ~docs, ext
  )
# 54581 "parsing/parser.ml"
              
            in
            
# 1535 "parsing/parser.mly"
        ( pstr_include _1 )
# 54587 "parsing/parser.ml"
            
          in
          let _endpos__1_ = _endpos__1_inlined2_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 1016 "parsing/parser.mly"
    ( wrap_mkstr_ext ~loc:_sloc _1 )
# 54597 "parsing/parser.ml"
          
        in
        
# 1537 "parsing/parser.mly"
    ( _1 )
# 54603 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3968 "parsing/parser.mly"
                                                ( "-" )
# 54628 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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) = 
# 3969 "parsing/parser.mly"
                                                ( "-." )
# 54653 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = 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 _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let xs : (Parsetree.core_type list) = Obj.magic xs in
        let _3 : (bool) = Obj.magic _3 in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Asttypes.label) = 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 : (Parsetree.row_field) = let _5 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 54708 "parsing/parser.ml"
          
        in
        let _endpos__5_ = _endpos__1_inlined1_ in
        let _4 =
          let _1 =
            let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 54717 "parsing/parser.ml"
             in
            
# 1115 "parsing/parser.mly"
    ( xs )
# 54722 "parsing/parser.ml"
            
          in
          
# 3676 "parsing/parser.mly"
    ( _1 )
# 54728 "parsing/parser.ml"
          
        in
        let _1 =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 54738 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3662 "parsing/parser.mly"
      ( let info = symbol_info _endpos in
        let attrs = add_info_attrs info _5 in
        Rf.tag ~loc:(make_loc _sloc) ~attrs _1 _3 _4 )
# 54749 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let _1 : (Asttypes.label) = 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 : (Parsetree.row_field) = let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 54783 "parsing/parser.ml"
          
        in
        let _endpos__2_ = _endpos__1_inlined1_ in
        let _1 =
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 54794 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3666 "parsing/parser.mly"
      ( let info = symbol_info _endpos in
        let attrs = add_info_attrs info _2 in
        Rf.tag ~loc:(make_loc _sloc) ~attrs _1 true [] )
# 54805 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.label) = 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 : (Parsetree.toplevel_phrase) = let arg = 
# 124 "<standard.mly>"
    ( None )
# 54837 "parsing/parser.ml"
         in
        let _endpos_arg_ = _endpos__1_inlined1_ in
        let dir =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 54848 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_arg_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3866 "parsing/parser.mly"
    ( mk_directive ~loc:_sloc dir arg )
# 54857 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (
# 816 "parsing/parser.mly"
       (string * Location.t * string option)
# 54890 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Asttypes.label) = 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_inlined2_ in
        let _v : (Parsetree.toplevel_phrase) = let arg =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let x =
            let _1 = 
# 3870 "parsing/parser.mly"
                  ( let (s, _, _) = _1 in Pdir_string s )
# 54903 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 1021 "parsing/parser.mly"
    ( mk_directive_arg ~loc:_sloc _1 )
# 54911 "parsing/parser.ml"
            
          in
          
# 126 "<standard.mly>"
    ( Some x )
# 54917 "parsing/parser.ml"
          
        in
        let _endpos_arg_ = _endpos__1_inlined2_ in
        let dir =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 54929 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_arg_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3866 "parsing/parser.mly"
    ( mk_directive ~loc:_sloc dir arg )
# 54938 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (
# 764 "parsing/parser.mly"
       (string * char option)
# 54971 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Asttypes.label) = 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_inlined2_ in
        let _v : (Parsetree.toplevel_phrase) = let arg =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let x =
            let _1 = 
# 3871 "parsing/parser.mly"
                  ( let (n, m) = _1 in Pdir_int (n ,m) )
# 54984 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 1021 "parsing/parser.mly"
    ( mk_directive_arg ~loc:_sloc _1 )
# 54992 "parsing/parser.ml"
            
          in
          
# 126 "<standard.mly>"
    ( Some x )
# 54998 "parsing/parser.ml"
          
        in
        let _endpos_arg_ = _endpos__1_inlined2_ in
        let dir =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 55010 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_arg_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3866 "parsing/parser.mly"
    ( mk_directive ~loc:_sloc dir arg )
# 55019 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Longident.t) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Asttypes.label) = 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_inlined2_ in
        let _v : (Parsetree.toplevel_phrase) = let arg =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let x =
            let _1 = 
# 3872 "parsing/parser.mly"
                  ( Pdir_ident _1 )
# 55061 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 1021 "parsing/parser.mly"
    ( mk_directive_arg ~loc:_sloc _1 )
# 55069 "parsing/parser.ml"
            
          in
          
# 126 "<standard.mly>"
    ( Some x )
# 55075 "parsing/parser.ml"
          
        in
        let _endpos_arg_ = _endpos__1_inlined2_ in
        let dir =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 55087 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_arg_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3866 "parsing/parser.mly"
    ( mk_directive ~loc:_sloc dir arg )
# 55096 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Longident.t) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Asttypes.label) = 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_inlined2_ in
        let _v : (Parsetree.toplevel_phrase) = let arg =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let x =
            let _1 = 
# 3873 "parsing/parser.mly"
                  ( Pdir_ident _1 )
# 55138 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 1021 "parsing/parser.mly"
    ( mk_directive_arg ~loc:_sloc _1 )
# 55146 "parsing/parser.ml"
            
          in
          
# 126 "<standard.mly>"
    ( Some x )
# 55152 "parsing/parser.ml"
          
        in
        let _endpos_arg_ = _endpos__1_inlined2_ in
        let dir =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 55164 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_arg_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3866 "parsing/parser.mly"
    ( mk_directive ~loc:_sloc dir arg )
# 55173 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Asttypes.label) = 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_inlined2_ in
        let _v : (Parsetree.toplevel_phrase) = let arg =
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in
          let x =
            let _1 = 
# 3874 "parsing/parser.mly"
                  ( Pdir_bool false )
# 55215 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 1021 "parsing/parser.mly"
    ( mk_directive_arg ~loc:_sloc _1 )
# 55223 "parsing/parser.ml"
            
          in
          
# 126 "<standard.mly>"
    ( Some x )
# 55229 "parsing/parser.ml"
          
        in
        let _endpos_arg_ = _endpos__1_inlined2_ in
        let dir =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 55241 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_arg_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3866 "parsing/parser.mly"
    ( mk_directive ~loc:_sloc dir arg )
# 55250 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : unit = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Asttypes.label) = 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_inlined2_ in
        let _v : (Parsetree.toplevel_phrase) = let arg =
          let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in
          let x =
            let _1 = 
# 3875 "parsing/parser.mly"
                  ( Pdir_bool true )
# 55292 "parsing/parser.ml"
             in
            let _endpos = _endpos__1_ in
            let _symbolstartpos = _startpos__1_ in
            let _sloc = (_symbolstartpos, _endpos) in
            
# 1021 "parsing/parser.mly"
    ( mk_directive_arg ~loc:_sloc _1 )
# 55300 "parsing/parser.ml"
            
          in
          
# 126 "<standard.mly>"
    ( Some x )
# 55306 "parsing/parser.ml"
          
        in
        let _endpos_arg_ = _endpos__1_inlined2_ in
        let dir =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 55318 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_arg_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3866 "parsing/parser.mly"
    ( mk_directive ~loc:_sloc dir arg )
# 55327 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = {
              MenhirLib.EngineTypes.state = _menhir_s;
              MenhirLib.EngineTypes.semv = e;
              MenhirLib.EngineTypes.startp = _startpos_e_;
              MenhirLib.EngineTypes.endp = _endpos_e_;
              MenhirLib.EngineTypes.next = _menhir_stack;
            };
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let _1 : (Parsetree.attributes) = Obj.magic _1 in
        let e : (Parsetree.expression) = Obj.magic e in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e_ in
        let _endpos = _endpos__2_ in
        let _v : (Parsetree.toplevel_phrase) = let _1 =
          let _1 =
            let _1 =
              let attrs = 
# 4058 "parsing/parser.mly"
    ( _1 )
# 55369 "parsing/parser.ml"
               in
              
# 1488 "parsing/parser.mly"
    ( mkstrexp e attrs )
# 55374 "parsing/parser.ml"
              
            in
            let _startpos__1_ = _startpos_e_ in
            let _startpos = _startpos__1_ in
            
# 964 "parsing/parser.mly"
  ( text_str _startpos @ [_1] )
# 55382 "parsing/parser.ml"
            
          in
          let _startpos__1_ = _startpos_e_ in
          let _endpos = _endpos__1_ in
          let _startpos = _startpos__1_ in
          
# 952 "parsing/parser.mly"
                              ( extra_str _startpos _endpos _1 )
# 55391 "parsing/parser.ml"
          
        in
        
# 1252 "parsing/parser.mly"
    ( Ptop_def _1 )
# 55397 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xss;
            MenhirLib.EngineTypes.startp = _startpos_xss_;
            MenhirLib.EngineTypes.endp = _endpos_xss_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let xss : (Parsetree.structure_item list list) = Obj.magic xss in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xss_ in
        let _endpos = _endpos__2_ in
        let _v : (Parsetree.toplevel_phrase) = let _1 =
          let _1 = 
# 260 "<standard.mly>"
    ( List.flatten xss )
# 55430 "parsing/parser.ml"
           in
          let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
          let _endpos = _endpos__1_ in
          let _startpos = _startpos__1_ in
          
# 952 "parsing/parser.mly"
                              ( extra_str _startpos _endpos _1 )
# 55438 "parsing/parser.ml"
          
        in
        
# 1256 "parsing/parser.mly"
    ( Ptop_def _1 )
# 55444 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.toplevel_phrase) = 
# 1260 "parsing/parser.mly"
    ( _1 )
# 55476 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Parsetree.toplevel_phrase) = 
# 1263 "parsing/parser.mly"
    ( raise End_of_file )
# 55501 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = ty;
          MenhirLib.EngineTypes.startp = _startpos_ty_;
          MenhirLib.EngineTypes.endp = _endpos_ty_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let ty : (Parsetree.core_type) = Obj.magic ty in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_ty_ in
        let _endpos = _endpos_ty_ in
        let _v : (Parsetree.core_type) = 
# 3512 "parsing/parser.mly"
      ( ty )
# 55526 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = xs;
          MenhirLib.EngineTypes.startp = _startpos_xs_;
          MenhirLib.EngineTypes.endp = _endpos_xs_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let xs : (Parsetree.core_type list) = Obj.magic xs in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xs_ in
        let _endpos = _endpos_xs_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 =
            let tys =
              let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 55554 "parsing/parser.ml"
               in
              
# 1143 "parsing/parser.mly"
    ( xs )
# 55559 "parsing/parser.ml"
              
            in
            
# 3515 "parsing/parser.mly"
        ( Ptyp_tuple tys )
# 55565 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 55575 "parsing/parser.ml"
          
        in
        
# 3517 "parsing/parser.mly"
    ( _1 )
# 55581 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.type_constraint) = 
# 2834 "parsing/parser.mly"
                                                ( Pconstraint _2 )
# 55613 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.core_type) = Obj.magic _4 in
        let _3 : unit = Obj.magic _3 in
        let _2 : (Parsetree.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 : (Parsetree.type_constraint) = 
# 2835 "parsing/parser.mly"
                                                ( Pcoerce (Some _2, _4) )
# 55659 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.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 : (Parsetree.type_constraint) = 
# 2836 "parsing/parser.mly"
                                                ( Pcoerce (None, _2) )
# 55691 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.type_constraint) = 
# 2837 "parsing/parser.mly"
                                                ( syntax_error() )
# 55723 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.type_constraint) = 
# 2838 "parsing/parser.mly"
                                                ( syntax_error() )
# 55755 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = 
# 3167 "parsing/parser.mly"
      ( (Ptype_abstract, Public, None) )
# 55773 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.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 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = 
# 3169 "parsing/parser.mly"
      ( _2 )
# 55805 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = 
# 3827 "parsing/parser.mly"
                                             ( _1 )
# 55830 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Parsetree.core_type) = Obj.magic _2 in
        let _1 : (Asttypes.variance * Asttypes.injectivity) = 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 : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = 
# 3184 "parsing/parser.mly"
                                       ( _2, _1 )
# 55862 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = 
# 3177 "parsing/parser.mly"
      ( [] )
# 55880 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = p;
          MenhirLib.EngineTypes.startp = _startpos_p_;
          MenhirLib.EngineTypes.endp = _endpos_p_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let p : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = Obj.magic p in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_p_ in
        let _endpos = _endpos_p_ in
        let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = 
# 3179 "parsing/parser.mly"
      ( [p] )
# 55905 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 = 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 _3 : unit = Obj.magic _3 in
        let xs : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic xs in
        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 : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let ps =
          let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 55945 "parsing/parser.ml"
           in
          
# 1115 "parsing/parser.mly"
    ( xs )
# 55950 "parsing/parser.ml"
          
        in
        
# 3181 "parsing/parser.mly"
      ( ps )
# 55956 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = tyvar;
          MenhirLib.EngineTypes.startp = _startpos_tyvar_;
          MenhirLib.EngineTypes.endp = _endpos_tyvar_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _menhir_s;
            MenhirLib.EngineTypes.semv = _1;
            MenhirLib.EngineTypes.startp = _startpos__1_;
            MenhirLib.EngineTypes.endp = _endpos__1_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let tyvar : (Asttypes.label) = Obj.magic tyvar in
        let _1 : unit = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_tyvar_ in
        let _v : (Parsetree.core_type) = let _1 =
          let _1 = 
# 3189 "parsing/parser.mly"
      ( Ptyp_var tyvar )
# 55989 "parsing/parser.ml"
           in
          let _endpos__1_ = _endpos_tyvar_ in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 55998 "parsing/parser.ml"
          
        in
        
# 3192 "parsing/parser.mly"
    ( _1 )
# 56004 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Parsetree.core_type) = let _1 =
          let _1 = 
# 3191 "parsing/parser.mly"
      ( Ptyp_any )
# 56030 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 997 "parsing/parser.mly"
    ( mktyp ~loc:_sloc _1 )
# 56038 "parsing/parser.ml"
          
        in
        
# 3192 "parsing/parser.mly"
    ( _1 )
# 56044 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Asttypes.variance * Asttypes.injectivity) = 
# 3196 "parsing/parser.mly"
                                            ( NoVariance, NoInjectivity )
# 56062 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.variance * Asttypes.injectivity) = 
# 3197 "parsing/parser.mly"
                                            ( Covariant, NoInjectivity )
# 56087 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.variance * Asttypes.injectivity) = 
# 3198 "parsing/parser.mly"
                                            ( Contravariant, NoInjectivity )
# 56112 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.variance * Asttypes.injectivity) = 
# 3199 "parsing/parser.mly"
                                            ( NoVariance, Injective )
# 56137 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.variance * Asttypes.injectivity) = 
# 3200 "parsing/parser.mly"
                                            ( Covariant, Injective )
# 56169 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.variance * Asttypes.injectivity) = 
# 3200 "parsing/parser.mly"
                                            ( Covariant, Injective )
# 56201 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.variance * Asttypes.injectivity) = 
# 3201 "parsing/parser.mly"
                                            ( Contravariant, Injective )
# 56233 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.variance * Asttypes.injectivity) = 
# 3201 "parsing/parser.mly"
                                            ( Contravariant, Injective )
# 56265 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 756 "parsing/parser.mly"
       (string)
# 56286 "parsing/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 : (Asttypes.variance * Asttypes.injectivity) = let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 3203 "parsing/parser.mly"
      ( if _1 = "+!" then Covariant, Injective else
        if _1 = "-!" then Contravariant, Injective else
        expecting _loc__1_ "type_variance" )
# 56297 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 802 "parsing/parser.mly"
       (string)
# 56318 "parsing/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 : (Asttypes.variance * Asttypes.injectivity) = let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 3207 "parsing/parser.mly"
      ( if _1 = "!+" then Covariant, Injective else
        if _1 = "!-" then Contravariant, Injective else
        expecting _loc__1_ "type_variance" )
# 56329 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xss;
            MenhirLib.EngineTypes.startp = _startpos_xss_;
            MenhirLib.EngineTypes.endp = _endpos_xss_;
            MenhirLib.EngineTypes.next = _menhir_stack;
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let xss : (Parsetree.toplevel_phrase list list) = Obj.magic xss in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_xss_ in
        let _endpos = _endpos__2_ in
        let _v : (Parsetree.toplevel_phrase list) = let _1 =
          let _1 =
            let ys = 
# 260 "<standard.mly>"
    ( List.flatten xss )
# 56363 "parsing/parser.ml"
             in
            let xs =
              let _1 = 
# 1030 "parsing/parser.mly"
    ( [] )
# 56369 "parsing/parser.ml"
               in
              
# 1283 "parsing/parser.mly"
    ( _1 )
# 56374 "parsing/parser.ml"
              
            in
            
# 267 "<standard.mly>"
    ( xs @ ys )
# 56380 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in
          let _endpos = _endpos__1_ in
          let _startpos = _startpos__1_ in
          
# 956 "parsing/parser.mly"
                              ( extra_def _startpos _endpos _1 )
# 56389 "parsing/parser.ml"
          
        in
        
# 1276 "parsing/parser.mly"
    ( _1 )
# 56395 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = xss;
            MenhirLib.EngineTypes.startp = _startpos_xss_;
            MenhirLib.EngineTypes.endp = _endpos_xss_;
            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 = e;
                MenhirLib.EngineTypes.startp = _startpos_e_;
                MenhirLib.EngineTypes.endp = _endpos_e_;
                MenhirLib.EngineTypes.next = _menhir_stack;
              };
            };
          };
        } = _menhir_stack in
        let _2 : unit = Obj.magic _2 in
        let xss : (Parsetree.toplevel_phrase list list) = Obj.magic xss in
        let _1 : (Parsetree.attributes) = Obj.magic _1 in
        let e : (Parsetree.expression) = Obj.magic e in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos_e_ in
        let _endpos = _endpos__2_ in
        let _v : (Parsetree.toplevel_phrase list) = let _1 =
          let _1 =
            let ys = 
# 260 "<standard.mly>"
    ( List.flatten xss )
# 56443 "parsing/parser.ml"
             in
            let xs =
              let _1 =
                let x =
                  let _1 =
                    let _1 =
                      let attrs = 
# 4058 "parsing/parser.mly"
    ( _1 )
# 56453 "parsing/parser.ml"
                       in
                      
# 1488 "parsing/parser.mly"
    ( mkstrexp e attrs )
# 56458 "parsing/parser.ml"
                      
                    in
                    
# 974 "parsing/parser.mly"
  ( Ptop_def [_1] )
# 56464 "parsing/parser.ml"
                    
                  in
                  let _startpos__1_ = _startpos_e_ in
                  let _startpos = _startpos__1_ in
                  
# 972 "parsing/parser.mly"
  ( text_def _startpos @ [_1] )
# 56472 "parsing/parser.ml"
                  
                in
                
# 1032 "parsing/parser.mly"
    ( x )
# 56478 "parsing/parser.ml"
                
              in
              
# 1283 "parsing/parser.mly"
    ( _1 )
# 56484 "parsing/parser.ml"
              
            in
            
# 267 "<standard.mly>"
    ( xs @ ys )
# 56490 "parsing/parser.ml"
            
          in
          let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in
          let _endpos = _endpos__1_ in
          let _startpos = _startpos__1_ in
          
# 956 "parsing/parser.mly"
                              ( extra_def _startpos _endpos _1 )
# 56499 "parsing/parser.ml"
          
        in
        
# 1276 "parsing/parser.mly"
    ( _1 )
# 56505 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Asttypes.label) = 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 : (Asttypes.label) = 
# 3746 "parsing/parser.mly"
                              ( _2 )
# 56544 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Asttypes.label) = 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 : (Asttypes.label) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
        let _loc__1_ = (_startpos__1_, _endpos__1_) in
        
# 3747 "parsing/parser.mly"
                              ( unclosed "(" _loc__1_ ")" _loc__3_ )
# 56585 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.label) = let _loc__2_ = (_startpos__2_, _endpos__2_) in
        
# 3748 "parsing/parser.mly"
                              ( expecting _loc__2_ "operator" )
# 56618 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        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 : (Asttypes.label) = let _loc__3_ = (_startpos__3_, _endpos__3_) in
        
# 3749 "parsing/parser.mly"
                              ( expecting _loc__3_ "module-expr" )
# 56658 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (
# 778 "parsing/parser.mly"
       (string)
# 56679 "parsing/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 : (Asttypes.label) = 
# 3752 "parsing/parser.mly"
                              ( _1 )
# 56687 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Asttypes.label) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Asttypes.label) = 
# 3753 "parsing/parser.mly"
                              ( _1 )
# 56712 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = _1;
          MenhirLib.EngineTypes.startp = _startpos__1_;
          MenhirLib.EngineTypes.endp = _endpos__1_;
          MenhirLib.EngineTypes.next = _menhir_stack;
        } = _menhir_stack in
        let _1 : (Longident.t) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos__1_ in
        let _v : (Longident.t) = 
# 3821 "parsing/parser.mly"
                                           ( _1 )
# 56737 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = ty;
          MenhirLib.EngineTypes.startp = _startpos_ty_;
          MenhirLib.EngineTypes.endp = _endpos_ty_;
          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 = mutable_;
                MenhirLib.EngineTypes.startp = _startpos_mutable__;
                MenhirLib.EngineTypes.endp = _endpos_mutable__;
                MenhirLib.EngineTypes.next = {
                  MenhirLib.EngineTypes.state = _menhir_s;
                  MenhirLib.EngineTypes.semv = _1;
                  MenhirLib.EngineTypes.startp = _startpos__1_;
                  MenhirLib.EngineTypes.endp = _endpos__1_;
                  MenhirLib.EngineTypes.next = _menhir_stack;
                };
              };
            };
          };
        } = _menhir_stack in
        let ty : (Parsetree.core_type) = Obj.magic ty in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined1 : (
# 778 "parsing/parser.mly"
       (string)
# 56784 "parsing/parser.ml"
        ) = Obj.magic _1_inlined1 in
        let mutable_ : (Asttypes.mutable_flag) = Obj.magic mutable_ in
        let _1 : (Parsetree.attributes) = Obj.magic _1 in
        let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in
        let _startpos = _startpos__1_ in
        let _endpos = _endpos_ty_ in
        let _v : ((Asttypes.label Asttypes.loc * Asttypes.mutable_flag *
   Parsetree.class_field_kind) *
  Parsetree.attributes) = let label =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 56798 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 56806 "parsing/parser.ml"
          
        in
        let attrs = 
# 4062 "parsing/parser.mly"
    ( _1 )
# 56812 "parsing/parser.ml"
         in
        let _1 = 
# 3961 "parsing/parser.mly"
                                                ( Fresh )
# 56817 "parsing/parser.ml"
         in
        
# 2068 "parsing/parser.mly"
      ( (label, mutable_, Cfk_virtual ty), attrs )
# 56822 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _menhir_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 : (Parsetree.expression) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined1 : (
# 778 "parsing/parser.mly"
       (string)
# 56869 "parsing/parser.ml"
        ) = Obj.magic _1_inlined1 in
        let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in
        let _1 : (Parsetree.attributes) = 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 : ((Asttypes.label Asttypes.loc * Asttypes.mutable_flag *
   Parsetree.class_field_kind) *
  Parsetree.attributes) = let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 56883 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 56891 "parsing/parser.ml"
          
        in
        let _2 = 
# 4062 "parsing/parser.mly"
    ( _1 )
# 56897 "parsing/parser.ml"
         in
        let _1 = 
# 3964 "parsing/parser.mly"
                                                ( Fresh )
# 56902 "parsing/parser.ml"
         in
        
# 2070 "parsing/parser.mly"
      ( (_4, _3, Cfk_concrete (_1, _6)), _2 )
# 56907 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined2;
              MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
              MenhirLib.EngineTypes.endp = _endpos__1_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 = _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 _6 : (Parsetree.expression) = Obj.magic _6 in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 56960 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in
        let _1_inlined1 : (Parsetree.attributes) = 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__6_ in
        let _v : ((Asttypes.label Asttypes.loc * Asttypes.mutable_flag *
   Parsetree.class_field_kind) *
  Parsetree.attributes) = let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 56975 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 56983 "parsing/parser.ml"
          
        in
        let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 56991 "parsing/parser.ml"
          
        in
        let _1 = 
# 3965 "parsing/parser.mly"
                                                ( Override )
# 56997 "parsing/parser.ml"
         in
        
# 2070 "parsing/parser.mly"
      ( (_4, _3, Cfk_concrete (_1, _6)), _2 )
# 57002 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _menhir_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 : (Parsetree.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Parsetree.type_constraint) = Obj.magic _5 in
        let _1_inlined1 : (
# 778 "parsing/parser.mly"
       (string)
# 57056 "parsing/parser.ml"
        ) = Obj.magic _1_inlined1 in
        let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in
        let _1 : (Parsetree.attributes) = 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 : ((Asttypes.label Asttypes.loc * Asttypes.mutable_flag *
   Parsetree.class_field_kind) *
  Parsetree.attributes) = let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 57070 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 57078 "parsing/parser.ml"
          
        in
        let _startpos__4_ = _startpos__1_inlined1_ in
        let _2 = 
# 4062 "parsing/parser.mly"
    ( _1 )
# 57085 "parsing/parser.ml"
         in
        let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in
        let _1 = 
# 3964 "parsing/parser.mly"
                                                ( Fresh )
# 57091 "parsing/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
          if _startpos__2_ != _endpos__2_ then
            _startpos__2_
          else
            if _startpos__3_ != _endpos__3_ then
              _startpos__3_
            else
              _startpos__4_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2073 "parsing/parser.mly"
      ( let e = mkexp_constraint ~loc:_sloc _7 _5 in
        (_4, _3, Cfk_concrete (_1, e)), _2
      )
# 57111 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined2;
                MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
                MenhirLib.EngineTypes.endp = _endpos__1_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 = _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 _7 : (Parsetree.expression) = Obj.magic _7 in
        let _6 : unit = Obj.magic _6 in
        let _5 : (Parsetree.type_constraint) = Obj.magic _5 in
        let _1_inlined2 : (
# 778 "parsing/parser.mly"
       (string)
# 57171 "parsing/parser.ml"
        ) = Obj.magic _1_inlined2 in
        let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in
        let _1_inlined1 : (Parsetree.attributes) = 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__7_ in
        let _v : ((Asttypes.label Asttypes.loc * Asttypes.mutable_flag *
   Parsetree.class_field_kind) *
  Parsetree.attributes) = let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _1 = 
# 3720 "parsing/parser.mly"
                                                ( _1 )
# 57186 "parsing/parser.ml"
           in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 57194 "parsing/parser.ml"
          
        in
        let _startpos__4_ = _startpos__1_inlined2_ in
        let _2 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 57203 "parsing/parser.ml"
          
        in
        let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in
        let _1 = 
# 3965 "parsing/parser.mly"
                                                ( Override )
# 57210 "parsing/parser.ml"
         in
        let _endpos = _endpos__7_ in
        let _symbolstartpos = if _startpos__1_ != _endpos__1_ then
          _startpos__1_
        else
          if _startpos__2_ != _endpos__2_ then
            _startpos__2_
          else
            if _startpos__3_ != _endpos__3_ then
              _startpos__3_
            else
              _startpos__4_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 2073 "parsing/parser.mly"
      ( let e = mkexp_constraint ~loc:_sloc _7 _5 in
        (_4, _3, Cfk_concrete (_1, e)), _2
      )
# 57229 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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_inlined3;
          MenhirLib.EngineTypes.startp = _startpos__1_inlined3_;
          MenhirLib.EngineTypes.endp = _endpos__1_inlined3_;
          MenhirLib.EngineTypes.next = {
            MenhirLib.EngineTypes.state = _;
            MenhirLib.EngineTypes.semv = ty;
            MenhirLib.EngineTypes.startp = _startpos_ty_;
            MenhirLib.EngineTypes.endp = _endpos_ty_;
            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_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 = ext;
                    MenhirLib.EngineTypes.startp = _startpos_ext_;
                    MenhirLib.EngineTypes.endp = _endpos_ext_;
                    MenhirLib.EngineTypes.next = {
                      MenhirLib.EngineTypes.state = _menhir_s;
                      MenhirLib.EngineTypes.semv = _1;
                      MenhirLib.EngineTypes.startp = _startpos__1_;
                      MenhirLib.EngineTypes.endp = _endpos__1_;
                      MenhirLib.EngineTypes.next = _menhir_stack;
                    };
                  };
                };
              };
            };
          };
        } = _menhir_stack in
        let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in
        let ty : (Parsetree.core_type) = Obj.magic ty in
        let _5 : unit = Obj.magic _5 in
        let _1_inlined2 : (Asttypes.label) = Obj.magic _1_inlined2 in
        let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in
        let ext : (string Asttypes.loc option) = Obj.magic ext in
        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_inlined3_ in
        let _v : (Parsetree.value_description * string Asttypes.loc option) = let attrs2 =
          let _1 = _1_inlined3 in
          
# 4058 "parsing/parser.mly"
    ( _1 )
# 57298 "parsing/parser.ml"
          
        in
        let _endpos_attrs2_ = _endpos__1_inlined3_ in
        let id =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 57310 "parsing/parser.ml"
          
        in
        let attrs1 =
          let _1 = _1_inlined1 in
          
# 4062 "parsing/parser.mly"
    ( _1 )
# 57318 "parsing/parser.ml"
          
        in
        let _endpos = _endpos_attrs2_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3038 "parsing/parser.mly"
    ( let attrs = attrs1 @ attrs2 in
      let loc = make_loc _sloc in
      let docs = symbol_docs _sloc in
      Val.mk id ty ~attrs ~loc ~docs,
      ext )
# 57331 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.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 : (Asttypes.virtual_flag) = 
# 3925 "parsing/parser.mly"
                                                ( Concrete )
# 57349 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.virtual_flag) = 
# 3926 "parsing/parser.mly"
                                                ( Virtual )
# 57374 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.mutable_flag) = 
# 3949 "parsing/parser.mly"
            ( Immutable )
# 57399 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.mutable_flag) = 
# 3950 "parsing/parser.mly"
                    ( Mutable )
# 57431 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.mutable_flag) = 
# 3951 "parsing/parser.mly"
                    ( Mutable )
# 57463 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.private_flag) = 
# 3956 "parsing/parser.mly"
            ( Public )
# 57488 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.private_flag) = 
# 3957 "parsing/parser.mly"
                    ( Private )
# 57520 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.private_flag) = 
# 3958 "parsing/parser.mly"
                    ( Private )
# 57552 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _1_inlined2;
            MenhirLib.EngineTypes.startp = _startpos__1_inlined2_;
            MenhirLib.EngineTypes.endp = _endpos__1_inlined2_;
            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 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in
        let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in
        let _4 : (Asttypes.private_flag) = Obj.magic _4 in
        let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in
        let _2 : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) 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_xs_ in
        let _v : (Parsetree.with_constraint) = let _6 =
          let _1 =
            let xs = 
# 253 "<standard.mly>"
    ( List.rev xs )
# 57614 "parsing/parser.ml"
             in
            
# 1044 "parsing/parser.mly"
    ( xs )
# 57619 "parsing/parser.ml"
            
          in
          
# 3138 "parsing/parser.mly"
    ( _1 )
# 57625 "parsing/parser.ml"
          
        in
        let _endpos__6_ = _endpos_xs_ in
        let _5 =
          let _1 = _1_inlined2 in
          
# 3460 "parsing/parser.mly"
    ( _1 )
# 57634 "parsing/parser.ml"
          
        in
        let _3 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 57645 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__6_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3379 "parsing/parser.mly"
      ( let lident = loc_last _3 in
        Pwith_type
          (_3,
           (Type.mk lident
              ~params:_2
              ~cstrs:_6
              ~manifest:_5
              ~priv:_4
              ~loc:(make_loc _sloc))) )
# 57662 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in
        let _2 : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) 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__1_inlined2_ in
        let _v : (Parsetree.with_constraint) = let _5 =
          let _1 = _1_inlined2 in
          
# 3460 "parsing/parser.mly"
    ( _1 )
# 57717 "parsing/parser.ml"
          
        in
        let _endpos__5_ = _endpos__1_inlined2_ in
        let _3 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 57729 "parsing/parser.ml"
          
        in
        let _endpos = _endpos__5_ in
        let _symbolstartpos = _startpos__1_ in
        let _sloc = (_symbolstartpos, _endpos) in
        
# 3392 "parsing/parser.mly"
      ( let lident = loc_last _3 in
        Pwith_typesubst
         (_3,
           (Type.mk lident
              ~params:_2
              ~manifest:_5
              ~loc:(make_loc _sloc))) )
# 57744 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined1 : (Longident.t) = 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_inlined2_ in
        let _v : (Parsetree.with_constraint) = let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 57795 "parsing/parser.ml"
          
        in
        let _2 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 57806 "parsing/parser.ml"
          
        in
        
# 3400 "parsing/parser.mly"
      ( Pwith_module (_2, _4) )
# 57812 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 = _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 _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in
        let _3 : unit = Obj.magic _3 in
        let _1_inlined1 : (Longident.t) = 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_inlined2_ in
        let _v : (Parsetree.with_constraint) = let _4 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 57863 "parsing/parser.ml"
          
        in
        let _2 =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 57874 "parsing/parser.ml"
          
        in
        
# 3402 "parsing/parser.mly"
      ( Pwith_modsubst (_2, _4) )
# 57880 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = rhs;
          MenhirLib.EngineTypes.startp = _startpos_rhs_;
          MenhirLib.EngineTypes.endp = _endpos_rhs_;
          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 rhs : (Parsetree.module_type) = Obj.magic rhs in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined1 : (Longident.t) = 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_rhs_ in
        let _v : (Parsetree.with_constraint) = let l =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 57938 "parsing/parser.ml"
          
        in
        
# 3404 "parsing/parser.mly"
      ( Pwith_modtype (l, rhs) )
# 57944 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _;
          MenhirLib.EngineTypes.semv = rhs;
          MenhirLib.EngineTypes.startp = _startpos_rhs_;
          MenhirLib.EngineTypes.endp = _endpos_rhs_;
          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 rhs : (Parsetree.module_type) = Obj.magic rhs in
        let _4 : unit = Obj.magic _4 in
        let _1_inlined1 : (Longident.t) = 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_rhs_ in
        let _v : (Parsetree.with_constraint) = let l =
          let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in
          let _endpos = _endpos__1_ in
          let _symbolstartpos = _startpos__1_ in
          let _sloc = (_symbolstartpos, _endpos) in
          
# 960 "parsing/parser.mly"
    ( mkrhs _1 _sloc )
# 58002 "parsing/parser.ml"
          
        in
        
# 3406 "parsing/parser.mly"
      ( Pwith_modtypesubst (l, rhs) )
# 58008 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
      (fun _menhir_env ->
        let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in
        let {
          MenhirLib.EngineTypes.state = _menhir_s;
          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 : (Asttypes.private_flag) = 
# 3409 "parsing/parser.mly"
                   ( Public )
# 58033 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          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 : (Asttypes.private_flag) = 
# 3410 "parsing/parser.mly"
                   ( Private )
# 58065 "parsing/parser.ml"
         in
        {
          MenhirLib.EngineTypes.state = _menhir_s;
          MenhirLib.EngineTypes.semv = Obj.repr _v;
          MenhirLib.EngineTypes.startp = _startpos;
          MenhirLib.EngineTypes.endp = _endpos;
          MenhirLib.EngineTypes.next = _menhir_stack;
        });
    |]
  
  and trace =
    None
  
end

module MenhirInterpreter = struct
  
  module ET = MenhirLib.TableInterpreter.MakeEngineTable (Tables)
  
  module TI = MenhirLib.Engine.Make (ET)
  
  include TI
  
end

let use_file =
  fun lexer lexbuf ->
    (Obj.magic (MenhirInterpreter.entry `Simplified 2052 lexer lexbuf) : (Parsetree.toplevel_phrase list))

and toplevel_phrase =
  fun lexer lexbuf ->
    (Obj.magic (MenhirInterpreter.entry `Simplified 2032 lexer lexbuf) : (Parsetree.toplevel_phrase))

and parse_val_longident =
  fun lexer lexbuf ->
    (Obj.magic (MenhirInterpreter.entry `Simplified 2026 lexer lexbuf) : (Longident.t))

and parse_pattern =
  fun lexer lexbuf ->
    (Obj.magic (MenhirInterpreter.entry `Simplified 2022 lexer lexbuf) : (Parsetree.pattern))

and parse_mty_longident =
  fun lexer lexbuf ->
    (Obj.magic (MenhirInterpreter.entry `Simplified 2018 lexer lexbuf) : (Longident.t))

and parse_module_type =
  fun lexer lexbuf ->
    (Obj.magic (MenhirInterpreter.entry `Simplified 2014 lexer lexbuf) : (Parsetree.module_type))

and parse_module_expr =
  fun lexer lexbuf ->
    (Obj.magic (MenhirInterpreter.entry `Simplified 2010 lexer lexbuf) : (Parsetree.module_expr))

and parse_mod_longident =
  fun lexer lexbuf ->
    (Obj.magic (MenhirInterpreter.entry `Simplified 2006 lexer lexbuf) : (Longident.t))

and parse_mod_ext_longident =
  fun lexer lexbuf ->
    (Obj.magic (MenhirInterpreter.entry `Simplified 2002 lexer lexbuf) : (Longident.t))

and parse_expression =
  fun lexer lexbuf ->
    (Obj.magic (MenhirInterpreter.entry `Simplified 1998 lexer lexbuf) : (Parsetree.expression))

and parse_core_type =
  fun lexer lexbuf ->
    (Obj.magic (MenhirInterpreter.entry `Simplified 1994 lexer lexbuf) : (Parsetree.core_type))

and parse_constr_longident =
  fun lexer lexbuf ->
    (Obj.magic (MenhirInterpreter.entry `Simplified 1990 lexer lexbuf) : (Longident.t))

and parse_any_longident =
  fun lexer lexbuf ->
    (Obj.magic (MenhirInterpreter.entry `Simplified 1972 lexer lexbuf) : (Longident.t))

and interface =
  fun lexer lexbuf ->
    (Obj.magic (MenhirInterpreter.entry `Simplified 1968 lexer lexbuf) : (Parsetree.signature))

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

module Incremental = struct
  
  let use_file =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 2052 initial_position) : (Parsetree.toplevel_phrase list) MenhirInterpreter.checkpoint)
  
  and toplevel_phrase =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 2032 initial_position) : (Parsetree.toplevel_phrase) MenhirInterpreter.checkpoint)
  
  and parse_val_longident =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 2026 initial_position) : (Longident.t) MenhirInterpreter.checkpoint)
  
  and parse_pattern =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 2022 initial_position) : (Parsetree.pattern) MenhirInterpreter.checkpoint)
  
  and parse_mty_longident =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 2018 initial_position) : (Longident.t) MenhirInterpreter.checkpoint)
  
  and parse_module_type =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 2014 initial_position) : (Parsetree.module_type) MenhirInterpreter.checkpoint)
  
  and parse_module_expr =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 2010 initial_position) : (Parsetree.module_expr) MenhirInterpreter.checkpoint)
  
  and parse_mod_longident =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 2006 initial_position) : (Longident.t) MenhirInterpreter.checkpoint)
  
  and parse_mod_ext_longident =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 2002 initial_position) : (Longident.t) MenhirInterpreter.checkpoint)
  
  and parse_expression =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 1998 initial_position) : (Parsetree.expression) MenhirInterpreter.checkpoint)
  
  and parse_core_type =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 1994 initial_position) : (Parsetree.core_type) MenhirInterpreter.checkpoint)
  
  and parse_constr_longident =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 1990 initial_position) : (Longident.t) MenhirInterpreter.checkpoint)
  
  and parse_any_longident =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 1972 initial_position) : (Longident.t) MenhirInterpreter.checkpoint)
  
  and interface =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 1968 initial_position) : (Parsetree.signature) MenhirInterpreter.checkpoint)
  
  and implementation =
    fun initial_position ->
      (Obj.magic (MenhirInterpreter.start 0 initial_position) : (Parsetree.structure) MenhirInterpreter.checkpoint)
  
end

# 4100 "parsing/parser.mly"
  

# 58218 "parsing/parser.ml"

# 269 "<standard.mly>"
  

# 58223 "parsing/parser.ml"
