[{ s =
   (DefStmt
      ({ name =
         (EN
            (Id (("Autoconfigure", _),
               { id_resolved = ref (None);
                 id_resolved_alternatives = ref ([]); id_type = ref (None);
                 id_svalue = ref (Unknown); id_flags = ref (2);
                 id_info_id = _ }
               )));
         attrs = []; tparams = None },
       (ClassDef
          { ckind = (Class, _); cextends = []; cimplements = [];
            cmixins = []; cparams = (_, [], _);
            cbody =
            (_,
             [(F
                 { s =
                   (DefStmt
                      ({ name =
                         (EN
                            (Id (("__construct", _),
                               { id_resolved = ref (None);
                                 id_resolved_alternatives = ref ([]);
                                 id_type = ref (None);
                                 id_svalue = ref (Unknown);
                                 id_flags = ref (2); id_info_id = _ }
                               )));
                         attrs = [(KeywordAttr (Public, _))]; tparams = None
                         },
                       (FuncDef
                          { fkind = (Method, _);
                            fparams =
                            (_,
                             [(Param
                                 { pname = (Some ("$tags", _));
                                   ptype =
                                   (Some { t =
                                           (TyQuestion (
                                              { t =
                                                (TyN
                                                   (Id (("array", _),
                                                      { id_resolved =
                                                        ref (None);
                                                        id_resolved_alternatives =
                                                        ref ([]);
                                                        id_type = ref (None);
                                                        id_svalue =
                                                        ref (Unknown);
                                                        id_flags = ref (0);
                                                        id_info_id = _ }
                                                      )));
                                                t_attrs = [] },
                                              _));
                                           t_attrs = [] });
                                   pdefault =
                                   (Some { e =
                                           (N
                                              (Id (("null", _),
                                                 { id_resolved = ref (None);
                                                   id_resolved_alternatives =
                                                   ref ([]);
                                                   id_type = ref (None);
                                                   id_svalue = ref (Unknown);
                                                   id_flags = ref (2);
                                                   id_info_id = _ }
                                                 )));
                                           e_id = 0; e_range = None;
                                           is_implicit_return = false;
                                           facts = <opaque> });
                                   pattrs = [];
                                   pinfo =
                                   { id_resolved =
                                     ref ((Some (Parameter, _)));
                                     id_resolved_alternatives = ref ([]);
                                     id_type =
                                     ref ((Some { t =
                                                  (TyQuestion (
                                                     { t =
                                                       (TyN
                                                          (Id (("array", _),
                                                             { id_resolved =
                                                               ref (None);
                                                               id_resolved_alternatives =
                                                               ref ([]);
                                                               id_type =
                                                               ref (None);
                                                               id_svalue =
                                                               ref (Unknown);
                                                               id_flags =
                                                               ref (0);
                                                               id_info_id = _
                                                               }
                                                             )));
                                                       t_attrs = [] },
                                                     _));
                                                  t_attrs = [] }));
                                     id_svalue = ref (Unknown);
                                     id_flags = ref (0); id_info_id = _ }
                                   });
                               (Param
                                  { pname = (Some ("$calls", _));
                                    ptype =
                                    (Some { t =
                                            (TyQuestion (
                                               { t =
                                                 (TyN
                                                    (Id (("array", _),
                                                       { id_resolved =
                                                         ref (None);
                                                         id_resolved_alternatives =
                                                         ref ([]);
                                                         id_type = ref (None);
                                                         id_svalue =
                                                         ref (Unknown);
                                                         id_flags = ref (0);
                                                         id_info_id = _ }
                                                       )));
                                                 t_attrs = [] },
                                               _));
                                            t_attrs = [] });
                                    pdefault =
                                    (Some { e =
                                            (N
                                               (Id (("null", _),
                                                  { id_resolved = ref (None);
                                                    id_resolved_alternatives =
                                                    ref ([]);
                                                    id_type = ref (None);
                                                    id_svalue = ref (Unknown);
                                                    id_flags = ref (2);
                                                    id_info_id = _ }
                                                  )));
                                            e_id = 0; e_range = None;
                                            is_implicit_return = false;
                                            facts = <opaque> });
                                    pattrs = [];
                                    pinfo =
                                    { id_resolved =
                                      ref ((Some (Parameter, _)));
                                      id_resolved_alternatives = ref ([]);
                                      id_type =
                                      ref ((Some { t =
                                                   (TyQuestion (
                                                      { t =
                                                        (TyN
                                                           (Id (("array", _),
                                                              { id_resolved =
                                                                ref (None);
                                                                id_resolved_alternatives =
                                                                ref (
                                                                []);
                                                                id_type =
                                                                ref (None);
                                                                id_svalue =
                                                                ref (Unknown);
                                                                id_flags =
                                                                ref (0);
                                                                id_info_id =
                                                                _ }
                                                              )));
                                                        t_attrs = [] },
                                                      _));
                                                   t_attrs = [] }));
                                      id_svalue = ref (Unknown);
                                      id_flags = ref (0); id_info_id = _ }
                                    });
                               (Param
                                  { pname = (Some ("$bind", _));
                                    ptype =
                                    (Some { t =
                                            (TyQuestion (
                                               { t =
                                                 (TyN
                                                    (Id (("array", _),
                                                       { id_resolved =
                                                         ref (None);
                                                         id_resolved_alternatives =
                                                         ref ([]);
                                                         id_type = ref (None);
                                                         id_svalue =
                                                         ref (Unknown);
                                                         id_flags = ref (0);
                                                         id_info_id = _ }
                                                       )));
                                                 t_attrs = [] },
                                               _));
                                            t_attrs = [] });
                                    pdefault =
                                    (Some { e =
                                            (N
                                               (Id (("null", _),
                                                  { id_resolved = ref (None);
                                                    id_resolved_alternatives =
                                                    ref ([]);
                                                    id_type = ref (None);
                                                    id_svalue = ref (Unknown);
                                                    id_flags = ref (2);
                                                    id_info_id = _ }
                                                  )));
                                            e_id = 0; e_range = None;
                                            is_implicit_return = false;
                                            facts = <opaque> });
                                    pattrs = [];
                                    pinfo =
                                    { id_resolved =
                                      ref ((Some (Parameter, _)));
                                      id_resolved_alternatives = ref ([]);
                                      id_type =
                                      ref ((Some { t =
                                                   (TyQuestion (
                                                      { t =
                                                        (TyN
                                                           (Id (("array", _),
                                                              { id_resolved =
                                                                ref (None);
                                                                id_resolved_alternatives =
                                                                ref (
                                                                []);
                                                                id_type =
                                                                ref (None);
                                                                id_svalue =
                                                                ref (Unknown);
                                                                id_flags =
                                                                ref (0);
                                                                id_info_id =
                                                                _ }
                                                              )));
                                                        t_attrs = [] },
                                                      _));
                                                   t_attrs = [] }));
                                      id_svalue = ref (Unknown);
                                      id_flags = ref (0); id_info_id = _ }
                                    });
                               (Param
                                  { pname = (Some ("$lazy", _));
                                    ptype =
                                    (Some { t =
                                            (TyTuple
                                               (_,
                                                [{ t =
                                                   (TyN
                                                      (Id (("bool", _),
                                                         { id_resolved =
                                                           ref (None);
                                                           id_resolved_alternatives =
                                                           ref ([]);
                                                           id_type =
                                                           ref (None);
                                                           id_svalue =
                                                           ref (Unknown);
                                                           id_flags = ref (2);
                                                           id_info_id = _ }
                                                         )));
                                                   t_attrs = [] };
                                                  { t =
                                                    (TyN
                                                       (Id (("string", _),
                                                          { id_resolved =
                                                            ref (None);
                                                            id_resolved_alternatives =
                                                            ref ([]);
                                                            id_type =
                                                            ref (None);
                                                            id_svalue =
                                                            ref (Unknown);
                                                            id_flags =
                                                            ref (2);
                                                            id_info_id = _ }
                                                          )));
                                                    t_attrs = [] };
                                                  { t =
                                                    (TyN
                                                       (Id (("null", _),
                                                          { id_resolved =
                                                            ref (None);
                                                            id_resolved_alternatives =
                                                            ref ([]);
                                                            id_type =
                                                            ref (None);
                                                            id_svalue =
                                                            ref (Unknown);
                                                            id_flags =
                                                            ref (2);
                                                            id_info_id = _ }
                                                          )));
                                                    t_attrs = [] }
                                                  ],
                                                _));
                                            t_attrs = [] });
                                    pdefault =
                                    (Some { e =
                                            (N
                                               (Id (("null", _),
                                                  { id_resolved = ref (None);
                                                    id_resolved_alternatives =
                                                    ref ([]);
                                                    id_type = ref (None);
                                                    id_svalue = ref (Unknown);
                                                    id_flags = ref (2);
                                                    id_info_id = _ }
                                                  )));
                                            e_id = 0; e_range = None;
                                            is_implicit_return = false;
                                            facts = <opaque> });
                                    pattrs = [];
                                    pinfo =
                                    { id_resolved =
                                      ref ((Some (Parameter, _)));
                                      id_resolved_alternatives = ref ([]);
                                      id_type =
                                      ref ((Some { t =
                                                   (TyTuple
                                                      (_,
                                                       [{ t =
                                                          (TyN
                                                             (Id (
                                                                ("bool", _),
                                                                { id_resolved =
                                                                  ref (None);
                                                                  id_resolved_alternatives =
                                                                  ref (
                                                                  []);
                                                                  id_type =
                                                                  ref (None);
                                                                  id_svalue =
                                                                  ref (Unknown);
                                                                  id_flags =
                                                                  ref (2);
                                                                  id_info_id =
                                                                  _ }
                                                                )));
                                                          t_attrs = [] };
                                                         { t =
                                                           (TyN
                                                              (Id (
                                                                 ("string", _),
                                                                 { id_resolved =
                                                                   ref (None);
                                                                   id_resolved_alternatives =
                                                                   ref (
                                                                   []);
                                                                   id_type =
                                                                   ref (None);
                                                                   id_svalue =
                                                                   ref (Unknown);
                                                                   id_flags =
                                                                   ref (2);
                                                                   id_info_id =
                                                                   _ }
                                                                 )));
                                                           t_attrs = [] };
                                                         { t =
                                                           (TyN
                                                              (Id (
                                                                 ("null", _),
                                                                 { id_resolved =
                                                                   ref (None);
                                                                   id_resolved_alternatives =
                                                                   ref (
                                                                   []);
                                                                   id_type =
                                                                   ref (None);
                                                                   id_svalue =
                                                                   ref (Unknown);
                                                                   id_flags =
                                                                   ref (2);
                                                                   id_info_id =
                                                                   _ }
                                                                 )));
                                                           t_attrs = [] }
                                                         ],
                                                       _));
                                                   t_attrs = [] }));
                                      id_svalue = ref (Unknown);
                                      id_flags = ref (0); id_info_id = _ }
                                    });
                               (Param
                                  { pname = (Some ("$public", _));
                                    ptype =
                                    (Some { t =
                                            (TyQuestion (
                                               { t =
                                                 (TyN
                                                    (Id (("bool", _),
                                                       { id_resolved =
                                                         ref (None);
                                                         id_resolved_alternatives =
                                                         ref ([]);
                                                         id_type = ref (None);
                                                         id_svalue =
                                                         ref (Unknown);
                                                         id_flags = ref (2);
                                                         id_info_id = _ }
                                                       )));
                                                 t_attrs = [] },
                                               _));
                                            t_attrs = [] });
                                    pdefault =
                                    (Some { e =
                                            (N
                                               (Id (("null", _),
                                                  { id_resolved = ref (None);
                                                    id_resolved_alternatives =
                                                    ref ([]);
                                                    id_type = ref (None);
                                                    id_svalue = ref (Unknown);
                                                    id_flags = ref (2);
                                                    id_info_id = _ }
                                                  )));
                                            e_id = 0; e_range = None;
                                            is_implicit_return = false;
                                            facts = <opaque> });
                                    pattrs = [];
                                    pinfo =
                                    { id_resolved =
                                      ref ((Some (Parameter, _)));
                                      id_resolved_alternatives = ref ([]);
                                      id_type =
                                      ref ((Some { t =
                                                   (TyQuestion (
                                                      { t =
                                                        (TyN
                                                           (Id (("bool", _),
                                                              { id_resolved =
                                                                ref (None);
                                                                id_resolved_alternatives =
                                                                ref (
                                                                []);
                                                                id_type =
                                                                ref (None);
                                                                id_svalue =
                                                                ref (Unknown);
                                                                id_flags =
                                                                ref (2);
                                                                id_info_id =
                                                                _ }
                                                              )));
                                                        t_attrs = [] },
                                                      _));
                                                   t_attrs = [] }));
                                      id_svalue = ref (Unknown);
                                      id_flags = ref (0); id_info_id = _ }
                                    });
                               (Param
                                  { pname = (Some ("$shared", _));
                                    ptype =
                                    (Some { t =
                                            (TyQuestion (
                                               { t =
                                                 (TyN
                                                    (Id (("bool", _),
                                                       { id_resolved =
                                                         ref (None);
                                                         id_resolved_alternatives =
                                                         ref ([]);
                                                         id_type = ref (None);
                                                         id_svalue =
                                                         ref (Unknown);
                                                         id_flags = ref (2);
                                                         id_info_id = _ }
                                                       )));
                                                 t_attrs = [] },
                                               _));
                                            t_attrs = [] });
                                    pdefault =
                                    (Some { e =
                                            (N
                                               (Id (("null", _),
                                                  { id_resolved = ref (None);
                                                    id_resolved_alternatives =
                                                    ref ([]);
                                                    id_type = ref (None);
                                                    id_svalue = ref (Unknown);
                                                    id_flags = ref (2);
                                                    id_info_id = _ }
                                                  )));
                                            e_id = 0; e_range = None;
                                            is_implicit_return = false;
                                            facts = <opaque> });
                                    pattrs = [];
                                    pinfo =
                                    { id_resolved =
                                      ref ((Some (Parameter, _)));
                                      id_resolved_alternatives = ref ([]);
                                      id_type =
                                      ref ((Some { t =
                                                   (TyQuestion (
                                                      { t =
                                                        (TyN
                                                           (Id (("bool", _),
                                                              { id_resolved =
                                                                ref (None);
                                                                id_resolved_alternatives =
                                                                ref (
                                                                []);
                                                                id_type =
                                                                ref (None);
                                                                id_svalue =
                                                                ref (Unknown);
                                                                id_flags =
                                                                ref (2);
                                                                id_info_id =
                                                                _ }
                                                              )));
                                                        t_attrs = [] },
                                                      _));
                                                   t_attrs = [] }));
                                      id_svalue = ref (Unknown);
                                      id_flags = ref (0); id_info_id = _ }
                                    });
                               (Param
                                  { pname = (Some ("$autowire", _));
                                    ptype =
                                    (Some { t =
                                            (TyQuestion (
                                               { t =
                                                 (TyN
                                                    (Id (("bool", _),
                                                       { id_resolved =
                                                         ref (None);
                                                         id_resolved_alternatives =
                                                         ref ([]);
                                                         id_type = ref (None);
                                                         id_svalue =
                                                         ref (Unknown);
                                                         id_flags = ref (2);
                                                         id_info_id = _ }
                                                       )));
                                                 t_attrs = [] },
                                               _));
                                            t_attrs = [] });
                                    pdefault =
                                    (Some { e =
                                            (N
                                               (Id (("null", _),
                                                  { id_resolved = ref (None);
                                                    id_resolved_alternatives =
                                                    ref ([]);
                                                    id_type = ref (None);
                                                    id_svalue = ref (Unknown);
                                                    id_flags = ref (2);
                                                    id_info_id = _ }
                                                  )));
                                            e_id = 0; e_range = None;
                                            is_implicit_return = false;
                                            facts = <opaque> });
                                    pattrs = [];
                                    pinfo =
                                    { id_resolved =
                                      ref ((Some (Parameter, _)));
                                      id_resolved_alternatives = ref ([]);
                                      id_type =
                                      ref ((Some { t =
                                                   (TyQuestion (
                                                      { t =
                                                        (TyN
                                                           (Id (("bool", _),
                                                              { id_resolved =
                                                                ref (None);
                                                                id_resolved_alternatives =
                                                                ref (
                                                                []);
                                                                id_type =
                                                                ref (None);
                                                                id_svalue =
                                                                ref (Unknown);
                                                                id_flags =
                                                                ref (2);
                                                                id_info_id =
                                                                _ }
                                                              )));
                                                        t_attrs = [] },
                                                      _));
                                                   t_attrs = [] }));
                                      id_svalue = ref (Unknown);
                                      id_flags = ref (0); id_info_id = _ }
                                    });
                               (Param
                                  { pname = (Some ("$properties", _));
                                    ptype =
                                    (Some { t =
                                            (TyQuestion (
                                               { t =
                                                 (TyN
                                                    (Id (("array", _),
                                                       { id_resolved =
                                                         ref (None);
                                                         id_resolved_alternatives =
                                                         ref ([]);
                                                         id_type = ref (None);
                                                         id_svalue =
                                                         ref (Unknown);
                                                         id_flags = ref (0);
                                                         id_info_id = _ }
                                                       )));
                                                 t_attrs = [] },
                                               _));
                                            t_attrs = [] });
                                    pdefault =
                                    (Some { e =
                                            (N
                                               (Id (("null", _),
                                                  { id_resolved = ref (None);
                                                    id_resolved_alternatives =
                                                    ref ([]);
                                                    id_type = ref (None);
                                                    id_svalue = ref (Unknown);
                                                    id_flags = ref (2);
                                                    id_info_id = _ }
                                                  )));
                                            e_id = 0; e_range = None;
                                            is_implicit_return = false;
                                            facts = <opaque> });
                                    pattrs = [];
                                    pinfo =
                                    { id_resolved =
                                      ref ((Some (Parameter, _)));
                                      id_resolved_alternatives = ref ([]);
                                      id_type =
                                      ref ((Some { t =
                                                   (TyQuestion (
                                                      { t =
                                                        (TyN
                                                           (Id (("array", _),
                                                              { id_resolved =
                                                                ref (None);
                                                                id_resolved_alternatives =
                                                                ref (
                                                                []);
                                                                id_type =
                                                                ref (None);
                                                                id_svalue =
                                                                ref (Unknown);
                                                                id_flags =
                                                                ref (0);
                                                                id_info_id =
                                                                _ }
                                                              )));
                                                        t_attrs = [] },
                                                      _));
                                                   t_attrs = [] }));
                                      id_svalue = ref (Unknown);
                                      id_flags = ref (0); id_info_id = _ }
                                    });
                               (Param
                                  { pname = (Some ("$configurator", _));
                                    ptype =
                                    (Some { t =
                                            (TyTuple
                                               (_,
                                                [{ t =
                                                   (TyN
                                                      (Id (("array", _),
                                                         { id_resolved =
                                                           ref (None);
                                                           id_resolved_alternatives =
                                                           ref ([]);
                                                           id_type =
                                                           ref (None);
                                                           id_svalue =
                                                           ref (Unknown);
                                                           id_flags = ref (0);
                                                           id_info_id = _ }
                                                         )));
                                                   t_attrs = [] };
                                                  { t =
                                                    (TyN
                                                       (Id (("string", _),
                                                          { id_resolved =
                                                            ref (None);
                                                            id_resolved_alternatives =
                                                            ref ([]);
                                                            id_type =
                                                            ref (None);
                                                            id_svalue =
                                                            ref (Unknown);
                                                            id_flags =
                                                            ref (2);
                                                            id_info_id = _ }
                                                          )));
                                                    t_attrs = [] };
                                                  { t =
                                                    (TyN
                                                       (Id (("null", _),
                                                          { id_resolved =
                                                            ref (None);
                                                            id_resolved_alternatives =
                                                            ref ([]);
                                                            id_type =
                                                            ref (None);
                                                            id_svalue =
                                                            ref (Unknown);
                                                            id_flags =
                                                            ref (2);
                                                            id_info_id = _ }
                                                          )));
                                                    t_attrs = [] }
                                                  ],
                                                _));
                                            t_attrs = [] });
                                    pdefault =
                                    (Some { e =
                                            (N
                                               (Id (("null", _),
                                                  { id_resolved = ref (None);
                                                    id_resolved_alternatives =
                                                    ref ([]);
                                                    id_type = ref (None);
                                                    id_svalue = ref (Unknown);
                                                    id_flags = ref (2);
                                                    id_info_id = _ }
                                                  )));
                                            e_id = 0; e_range = None;
                                            is_implicit_return = false;
                                            facts = <opaque> });
                                    pattrs = [];
                                    pinfo =
                                    { id_resolved =
                                      ref ((Some (Parameter, _)));
                                      id_resolved_alternatives = ref ([]);
                                      id_type =
                                      ref ((Some { t =
                                                   (TyTuple
                                                      (_,
                                                       [{ t =
                                                          (TyN
                                                             (Id (
                                                                ("array", _),
                                                                { id_resolved =
                                                                  ref (None);
                                                                  id_resolved_alternatives =
                                                                  ref (
                                                                  []);
                                                                  id_type =
                                                                  ref (None);
                                                                  id_svalue =
                                                                  ref (Unknown);
                                                                  id_flags =
                                                                  ref (0);
                                                                  id_info_id =
                                                                  _ }
                                                                )));
                                                          t_attrs = [] };
                                                         { t =
                                                           (TyN
                                                              (Id (
                                                                 ("string", _),
                                                                 { id_resolved =
                                                                   ref (None);
                                                                   id_resolved_alternatives =
                                                                   ref (
                                                                   []);
                                                                   id_type =
                                                                   ref (None);
                                                                   id_svalue =
                                                                   ref (Unknown);
                                                                   id_flags =
                                                                   ref (2);
                                                                   id_info_id =
                                                                   _ }
                                                                 )));
                                                           t_attrs = [] };
                                                         { t =
                                                           (TyN
                                                              (Id (
                                                                 ("null", _),
                                                                 { id_resolved =
                                                                   ref (None);
                                                                   id_resolved_alternatives =
                                                                   ref (
                                                                   []);
                                                                   id_type =
                                                                   ref (None);
                                                                   id_svalue =
                                                                   ref (Unknown);
                                                                   id_flags =
                                                                   ref (2);
                                                                   id_info_id =
                                                                   _ }
                                                                 )));
                                                           t_attrs = [] }
                                                         ],
                                                       _));
                                                   t_attrs = [] }));
                                      id_svalue = ref (Unknown);
                                      id_flags = ref (0); id_info_id = _ }
                                    })
                               ],
                             _);
                            frettype = None;
                            fbody =
                            (FBStmt
                               { s = (Block (_, [], _)); s_range = None })
                            })));
                   s_range = None })
               ],
             _)
            })));
   s_range = None }
  ]