[{ 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 = []; tparams = None },
       (FuncDef
          { fkind = (Function, _);
            fparams =
            (_,
             [(Param
                 { pname = (Some ("x", _));
                   ptype =
                   (Some { t =
                           (TyQuestion (
                              { 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 = [] },
                              _));
                           t_attrs = [] });
                   pdefault = None; pattrs = [];
                   pinfo =
                   { id_resolved = ref ((Some (Parameter, _)));
                     id_resolved_alternatives = ref ([]);
                     id_type =
                     ref ((Some { t =
                                  (TyQuestion (
                                     { 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 = [] },
                                     _));
                                  t_attrs = [] }));
                     id_svalue = ref (Unknown); id_flags = ref (0);
                     id_info_id = _ }
                   });
               (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 ((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 ("z", _));
                    ptype =
                    (Some { t =
                            (TyN
                               (Id (("Short", _),
                                  { 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 (("Short", _),
                                         { 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 = _ }
                    })
               ],
             _);
            frettype = None;
            fbody =
            (FBStmt
               { s =
                 (Block
                    (_,
                     [{ s =
                        (ExprStmt (
                           { e =
                             (StmtExpr
                                { s =
                                  (Return (_,
                                     (Some { e =
                                             (N
                                                (Id (("x", _),
                                                   { id_resolved =
                                                     ref ((Some (Parameter, _)));
                                                     id_resolved_alternatives =
                                                     ref ([]);
                                                     id_type =
                                                     ref ((Some { t =
                                                                  (TyQuestion (
                                                                    { 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 =
                                                                    [] }, _));
                                                                  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> }),
                                     _));
                                  s_range = None });
                             e_id = 0; e_range = None;
                             is_implicit_return = false; facts = <opaque> },
                           _));
                        s_range = None }
                       ],
                     _));
                 s_range = None })
            })));
   s_range = None }
  ]