(command.CommandList
  children: [
    (C {(Id.KW_Set set)} {(-o)} {(errexit)})
    (C {(Id.KW_Set set)} {(-o)} {(nounset)})
    (C {(Id.KW_Set set)} {(-o)} {(pipefail)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BASH_DIR)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:71)
                command_list: 
                  (command.CommandList
                    children: [(C {(dirname)} {(DQ (${ Id.VSub_Name BASH_SOURCE))})]
                  )
              )
            }
          spids: [70]
        )
      ]
    )
    (command.ShFunction
      name: find_go_files
      body: 
        (command.BraceGroup
          children: [
            (C {(find)} {(.)} {(-maxdepth)} {(1)} {(-not)} 
              {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\(' span_id:99))} {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\(' span_id:103))} {(-wholename)} 
              {(SQ (Token id:Id.Lit_Chars val:./doc.go span_id:110))} {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\)' span_id:115))} {(-prune)} 
              {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\)' span_id:121))} {(-name)} {(SQ (Token id:Id.Lit_Chars val:'*.go' span_id:126))}
            )
          ]
        )
    )
    (command.ShAssignment
      pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:ret) op:assign_op.Equal rhs:{(0)} spids:[132])]
    )
    (command.Simple
      words: [{(pushd)} {(DQ (${ Id.VSub_Name BASH_DIR))}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:144)
          fd: -1
          arg_word: {(/dev/null)}
        )
      ]
    )
    (command.ForEach
      iter_name: path
      iter_words: [
        {
          (command_sub
            left_token: (Token id:Id.Left_Backtick val:'`' span_id:155)
            command_list: (command.CommandList children:[(C {(find_go_files)})])
          )
        }
      ]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:file)
                  op: assign_op.Equal
                  rhs: 
                    {
                      (command_sub
                        left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:166)
                        command_list: 
                          (command.CommandList
                            children: [(C {(basename)} {($ Id.VSub_DollarName '$path')})]
                          )
                      )
                    }
                  spids: [165]
                )
              ]
            )
            (command.Simple
              words: [
                {(echo)}
                {
                  (DQ ('Found pkg/util/') (${ Id.VSub_Name file) 
                    (', but should be moved into util sub-pkgs.')
                  )
                }
              ]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:183)
                  fd: 1
                  arg_word: {(2)}
                )
              ]
            )
            (command.ShAssignment
              pairs: [
                (assign_pair
                  lhs: (sh_lhs_expr.Name name:ret)
                  op: assign_op.Equal
                  rhs: {(1)}
                  spids: [187]
                )
              ]
            )
          ]
        )
    )
    (command.Simple
      words: [{(popd)}]
      redirects: [
        (redir.Redir
          op: (Token id:Id.Redir_Great val:'>' span_id:195)
          fd: -1
          arg_word: {(/dev/null)}
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: (bool_expr.Binary op_id:Id.Op_Great left:{(${ Id.VSub_Name ret)} right:{(0)})
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:213)
            )
          ]
          action: [
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:218)
              arg_word: {(${ Id.VSub_Name ret)}
            )
          ]
          spids: [200 215]
        )
      ]
    )
    (C {(echo)} {(DQ ('Util Package Verified.'))})
  ]
)