[{ s =
   (DefStmt
      ({ name =
         (EN
            (Id (("Foo", _),
               { id_resolved = ref (None);
                 id_resolved_alternatives = ref ([]); id_type = ref (None);
                 id_svalue = ref (Unknown); id_flags = ref (0);
                 id_info_id = _ }
               )));
         attrs = [(KeywordAttr (EnumClass, _))]; tparams = None },
       (ClassDef
          { ckind = (Class, _); cextends = []; cimplements = [];
            cmixins = []; cparams = (_, [], _); cbody = (_, [], _) })));
   s_range = None };
  { s =
    (DefStmt
       ({ name =
          (EN
             (Id (("Foo", _),
                { id_resolved = ref (None);
                  id_resolved_alternatives = ref ([]); id_type = ref (None);
                  id_svalue = ref (Unknown); id_flags = ref (0);
                  id_info_id = _ }
                )));
          attrs = [(KeywordAttr (EnumClass, _))]; tparams = None },
        (ClassDef
           { ckind = (Class, _); cextends = []; cimplements = [];
             cmixins = []; cparams = (_, [], _);
             cbody =
             (_,
              [(F
                  { s =
                    (DefStmt
                       ({ name =
                          (EN
                             (Id (("x", _),
                                { id_resolved = ref ((Some (EnclosedVar, _)));
                                  id_resolved_alternatives = ref ([]);
                                  id_type =
                                  ref ((Some { t =
                                               (TyN
                                                  (Id (("int", _),
                                                     { 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 = [] }));
                                  id_svalue = ref (Unknown);
                                  id_flags = ref (4); id_info_id = _ }
                                )));
                          attrs = [(KeywordAttr (Const, _))]; tparams = None
                          },
                        (VarDef
                           { vinit =
                             (Some { e = (L (Int ((Some 2L), _))); e_id = 0;
                                     e_range = None;
                                     is_implicit_return = false;
                                     facts = <opaque> });
                             vtype = None; vtok = None })));
                    s_range = None })
                ],
              _)
             })));
    s_range = None };
  { s =
    (DefStmt
       ({ name =
          (EN
             (Id (("Foo", _),
                { id_resolved = ref (None);
                  id_resolved_alternatives = ref ([]); id_type = ref (None);
                  id_svalue = ref (Unknown); id_flags = ref (0);
                  id_info_id = _ }
                )));
          attrs =
          [(KeywordAttr (EnumClass, _));
            (NamedAttr (_,
               (Id (("foo", _),
                  { id_resolved = ref (None);
                    id_resolved_alternatives = ref ([]);
                    id_type = ref (None); id_svalue = ref (Unknown);
                    id_flags = ref (0); id_info_id = _ }
                  )),
               (_, [], _)));
            (KeywordAttr (Private, _))];
          tparams =
          (Some (_,
                 [(TP
                     { tp_id = ("T", _); tp_attrs = []; tp_bounds = [];
                       tp_default = None; tp_variance = (Some (Covariant, _))
                       })
                   ],
                 _))
          },
        (ClassDef
           { ckind = (Class, _); cextends = []; cimplements = [];
             cmixins = [];
             cparams =
             (_,
              [(Param
                  { pname = (Some ("x", _));
                    ptype =
                    (Some { t =
                            (TyN
                               (Id (("Int", _),
                                  { 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 = [] });
                    pdefault = None; pattrs = [];
                    pinfo =
                    { id_resolved = ref ((Some (Parameter, _)));
                      id_resolved_alternatives = ref ([]);
                      id_type =
                      ref ((Some { t =
                                   (TyN
                                      (Id (("Int", _),
                                         { 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 = [] }));
                      id_svalue = ref (Unknown); id_flags = ref (0);
                      id_info_id = _ }
                    });
                (Param
                   { pname = (Some ("y", _));
                     ptype =
                     (Some { t =
                             (TyN
                                (Id (("String", _),
                                   { 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 = [] });
                     pdefault = None; pattrs = [];
                     pinfo =
                     { id_resolved = ref ((Some (Parameter, _)));
                       id_resolved_alternatives = ref ([]);
                       id_type =
                       ref ((Some { t =
                                    (TyN
                                       (Id (("String", _),
                                          { 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 = [] }));
                       id_svalue = ref (Unknown); id_flags = ref (0);
                       id_info_id = _ }
                     })
                ],
              _);
             cbody = (_, [], _) })));
    s_range = None };
  { s =
    (DefStmt
       ({ name =
          (EN
             (Id (("Foo", _),
                { id_resolved = ref (None);
                  id_resolved_alternatives = ref ([]); id_type = ref (None);
                  id_svalue = ref (Unknown); id_flags = ref (0);
                  id_info_id = _ }
                )));
          attrs = [(KeywordAttr (EnumClass, _))]; tparams = None },
        (ClassDef
           { ckind = (Class, _); cextends = []; cimplements = [];
             cmixins = []; cparams = (_, [], _);
             cbody =
             (_,
              [(F
                  { s =
                    (DefStmt
                       ({ name =
                          (EN
                             (Id (("A", _),
                                { id_resolved = ref (None);
                                  id_resolved_alternatives = ref ([]);
                                  id_type = ref (None);
                                  id_svalue = ref (Unknown);
                                  id_flags = ref (0); id_info_id = _ }
                                )));
                          attrs =
                          [(NamedAttr (_,
                              (Id (("foo", _),
                                 { id_resolved = ref (None);
                                   id_resolved_alternatives = ref ([]);
                                   id_type = ref (None);
                                   id_svalue = ref (Unknown);
                                   id_flags = ref (0); id_info_id = _ }
                                 )),
                              (_, [], _)));
                            (KeywordAttr (Private, _))];
                          tparams = None },
                        (EnumEntryDef { ee_args = None; ee_body = None })));
                    s_range = None })
                ],
              _)
             })));
    s_range = None };
  { s =
    (DefStmt
       ({ name =
          (EN
             (Id (("Foo", _),
                { id_resolved = ref (None);
                  id_resolved_alternatives = ref ([]); id_type = ref (None);
                  id_svalue = ref (Unknown); id_flags = ref (0);
                  id_info_id = _ }
                )));
          attrs = [(KeywordAttr (EnumClass, _))]; tparams = None },
        (ClassDef
           { ckind = (Class, _); cextends = []; cimplements = [];
             cmixins = []; cparams = (_, [], _);
             cbody =
             (_,
              [(F
                  { s =
                    (DefStmt
                       ({ name =
                          (EN
                             (Id (("A", _),
                                { id_resolved = ref (None);
                                  id_resolved_alternatives = ref ([]);
                                  id_type = ref (None);
                                  id_svalue = ref (Unknown);
                                  id_flags = ref (0); id_info_id = _ }
                                )));
                          attrs = []; tparams = None },
                        (EnumEntryDef { ee_args = None; ee_body = None })));
                    s_range = None });
                (F
                   { s =
                     (DefStmt
                        ({ name =
                           (EN
                              (Id (("B", _),
                                 { id_resolved = ref (None);
                                   id_resolved_alternatives = ref ([]);
                                   id_type = ref (None);
                                   id_svalue = ref (Unknown);
                                   id_flags = ref (0); id_info_id = _ }
                                 )));
                           attrs = []; tparams = None },
                         (EnumEntryDef { ee_args = None; ee_body = None })));
                     s_range = None });
                (F
                   { s =
                     (DefStmt
                        ({ name =
                           (EN
                              (Id (("C", _),
                                 { id_resolved = ref (None);
                                   id_resolved_alternatives = ref ([]);
                                   id_type = ref (None);
                                   id_svalue = ref (Unknown);
                                   id_flags = ref (0); id_info_id = _ }
                                 )));
                           attrs = []; tparams = None },
                         (EnumEntryDef { ee_args = None; ee_body = None })));
                     s_range = None })
                ],
              _)
             })));
    s_range = None };
  { s =
    (DefStmt
       ({ name =
          (EN
             (Id (("Foo", _),
                { id_resolved = ref (None);
                  id_resolved_alternatives = ref ([]); id_type = ref (None);
                  id_svalue = ref (Unknown); id_flags = ref (0);
                  id_info_id = _ }
                )));
          attrs = [(KeywordAttr (EnumClass, _))]; tparams = None },
        (ClassDef
           { ckind = (Class, _); cextends = []; cimplements = [];
             cmixins = []; cparams = (_, [], _);
             cbody =
             (_,
              [(F
                  { s =
                    (DefStmt
                       ({ name =
                          (EN
                             (Id (("A", _),
                                { id_resolved = ref (None);
                                  id_resolved_alternatives = ref ([]);
                                  id_type = ref (None);
                                  id_svalue = ref (Unknown);
                                  id_flags = ref (0); id_info_id = _ }
                                )));
                          attrs =
                          [(NamedAttr (_,
                              (Id (("foo", _),
                                 { id_resolved = ref (None);
                                   id_resolved_alternatives = ref ([]);
                                   id_type = ref (None);
                                   id_svalue = ref (Unknown);
                                   id_flags = ref (0); id_info_id = _ }
                                 )),
                              (_, [], _)));
                            (KeywordAttr (Private, _))];
                          tparams =
                          (Some (_,
                                 [(TP
                                     { tp_id = ("T", _); tp_attrs = [];
                                       tp_bounds = []; tp_default = None;
                                       tp_variance = (Some (Covariant, _)) })
                                   ],
                                 _))
                          },
                        (EnumEntryDef
                           { ee_args =
                             (Some (_,
                                    [(OtherArg (("Param", _),
                                        [(Pa
                                            (Param
                                               { pname = (Some ("x", _));
                                                 ptype =
                                                 (Some { t =
                                                         (TyN
                                                            (Id (("Int", _),
                                                               { 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 = [] });
                                                 pdefault = None;
                                                 pattrs = [];
                                                 pinfo =
                                                 { id_resolved =
                                                   ref ((Some (Parameter, _)));
                                                   id_resolved_alternatives =
                                                   ref ([]);
                                                   id_type = ref (None);
                                                   id_svalue = ref (Unknown);
                                                   id_flags = ref (0);
                                                   id_info_id = _ }
                                                 }))
                                          ]
                                        ));
                                      (OtherArg (("Param", _),
                                         [(Pa
                                             (Param
                                                { pname = (Some ("y", _));
                                                  ptype =
                                                  (Some { t =
                                                          (TyN
                                                             (Id (("Int", _),
                                                                { 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 = [] });
                                                  pdefault = None;
                                                  pattrs = [];
                                                  pinfo =
                                                  { id_resolved =
                                                    ref ((Some (Parameter, _)));
                                                    id_resolved_alternatives =
                                                    ref ([]);
                                                    id_type = ref (None);
                                                    id_svalue = ref (Unknown);
                                                    id_flags = ref (0);
                                                    id_info_id = _ }
                                                  }))
                                           ]
                                         ))
                                      ],
                                    _));
                             ee_body = None })));
                    s_range = None });
                (F
                   { s =
                     (DefStmt
                        ({ name =
                           (EN
                              (Id (("A", _),
                                 { id_resolved = ref (None);
                                   id_resolved_alternatives = ref ([]);
                                   id_type = ref (None);
                                   id_svalue = ref (Unknown);
                                   id_flags = ref (0); id_info_id = _ }
                                 )));
                           attrs =
                           [(NamedAttr (_,
                               (Id (("foo", _),
                                  { id_resolved = ref (None);
                                    id_resolved_alternatives = ref ([]);
                                    id_type = ref (None);
                                    id_svalue = ref (Unknown);
                                    id_flags = ref (0); id_info_id = _ }
                                  )),
                               (_, [], _)));
                             (KeywordAttr (Private, _))];
                           tparams =
                           (Some (_,
                                  [(TP
                                      { tp_id = ("T", _); tp_attrs = [];
                                        tp_bounds = []; tp_default = None;
                                        tp_variance = (Some (Covariant, _)) })
                                    ],
                                  _))
                           },
                         (EnumEntryDef
                            { ee_args =
                              (Some (_,
                                     [(OtherArg (("Param", _),
                                         [(Pa
                                             (Param
                                                { pname = (Some ("x", _));
                                                  ptype =
                                                  (Some { t =
                                                          (TyN
                                                             (Id (("Int", _),
                                                                { 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 = [] });
                                                  pdefault = None;
                                                  pattrs = [];
                                                  pinfo =
                                                  { id_resolved =
                                                    ref ((Some (Parameter, _)));
                                                    id_resolved_alternatives =
                                                    ref ([]);
                                                    id_type = ref (None);
                                                    id_svalue = ref (Unknown);
                                                    id_flags = ref (0);
                                                    id_info_id = _ }
                                                  }))
                                           ]
                                         ));
                                       (OtherArg (("Param", _),
                                          [(Pa
                                              (Param
                                                 { pname = (Some ("y", _));
                                                   ptype =
                                                   (Some { t =
                                                           (TyN
                                                              (Id (
                                                                 ("Int", _),
                                                                 { 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 = [] });
                                                   pdefault = None;
                                                   pattrs = [];
                                                   pinfo =
                                                   { id_resolved =
                                                     ref ((Some (Parameter, _)));
                                                     id_resolved_alternatives =
                                                     ref ([]);
                                                     id_type = ref (None);
                                                     id_svalue =
                                                     ref (Unknown);
                                                     id_flags = ref (0);
                                                     id_info_id = _ }
                                                   }))
                                            ]
                                          ))
                                       ],
                                     _));
                              ee_body = None })));
                     s_range = None });
                (F
                   { s =
                     (DefStmt
                        ({ name =
                           (EN
                              (Id (("A", _),
                                 { id_resolved = ref (None);
                                   id_resolved_alternatives = ref ([]);
                                   id_type = ref (None);
                                   id_svalue = ref (Unknown);
                                   id_flags = ref (0); id_info_id = _ }
                                 )));
                           attrs = []; tparams = None },
                         (EnumEntryDef { ee_args = None; ee_body = None })));
                     s_range = None });
                (F
                   { s =
                     (DefStmt
                        ({ name =
                           (EN
                              (Id (("B", _),
                                 { id_resolved = ref (None);
                                   id_resolved_alternatives = ref ([]);
                                   id_type = ref (None);
                                   id_svalue = ref (Unknown);
                                   id_flags = ref (0); id_info_id = _ }
                                 )));
                           attrs = []; tparams = None },
                         (EnumEntryDef { ee_args = None; ee_body = None })));
                     s_range = None });
                (F
                   { s =
                     (DefStmt
                        ({ name =
                           (EN
                              (Id (("C", _),
                                 { id_resolved = ref (None);
                                   id_resolved_alternatives = ref ([]);
                                   id_type = ref (None);
                                   id_svalue = ref (Unknown);
                                   id_flags = ref (0); id_info_id = _ }
                                 )));
                           attrs = []; tparams = None },
                         (EnumEntryDef { ee_args = None; ee_body = None })));
                     s_range = None })
                ],
              _)
             })));
    s_range = None }
  ]