(command.CommandList
  children: [
    (command.ShFunction
      name: _Dbg_is_function
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Op_DAmp]
              children: [
                (command.DParen
                  child: 
                    (arith_expr.Binary
                      op_id: Arith_DEqual
                      left: (arith_expr.ArithWord w:{(Lit_Digits 0)})
                      right: (arith_expr.ArithWord w:{($ VSub_Pound '$#')})
                    )
                )
                (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (C {(typeset)} {(Lit_VarLike 'needed_fn=') ($ VSub_Number '$1')})
            (C {(typeset)} {(-i)} 
              {(Lit_VarLike 'include_system=') 
                (braced_var_sub
                  token: <VSub_Number 2>
                  suffix_op: (suffix_op.Unary op_id:VTest_ColonHyphen arg_word:{(0)})
                )
              }
            )
            (command.AndOr
              ops: [Op_DAmp Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: BoolBinary_GlobDEqual
                      left: 
                        {
                          (braced_var_sub
                            token: <VSub_Name needed_fn>
                            suffix_op: 
                              (suffix_op.Slice
                                begin: (arith_expr.ArithWord w:{(Lit_Digits 0)})
                                length: (arith_expr.ArithWord w:{(Lit_Digits 1)})
                              )
                          )
                        }
                      right: {(SQ <_>)}
                    )
                )
                (command.DParen
                  child: 
                    (arith_expr.Unary
                      op_id: Arith_Bang
                      child: (arith_expr.VarRef token:<Lit_ArithVarLike include_system>)
                    )
                )
                (command.BraceGroup
                  children: [(command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})]
                )
              ]
            )
            (command.Simple
              words: [{(declare)} {(-F)} {($ VSub_DollarName '$needed_fn')}]
              redirects: [
                (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(/dev/null)})
                (redir.Redir op:<Redir_GreatAnd '2>&'> fd:2 arg_word:{(1)})
              ]
            )
            (command.ControlFlow
              token: <ControlFlow_Return return>
              arg_word: {($ VSub_QMark '$?')}
            )
          ]
        )
    )
    (command.ShFunction
      name: _Dbg_is_int
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Op_DPipe]
              children: [
                (command.DParen
                  child: 
                    (arith_expr.Binary
                      op_id: Arith_DEqual
                      left: (arith_expr.ArithWord w:{(Lit_Digits 1)})
                      right: (arith_expr.ArithWord w:{($ VSub_Pound '$#')})
                    )
                )
                (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (C {(typeset)} {(Lit_VarLike 'rc=') (1)})
            (C {(eval)} {(DQ ($ VSub_DollarName '$_seteglob'))})
            (command.AndOr
              ops: [Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: BoolBinary_GlobDEqual
                      left: {($ VSub_Number '$1')}
                      right: {($ VSub_DollarName '$int_pat')}
                    )
                )
                (command.ShAssignment
                  pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:rc) op:Equal rhs:{(0)})]
                )
              ]
            )
            (C {(eval)} {(DQ ($ VSub_DollarName '$_resteglob'))})
            (command.ControlFlow
              token: <ControlFlow_Return return>
              arg_word: {($ VSub_DollarName '$rc')}
            )
          ]
        )
    )
    (command.ShFunction
      name: _Dbg_is_signed_int
      body: 
        (command.BraceGroup
          children: [
            (command.AndOr
              ops: [Op_DPipe]
              children: [
                (command.DParen
                  child: 
                    (arith_expr.Binary
                      op_id: Arith_DEqual
                      left: (arith_expr.ArithWord w:{(Lit_Digits 1)})
                      right: (arith_expr.ArithWord w:{($ VSub_Pound '$#')})
                    )
                )
                (command.ControlFlow token:<ControlFlow_Return return> arg_word:{(1)})
              ]
            )
            (C {(typeset)} {(Lit_VarLike 'rc=') (1)})
            (C {(eval)} {(DQ ($ VSub_DollarName '$_seteglob'))})
            (command.AndOr
              ops: [Op_DAmp]
              children: [
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: BoolBinary_GlobDEqual
                      left: {($ VSub_Number '$1')}
                      right: {($ VSub_DollarName '$_Dbg_signed_int_pat')}
                    )
                )
                (command.ShAssignment
                  pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:rc) op:Equal rhs:{(0)})]
                )
              ]
            )
            (C {(eval)} {(DQ ($ VSub_DollarName '$_resteglob'))})
            (command.ControlFlow
              token: <ControlFlow_Return return>
              arg_word: {($ VSub_DollarName '$rc')}
            )
          ]
        )
    )
  ]
)