[{ s =
   (DirectiveStmt
      { d = (ImportAll (_, (DottedName [("System", _)]), _)); d_attrs = [] });
   s_range = None };
  { s =
    (DefStmt
       ({ name =
          (EN
             (Id (("HelloWorldTypeConstraints", _),
                { 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 },
        (ClassDef
           { ckind = (Class, _);
             cextends =
             [({ t =
                 (TyN
                    (Id (("IRunnable", _),
                       { 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 = [] },
               None)];
             cimplements = []; cmixins = []; cparams = (_, [], _);
             cbody =
             (_,
              [(F
                  { s =
                    (DefStmt
                       ({ name =
                          (EN
                             (Id (("Main", _),
                                { 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 (Public, _));
                            (KeywordAttr (Static, _))];
                          tparams = None },
                        (FuncDef
                           { fkind = (Method, _); fparams = (_, [], _);
                             frettype =
                             (Some { t =
                                     (TyN
                                        (Id (("void", _),
                                           { 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 = [] });
                             fbody =
                             (FBStmt
                                { s =
                                  (Block
                                     (_,
                                      [{ s =
                                         (DefStmt
                                            ({ name =
                                               (EN
                                                  (Id (("hello", _),
                                                     { id_resolved =
                                                       ref ((Some (LocalVar,
                                                                   _)));
                                                       id_resolved_alternatives =
                                                       ref ([]);
                                                       id_type = ref (None);
                                                       id_svalue =
                                                       ref (Unknown);
                                                       id_flags = ref (0);
                                                       id_info_id = _ }
                                                     )));
                                               attrs = []; tparams = None },
                                             (VarDef
                                                { vinit =
                                                  (Some { e =
                                                          (Call (
                                                             { e =
                                                               (N
                                                                  (IdQualified
                                                                    { name_last =
                                                                    ((
                                                                    "CreateT",
                                                                    _),
                                                                    (Some (
                                                                    _,
                                                                    [(TA
                                                                    { t =
                                                                    (TyN
                                                                    (Id (
                                                                    ("HelloWorldTypeConstraints",
                                                                    _),
                                                                    { 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 =
                                                                    [] })], _)));
                                                                    name_middle =
                                                                    None;
                                                                    name_top =
                                                                    None;
                                                                    name_info =
                                                                    { id_resolved =
                                                                    ref (None);
                                                                    id_resolved_alternatives =
                                                                    ref (
                                                                    []);
                                                                    id_type =
                                                                    ref (None);
                                                                    id_svalue =
                                                                    ref (Unknown);
                                                                    id_flags =
                                                                    ref (0);
                                                                    id_info_id =
                                                                    _ } }));
                                                               e_id = 0;
                                                               e_range = None;
                                                               is_implicit_return =
                                                               false;
                                                               facts =
                                                               <opaque> },
                                                             (_, [], _)));
                                                          e_id = 0;
                                                          e_range = None;
                                                          is_implicit_return =
                                                          false;
                                                          facts = <opaque> });
                                                  vtype = None;
                                                  vtok = (Some _) })));
                                         s_range = None };
                                        { s =
                                          (ExprStmt (
                                             { e =
                                               (Call (
                                                  { e =
                                                    (DotAccess (
                                                       { e =
                                                         (N
                                                            (Id (
                                                               ("hello", _),
                                                               { id_resolved =
                                                                 ref ((Some (
                                                                 LocalVar, _)));
                                                                 id_resolved_alternatives =
                                                                 ref (
                                                                 []);
                                                                 id_type =
                                                                 ref (None);
                                                                 id_svalue =
                                                                 ref ((
                                                                 Sym
                                                                   { e =
                                                                    (Call (
                                                                    { e =
                                                                    (N
                                                                    (IdQualified
                                                                    { name_last =
                                                                    ((
                                                                    "CreateT",
                                                                    _),
                                                                    (Some (
                                                                    _,
                                                                    [(TA
                                                                    { t =
                                                                    (TyN
                                                                    (Id (
                                                                    ("HelloWorldTypeConstraints",
                                                                    _),
                                                                    { 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 =
                                                                    [] })], _)));
                                                                    name_middle =
                                                                    None;
                                                                    name_top =
                                                                    None;
                                                                    name_info =
                                                                    { id_resolved =
                                                                    ref (None);
                                                                    id_resolved_alternatives =
                                                                    ref (
                                                                    []);
                                                                    id_type =
                                                                    ref (None);
                                                                    id_svalue =
                                                                    ref (Unknown);
                                                                    id_flags =
                                                                    ref (0);
                                                                    id_info_id =
                                                                    _ } }));
                                                                    e_id = 0;
                                                                    e_range =
                                                                    None;
                                                                    is_implicit_return =
                                                                    false;
                                                                    facts =
                                                                    <opaque>
                                                                    },
                                                                    (_, [], _)
                                                                    ));
                                                                    e_id = 0;
                                                                    e_range =
                                                                    None;
                                                                    is_implicit_return =
                                                                    false;
                                                                    facts =
                                                                    <opaque>
                                                                    }));
                                                                 id_flags =
                                                                 ref (0);
                                                                 id_info_id =
                                                                 _ }
                                                               )));
                                                         e_id = 0;
                                                         e_range = None;
                                                         is_implicit_return =
                                                         false;
                                                         facts = <opaque> },
                                                       _,
                                                       (FN
                                                          (Id (("Run", _),
                                                             { id_resolved =
                                                               ref (None);
                                                               id_resolved_alternatives =
                                                               ref ([]);
                                                               id_type =
                                                               ref ((Some 
                                                               { t =
                                                                 (TyFun (
                                                                    [(OtherParam (
                                                                    ("TODO",
                                                                    _), []))],
                                                                    { t =
                                                                    (OtherType (
                                                                    ("TODO",
                                                                    _), 
                                                                    []));
                                                                    t_attrs =
                                                                    [] }));
                                                                 t_attrs = []
                                                                 }));
                                                               id_svalue =
                                                               ref (Unknown);
                                                               id_flags =
                                                               ref (0);
                                                               id_info_id = _
                                                               }
                                                             )))
                                                       ));
                                                    e_id = 0; e_range = None;
                                                    is_implicit_return =
                                                    false; facts = <opaque> },
                                                  (_, [], _)));
                                               e_id = 0; e_range = None;
                                               is_implicit_return = false;
                                               facts = <opaque> },
                                             _));
                                          s_range = None }
                                        ],
                                      _));
                                  s_range = None })
                             })));
                    s_range = None });
                (F
                   { s =
                     (DefStmt
                        ({ name =
                           (EN
                              (Id (("CreateT", _),
                                 { 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 (Private, _));
                             (KeywordAttr (Static, _))];
                           tparams =
                           (Some (_,
                                  [(TP
                                      { tp_id = ("T", _); tp_attrs = [];
                                        tp_bounds =
                                        [{ t =
                                           (TyN
                                              (Id (("class", _),
                                                 { 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 (("IRunnable", _),
                                                  { 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 = [] }
                                          ];
                                        tp_default = None; tp_variance = None
                                        })
                                    ],
                                  _))
                           },
                         (FuncDef
                            { fkind = (Method, _); fparams = (_, [], _);
                              frettype =
                              (Some { t =
                                      (TyN
                                         (Id (("T", _),
                                            { 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 = [] });
                              fbody =
                              (FBStmt
                                 { s =
                                   (Block
                                      (_,
                                       [{ s =
                                          (Return (_,
                                             (Some { e =
                                                     (New (_,
                                                        { t =
                                                          (TyN
                                                             (Id (("T", _),
                                                                { 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_resolved =
                                                          ref (None);
                                                          id_resolved_alternatives =
                                                          ref ([]);
                                                          id_type =
                                                          ref (None);
                                                          id_svalue =
                                                          ref (Unknown);
                                                          id_flags = ref (0);
                                                          id_info_id = _ },
                                                        (_,
                                                         [(Arg
                                                             { e =
                                                               (Container (
                                                                  Tuple,
                                                                  (_, [], _)
                                                                  ));
                                                               e_id = 0;
                                                               e_range = None;
                                                               is_implicit_return =
                                                               false;
                                                               facts =
                                                               <opaque> })
                                                           ],
                                                         _)
                                                        ));
                                                     e_id = 0;
                                                     e_range = None;
                                                     is_implicit_return =
                                                     false; facts = <opaque>
                                                     }),
                                             _));
                                          s_range = None }
                                         ],
                                       _));
                                   s_range = None })
                              })));
                     s_range = None });
                (F
                   { s =
                     (DefStmt
                        ({ name =
                           (EN
                              (Id (("Run", _),
                                 { 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 (Public, _))];
                           tparams = None },
                         (FuncDef
                            { fkind = (Method, _); fparams = (_, [], _);
                              frettype =
                              (Some { t =
                                      (TyN
                                         (Id (("void", _),
                                            { 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 = [] });
                              fbody =
                              (FBStmt
                                 { s =
                                   (Block
                                      (_,
                                       [{ s =
                                          (ExprStmt (
                                             { e =
                                               (Call (
                                                  { e =
                                                    (DotAccess (
                                                       { e =
                                                         (N
                                                            (Id (
                                                               ("Console", _),
                                                               { id_resolved =
                                                                 ref (None);
                                                                 id_resolved_alternatives =
                                                                 ref (
                                                                 []);
                                                                 id_type =
                                                                 ref (None);
                                                                 id_svalue =
                                                                 ref (Unknown);
                                                                 id_flags =
                                                                 ref (0);
                                                                 id_info_id =
                                                                 _ }
                                                               )));
                                                         e_id = 0;
                                                         e_range = None;
                                                         is_implicit_return =
                                                         false;
                                                         facts = <opaque> },
                                                       _,
                                                       (FN
                                                          (Id (
                                                             ("WriteLine", _),
                                                             { id_resolved =
                                                               ref (None);
                                                               id_resolved_alternatives =
                                                               ref ([]);
                                                               id_type =
                                                               ref ((Some 
                                                               { t =
                                                                 (TyFun (
                                                                    [(OtherParam (
                                                                    ("TODO",
                                                                    _), []))],
                                                                    { t =
                                                                    (OtherType (
                                                                    ("TODO",
                                                                    _), 
                                                                    []));
                                                                    t_attrs =
                                                                    [] }));
                                                                 t_attrs = []
                                                                 }));
                                                               id_svalue =
                                                               ref (Unknown);
                                                               id_flags =
                                                               ref (0);
                                                               id_info_id = _
                                                               }
                                                             )))
                                                       ));
                                                    e_id = 0; e_range = None;
                                                    is_implicit_return =
                                                    false; facts = <opaque> },
                                                  (_,
                                                   [(Arg
                                                       { e =
                                                         (L
                                                            (String
                                                               (_,
                                                                ("hello world",
                                                                 _),
                                                                _)));
                                                         e_id = 0;
                                                         e_range = None;
                                                         is_implicit_return =
                                                         false;
                                                         facts = <opaque> })
                                                     ],
                                                   _)
                                                  ));
                                               e_id = 0; e_range = None;
                                               is_implicit_return = false;
                                               facts = <opaque> },
                                             _));
                                          s_range = None }
                                         ],
                                       _));
                                   s_range = None })
                              })));
                     s_range = None })
                ],
              _)
             })));
    s_range = None };
  { s =
    (DefStmt
       ({ name =
          (EN
             (Id (("IRunnable", _),
                { 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 },
        (ClassDef
           { ckind = (Interface, _); cextends = []; cimplements = [];
             cmixins = []; cparams = (_, [], _);
             cbody =
             (_,
              [(F
                  { s =
                    (DefStmt
                       ({ name =
                          (EN
                             (Id (("Run", _),
                                { 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 (Public, _))]; tparams = None
                          },
                        (FuncDef
                           { fkind = (Method, _); fparams = (_, [], _);
                             frettype =
                             (Some { t =
                                     (TyN
                                        (Id (("void", _),
                                           { 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 = [] });
                             fbody = (FBDecl _) })));
                    s_range = None })
                ],
              _)
             })));
    s_range = None }
  ]