(command.CommandList
  children: [
    (command.ShFunction
      name: k_bool_parse
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<value>})
            (C {<local>} 
              {<Id.Lit_VarLike 'default='> 
                (DQ 
                  (braced_var_sub
                    token: <Id.VSub_Number 2>
                    suffix_op: (suffix_op.Unary op_id:Id.VTest_Hyphen arg_word:(word.Empty))
                  )
                )
              }
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.ShAssignment
                          pairs: [
                            (assign_pair
                              lhs: (sh_lhs_expr.Name name:value)
                              op: assign_op.Equal
                              rhs: 
                                {
                                  (DQ 
                                    (command_sub
                                      left_token: <Id.Left_DollarParen '$('>
                                      child: (C {<k_bool_parse_error>} {(DQ ($ Id.VSub_Number '$1'))})
                                    )
                                  )
                                }
                              spids: [71]
                            )
                          ]
                        )
                      terminator: <Id.Op_Semi _>
                    )
                  ]
                  action: [(C {<echo>} {(DQ (${ Id.VSub_Name value))})]
                  spids: [69 83]
                )
              ]
              else_action: [
                (C {<echo>} 
                  {
                    (DQ 
                      (command_sub
                        left_token: <Id.Left_DollarParen '$('>
                        child: (C {<k_bool_parse>} {(DQ (${ Id.VSub_Name default))} {<false>})
                      )
                    )
                  }
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: k_bool_parse_error
      body: 
        (BraceGroup
          children: [
            (C {<local>} {<Id.Lit_VarLike 'value='> (DQ ($ Id.VSub_Number '$1'))})
            (command.Case
              to_match: 
                {
                  (DQ 
                    (command_sub
                      left_token: <Id.Left_DollarParen '$('>
                      child: (C {<k_string_lower>} {(DQ (${ Id.VSub_Name value))})
                    )
                  )
                }
              arms: [
                (case_arm
                  pat_list: [{<on>} {<true>} {<yes>} {<y>} {<1>}]
                  action: [(C {<echo>} {<true>})]
                  spids: [188 197 205 -1]
                )
                (case_arm
                  pat_list: [{<off>} {<false>} {<no>} {<n>} {<0>}]
                  action: [(C {<echo>} {<false>})]
                  spids: [209 218 226 -1]
                )
                (case_arm
                  pat_list: [{<Id.Lit_Star '*'>}]
                  action: [(command.ControlFlow token:<Id.ControlFlow_Return return> arg_word:{<1>})]
                  spids: [230 231 239 -1]
                )
              ]
            )
          ]
        )
    )
    (command.ShFunction
      name: k_bool_test
      body: 
        (BraceGroup
          children: [
            (C {<Id.Lit_LBracket '['>} 
              {
                (DQ 
                  (command_sub
                    left_token: <Id.Left_DollarParen '$('>
                    child: (C {<k_bool_parse>} {(DQ ($ Id.VSub_At '$@'))})
                  )
                )
              } {<Id.Lit_Equals '='>} {<true>} {<Id.Lit_RBracket ']'>}
            )
          ]
        )
    )
    (command.ShFunction
      name: k_bool_valid
      body: 
        (BraceGroup
          children: [
            (command.Simple
              words: [{<k_bool_parse_error>} {(DQ ($ Id.VSub_Number '$1'))}]
              redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
              do_fork: T
            )
          ]
        )
    )
  ]
)