[{ s =
   (DirectiveStmt
      { d = (Package (_, [("foo", _); ("bar", _)])); d_attrs = [] });
   s_range = None };
  { s =
    (DirectiveStmt
       { d = (ImportAll (_, (DottedName [("foo", _)]), _)); d_attrs = [] });
    s_range = None };
  { s = (DirectiveStmt { d = (Package (_, [("A", _)])); d_attrs = [] });
    s_range = None };
  { 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 = [(KeywordAttr (RecordClass, _))]; tparams = None },
        (ClassDef
           { ckind = (Class, _); cextends = []; cimplements = [];
             cmixins = [];
             cparams =
             (_,
              [(Param
                  { pname = (Some ("x", _));
                    ptype =
                    (Some { t =
                            (TyN
                               (Id (("T1", _),
                                  { 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 (("T1", _),
                                         { 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 (("T2", _),
                                   { 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 (("T2", _),
                                          { 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 = (DirectiveStmt { d = (PackageEnd _); d_attrs = [] }); s_range = None
    }
  ]