(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:all) op:Equal rhs:{(SQ <'exit 0'>)} spids:[31])]
      spids: [31]
    )
    (Case
      to_match: {(DQ ($ VSub_Number '$1'))}
      arms: [
        (case_arm
          pat_list: [{(-a)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:all)
                  op: Equal
                  rhs: {(DQ ("found='exit 0'"))}
                  spids: [48]
                )
              ]
              spids: [48]
            )
            (C {(shift)})
          ]
          spids: [45 46 16777215 56]
        )
      ]
      spids: [37 43 56]
    )
    (Case
      to_match: {($ VSub_Pound '$#') (Lit_Other ':') ($ VSub_Number '$0')}
      arms: [
        (case_arm
          pat_list: [{(1) (Lit_Other ':') (Lit_Other '*') (whatis)}]
          spids: [67 71 74 16777215]
        )
        (case_arm
          pat_list: [{(1) (Lit_Other ':') (Lit_Other '*') (apropos)}]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:all)
                  op: Equal
                  rhs: {(DQ ("found='exit 0'"))}
                  spids: [83]
                )
              ]
              spids: [83]
            )
          ]
          spids: [76 80 89 16777215]
        )
        (case_arm
          pat_list: [{(Lit_Other '*')}]
          action: [
            (SimpleCommand
              words: [
                {(echo)}
                {
                  (DQ ('Usage: ') 
                    (CommandSubPart
                      command_list: (CommandList children:[(C {(basename)} {($ VSub_Number '$0')})])
                      left_token: <Left_Backtick '`'>
                      spids: [98 102]
                    ) (' [-a] <keyword>')
                  )
                }
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[106])]
            )
            (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
          ]
          spids: [91 92 16777215 114]
        )
      ]
      spids: [59 65 114]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:IFS)
          op: Equal
          rhs: {(DQ (':') ($ VSub_Name '$IFS'))}
          spids: [117]
        )
      ]
      spids: [117]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:MANPATH)
          op: Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  token: <VSub_Name MANPATH>
                  suffix_op: 
                    (StringUnary
                      op_id: VTest_Hyphen
                      arg_word: 
                        {(Lit_Slash /) (usr) (Lit_Slash /) (local) (Lit_Slash /) ('man:') (Lit_Slash /) 
                          (usr) (Lit_Slash /) (man)
                        }
                    )
                  spids: [125 138]
                )
              )
            }
          spids: [123]
        )
      ]
      spids: [123]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:found) op:Equal rhs:{(EmptyPart)} spids:[142])]
      spids: [142]
    )
    (ForEach
      iter_name: m
      iter_words: [{($ VSub_Name '$MANPATH')}]
      do_arg_iter: F
      body: 
        (DoGroup
          children: [
            (ForEach
              iter_name: w
              iter_words: [{($ VSub_Name '$m') (/whatis)}]
              do_arg_iter: F
              body: 
                (DoGroup
                  children: [
                    (AndOr
                      ops: [Op_DPipe]
                      children: [
                        (C {(test)} {(-f)} {($ VSub_Name '$w')})
                        (ControlFlow token:<ControlFlow_Continue continue>)
                      ]
                    )
                    (Case
                      to_match: {($ VSub_Number '$0')}
                      arms: [
                        (case_arm
                          pat_list: [{(Lit_Other '*') (whatis)}]
                          action: [
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(grep)} 
                                  {(SQ <'^\\('>) ($ VSub_Number '$1') (SQ <'\\|[^(]* '>) 
                                    ($ VSub_Number '$1') (SQ <'\\)[ ,][^(]*('>)
                                  } {($ VSub_Name '$w')}
                                )
                                (C {(eval)} {($ VSub_Name '$all')})
                              ]
                            )
                          ]
                          spids: [188 190 216 16777215]
                        )
                        (case_arm
                          pat_list: [{(Lit_Other '*') (apropos)}]
                          action: [
                            (AndOr
                              ops: [Op_DAmp]
                              children: [
                                (C {(grep)} {(-i)} {(DQ ($ VSub_Number '$1'))} {($ VSub_Name '$w')})
                                (C {(eval)} {($ VSub_Name '$all')})
                              ]
                            )
                          ]
                          spids: [219 221 16777215 241]
                        )
                      ]
                      spids: [181 185 241]
                    )
                  ]
                  spids: [166 244]
                )
              spids: [161 16777215]
            )
          ]
          spids: [153 246]
        )
      spids: [150 16777215]
    )
    (C {($ VSub_Name '$found')})
    (SimpleCommand
      words: [
        {(echo)}
        {
          (DQ 
            (CommandSubPart
              command_list: (CommandList children:[(C {(basename)} {($ VSub_Number '$0')})])
              left_token: <Left_Backtick '`'>
              spids: [255 259]
            ) (': ') ($ VSub_Number '$1') (': not found')
          )
        }
      ]
      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[265])]
    )
    (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)})
  ]
)