[{ s =
   (DirectiveStmt
      { d = (Pragma (("circom", _), [(Tk _); (Tk _); (Tk _)])); d_attrs = []
        });
   s_range = None };
  { s =
    (DefStmt
       ({ name =
          (EN
             (Id (("Multiply", _),
                { 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 = (_, [], _); frettype = None;
             fbody =
             (FBStmt
                { s =
                  (Block
                     (_,
                      [{ s =
                         (DefStmt
                            ({ name =
                               (EN
                                  (Id (("a", _),
                                     { id_resolved =
                                       ref ((Some (LocalVar, _)));
                                       id_resolved_alternatives = ref ([]);
                                       id_type =
                                       ref ((Some { t =
                                                    (TyN
                                                       (IdQualified
                                                          { name_last =
                                                            (("input", _),
                                                             None);
                                                            name_middle =
                                                            (Some (QDots
                                                                    [((
                                                                    "signal",
                                                                    _), 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 = _
                                                              }
                                                            }));
                                                    t_attrs = [] }));
                                       id_svalue = ref (Unknown);
                                       id_flags = ref (0); id_info_id = _ }
                                     )));
                               attrs = []; tparams = None },
                             (VarDef
                                { vinit = None;
                                  vtype =
                                  (Some { t =
                                          (TyN
                                             (IdQualified
                                                { name_last =
                                                  (("input", _), None);
                                                  name_middle =
                                                  (Some (QDots
                                                           [(("signal", _),
                                                             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 = _ }
                                                  }));
                                          t_attrs = [] });
                                  vtok = (Some _) })));
                         s_range = None };
                        { s =
                          (DefStmt
                             ({ name =
                                (EN
                                   (Id (("b", _),
                                      { id_resolved =
                                        ref ((Some (LocalVar, _)));
                                        id_resolved_alternatives = ref ([]);
                                        id_type =
                                        ref ((Some { t =
                                                     (TyN
                                                        (IdQualified
                                                           { name_last =
                                                             (("input", _),
                                                              None);
                                                             name_middle =
                                                             (Some (QDots
                                                                    [((
                                                                    "signal",
                                                                    _), 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 = _
                                                               }
                                                             }));
                                                     t_attrs = [] }));
                                        id_svalue = ref (Unknown);
                                        id_flags = ref (0); id_info_id = _ }
                                      )));
                                attrs = []; tparams = None },
                              (VarDef
                                 { vinit = None;
                                   vtype =
                                   (Some { t =
                                           (TyN
                                              (IdQualified
                                                 { name_last =
                                                   (("input", _), None);
                                                   name_middle =
                                                   (Some (QDots
                                                            [(("signal", _),
                                                              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 = _ }
                                                   }));
                                           t_attrs = [] });
                                   vtok = (Some _) })));
                          s_range = None };
                        { s =
                          (DefStmt
                             ({ name =
                                (EN
                                   (Id (("out", _),
                                      { id_resolved =
                                        ref ((Some (LocalVar, _)));
                                        id_resolved_alternatives = ref ([]);
                                        id_type =
                                        ref ((Some { t =
                                                     (TyN
                                                        (IdQualified
                                                           { name_last =
                                                             (("output", _),
                                                              None);
                                                             name_middle =
                                                             (Some (QDots
                                                                    [((
                                                                    "signal",
                                                                    _), 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 = _
                                                               }
                                                             }));
                                                     t_attrs = [] }));
                                        id_svalue = ref (Unknown);
                                        id_flags = ref (0); id_info_id = _ }
                                      )));
                                attrs = []; tparams = None },
                              (VarDef
                                 { vinit = None;
                                   vtype =
                                   (Some { t =
                                           (TyN
                                              (IdQualified
                                                 { name_last =
                                                   (("output", _), None);
                                                   name_middle =
                                                   (Some (QDots
                                                            [(("signal", _),
                                                              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 = _ }
                                                   }));
                                           t_attrs = [] });
                                   vtok = (Some _) })));
                          s_range = None };
                        { s =
                          (ExprStmt (
                             { e =
                               (AssignOp (
                                  { e =
                                    (N
                                       (Id (("out", _),
                                          { id_resolved =
                                            ref ((Some (LocalVar, _)));
                                            id_resolved_alternatives =
                                            ref ([]);
                                            id_type =
                                            ref ((Some { t =
                                                         (TyN
                                                            (IdQualified
                                                               { name_last =
                                                                 (("output",
                                                                   _),
                                                                  None);
                                                                 name_middle =
                                                                 (Some (
                                                                 QDots
                                                                   [((
                                                                    "signal",
                                                                    _), 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 =
                                                                   _ }
                                                                 }));
                                                         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> },
                                  (LDA, _),
                                  { e =
                                    (Call (
                                       { e = (Special ((Op Mult), _));
                                         e_id = 0; e_range = None;
                                         is_implicit_return = false;
                                         facts = <opaque> },
                                       (_,
                                        [(Arg
                                            { e =
                                              (N
                                                 (Id (("a", _),
                                                    { id_resolved =
                                                      ref ((Some (LocalVar, _)));
                                                      id_resolved_alternatives =
                                                      ref ([]);
                                                      id_type =
                                                      ref ((Some { t =
                                                                   (TyN
                                                                    (IdQualified
                                                                    { name_last =
                                                                    ((
                                                                    "input",
                                                                    _), None);
                                                                    name_middle =
                                                                    (Some (
                                                                    QDots
                                                                    [((
                                                                    "signal",
                                                                    _), 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 =
                                                                    _ } }));
                                                                   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 =
                                               (N
                                                  (Id (("b", _),
                                                     { id_resolved =
                                                       ref ((Some (LocalVar,
                                                                   _)));
                                                       id_resolved_alternatives =
                                                       ref ([]);
                                                       id_type =
                                                       ref ((Some { t =
                                                                    (
                                                                    TyN
                                                                    (IdQualified
                                                                    { name_last =
                                                                    ((
                                                                    "input",
                                                                    _), None);
                                                                    name_middle =
                                                                    (Some (
                                                                    QDots
                                                                    [((
                                                                    "signal",
                                                                    _), 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 =
                                                                    _ } }));
                                                                    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> }
                                  ));
                               e_id = 0; e_range = None;
                               is_implicit_return = false; facts = <opaque> },
                             _));
                          s_range = None }
                        ],
                      _));
                  s_range = None })
             })));
    s_range = None };
  { s =
    (DefStmt
       ({ name =
          (EN
             (Id (("main", _),
                { id_resolved = ref ((Some (Global, _)));
                  id_resolved_alternatives = ref ([]);
                  id_type =
                  ref ((Some { t =
                               (TyN
                                  (Id (("component", _),
                                     { 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 = _ }
                )));
          attrs = []; tparams = None },
        (VarDef
           { vinit =
             (Some { e =
                     (Call (
                        { e =
                          (N
                             (Id (("Multiply", _),
                                { 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 =
             (Some { t =
                     (TyN
                        (Id (("component", _),
                           { 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 = [] });
             vtok = (Some _) })));
    s_range = None }
  ]