(command.CommandList
  children: [
    (C {<trap>} {(SQ <_Dbg_write_saved_vars>)} {<EXIT>})
    (C {<typeset>} {<-a>} {<_Dbg_save_vars>})
    (command.CommandList
      children: [
        (command.Sentence
          child: (C {<typeset>} {<-a>} {<_Dbg_save_vars>})
          terminator: <Id.Op_Semi _>
        )
        (command.ShAssignment
          pairs: [
            (assign_pair
              lhs: (sh_lhs_expr.Name name:_Dbg_save_vars)
              op: assign_op.Equal
              rhs: {(sh_array_literal left:<Id.Op_LParen _>)}
              spids: [86]
            )
          ]
        )
      ]
    )
    (command.ShFunction
      name: save_vars
      body: 
        (BraceGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:_Dbg_save_vars)
                  op: assign_op.PlusEqual
                  rhs: {(sh_array_literal left:<Id.Op_LParen _> words:[{($ Id.VSub_At '$@')}])}
                  spids: [104]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: _Dbg_write_saved_vars
      body: 
        (BraceGroup
          children: [
            (C {<typeset>} {<param>})
            (command.ForEach
              iter_name: param
              iter_words: [
                {
                  (DQ 
                    (braced_var_sub
                      token: <Id.VSub_Name _Dbg_save_vars>
                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                    )
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (command.Pipeline
                      children: [
                        (C {<typeset>} {<-p>} {($ Id.VSub_DollarName '$param')})
                        (C {<sed>} {<-e>} {(SQ <'s:declare [^ ]* ::'>)})
                      ]
                      negated: F
                    )
                  ]
                )
              redirects: [
                (redir
                  op: <Id.Redir_Great '>'>
                  loc: (redir_loc.Fd fd:1)
                  arg: {($ Id.VSub_DollarName '$_Dbg_restore_info')}
                )
              ]
            )
          ]
        )
    )
  ]
)