[{ s =
   (DefStmt
      ({ name =
         (EN
            (Id (("test1a", _),
               { 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 },
       (FuncDef
          { fkind = (Method, _); fparams = (_, [], _); frettype = None;
            fbody =
            (FBExpr
               { e =
                 (Call (
                    { e =
                      (N
                         (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 = _ }
                            )));
                      e_id = 0; e_range = None; is_implicit_return = false;
                      facts = <opaque> },
                    (_,
                     [(Arg
                         { e =
                           (Lambda
                              { fkind = (Arrow, _);
                                fparams =
                                (_,
                                 [(Param
                                     { pname = (Some ("x", _)); ptype = None;
                                       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 = _ }
                                       })
                                   ],
                                 _);
                                frettype = None;
                                fbody =
                                (FBStmt
                                   { s =
                                     (Block
                                        (_,
                                         [{ s =
                                            (ExprStmt (
                                               { e = (L (Int ((Some 3L), _)));
                                                 e_id = 0; e_range = None;
                                                 is_implicit_return = true;
                                                 facts = <opaque> },
                                               _));
                                            s_range = None }
                                           ],
                                         _));
                                     s_range = None })
                                });
                           e_id = 0; e_range = None;
                           is_implicit_return = false; facts = <opaque> })
                       ],
                     _)
                    ));
                 e_id = 0; e_range = None; is_implicit_return = true;
                 facts = <opaque> })
            })));
   s_range = None };
  { s =
    (DefStmt
       ({ name =
          (EN
             (Id (("test1b", _),
                { 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 },
        (FuncDef
           { fkind = (Method, _); fparams = (_, [], _); frettype = None;
             fbody =
             (FBExpr
                { e =
                  (Call (
                     { e =
                       (N
                          (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 = _ }
                             )));
                       e_id = 0; e_range = None; is_implicit_return = false;
                       facts = <opaque> },
                     (_,
                      [(Arg
                          { e =
                            (Lambda
                               { fkind = (Arrow, _);
                                 fparams =
                                 (_,
                                  [(Param
                                      { pname = (Some ("x", _));
                                        ptype = None; 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 = _
                                          }
                                        })
                                    ],
                                  _);
                                 frettype = None;
                                 fbody =
                                 (FBStmt
                                    { s =
                                      (Block
                                         (_,
                                          [{ s =
                                             (ExprStmt (
                                                { e =
                                                  (L (Int ((Some 3L), _)));
                                                  e_id = 0; e_range = None;
                                                  is_implicit_return = true;
                                                  facts = <opaque> },
                                                _));
                                             s_range = None }
                                            ],
                                          _));
                                      s_range = None })
                                 });
                            e_id = 0; e_range = None;
                            is_implicit_return = false; facts = <opaque> })
                        ],
                      _)
                     ));
                  e_id = 0; e_range = None; is_implicit_return = true;
                  facts = <opaque> })
             })));
    s_range = None };
  { s =
    (DefStmt
       ({ name =
          (EN
             (Id (("test2", _),
                { 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 },
        (FuncDef
           { fkind = (Method, _); fparams = (_, [], _); frettype = None;
             fbody =
             (FBExpr
                { e =
                  (Call (
                     { e =
                       (N
                          (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 = _ }
                             )));
                       e_id = 0; e_range = None; is_implicit_return = false;
                       facts = <opaque> },
                     (_,
                      [(Arg
                          { e =
                            (Lambda
                               { fkind = (Arrow, _);
                                 fparams =
                                 (_,
                                  [(Param
                                      { pname = (Some ("value", _));
                                        ptype = None; 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 = _
                                          }
                                        })
                                    ],
                                  _);
                                 frettype = None;
                                 fbody =
                                 (FBStmt
                                    { s =
                                      (Block
                                         (_,
                                          [{ s =
                                             (ExprStmt (
                                                { e =
                                                  (StmtExpr
                                                     { s =
                                                       (If (_,
                                                          (Cond
                                                             { e =
                                                               (Call (
                                                                  { e =
                                                                    (
                                                                    DotAccess (
                                                                    { e =
                                                                    (DotAccess (
                                                                    { e =
                                                                    (N
                                                                    (Id (
                                                                    ("value",
                                                                    _),
                                                                    { id_resolved =
                                                                    ref ((Some (
                                                                    Parameter,
                                                                    _)));
                                                                    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 (
                                                                    ("size",
                                                                    _),
                                                                    { 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 (
                                                                    (">", _),
                                                                    { 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
                                                                    (Int
                                                                    ((Some 0L),
                                                                    _)));
                                                                    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 =
                                                            (Block
                                                               (_,
                                                                [{ s =
                                                                   (ExprStmt (
                                                                    { e =
                                                                    (Call (
                                                                    { e =
                                                                    (N
                                                                    (Id (
                                                                    ("Some",
                                                                    _),
                                                                    { 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>
                                                                    },
                                                                    (_,
                                                                    [(Arg
                                                                    { e =
                                                                    (N
                                                                    (Id (
                                                                    ("value",
                                                                    _),
                                                                    { id_resolved =
                                                                    ref ((Some (
                                                                    Parameter,
                                                                    _)));
                                                                    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>
                                                                    }, _));
                                                                   s_range =
                                                                   None }
                                                                  ],
                                                                _));
                                                            s_range = None },
                                                          (Some { s =
                                                                  (ExprStmt (
                                                                    { e =
                                                                    (N
                                                                    (Id (
                                                                    ("None",
                                                                    _),
                                                                    { 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 =
                                                                    true;
                                                                    facts =
                                                                    <opaque>
                                                                    }, _));
                                                                  s_range =
                                                                  None })
                                                          ));
                                                       s_range = None });
                                                  e_id = 0; e_range = None;
                                                  is_implicit_return = false;
                                                  facts = <opaque> },
                                                _));
                                             s_range = None }
                                            ],
                                          _));
                                      s_range = None })
                                 });
                            e_id = 0; e_range = None;
                            is_implicit_return = false; facts = <opaque> })
                        ],
                      _)
                     ));
                  e_id = 0; e_range = None; is_implicit_return = true;
                  facts = <opaque> })
             })));
    s_range = None };
  { s =
    (DefStmt
       ({ name =
          (EN
             (Id (("test3", _),
                { 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 },
        (FuncDef
           { fkind = (Method, _); fparams = (_, [], _); frettype = None;
             fbody =
             (FBExpr
                { e =
                  (New (_,
                     { t =
                       (TyN
                          (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 = _ }
                             )));
                       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 =
                            (Assign (
                               { e =
                                 (N
                                    (Id (("url", _),
                                       { id_resolved = ref (None);
                                         id_resolved_alternatives = ref ([]);
                                         id_type = ref (None);
                                         id_svalue =
                                         ref ((Lit (String (_, ("hi", _), _))));
                                         id_flags = ref (0); id_info_id = _ }
                                       )));
                                 e_id = 0; e_range = None;
                                 is_implicit_return = false; facts = <opaque>
                                 },
                               _,
                               { e = (L (String (_, ("hi", _), _)));
                                 e_id = 0; e_range = None;
                                 is_implicit_return = false; facts = <opaque>
                                 }
                               ));
                            e_id = 0; e_range = None;
                            is_implicit_return = false; facts = <opaque> });
                        (Arg
                           { e =
                             (Assign (
                                { e =
                                  (N
                                     (Id (("user", _),
                                        { id_resolved = ref (None);
                                          id_resolved_alternatives = ref ([]);
                                          id_type = ref (None);
                                          id_svalue =
                                          ref ((Lit
                                                  (String (_, ("bob", _), _))));
                                          id_flags = ref (0); id_info_id = _
                                          }
                                        )));
                                  e_id = 0; e_range = None;
                                  is_implicit_return = false;
                                  facts = <opaque> },
                                _,
                                { e = (L (String (_, ("bob", _), _)));
                                  e_id = 0; e_range = None;
                                  is_implicit_return = false;
                                  facts = <opaque> }
                                ));
                             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 }
  ]