(command.CommandList
  children: [
    (C {(Id.KW_Set set)} {(-o)} {(nounset)})
    (C {(Id.KW_Set set)} {(-o)} {(pipefail)})
    (C {(Id.KW_Set set)} {(-o)} {(errexit)})
    (C {(source)} {(test/common.sh)})
    (command.ShFunction
      name: _compare
      body: 
        (command.BraceGroup
          children: [
            (C {(Id.KW_Set set)} {(Id.Lit_Other '+') (o)} {(errexit)})
            (command.Simple
              words: [{(DQ ($ Id.VSub_At '$@'))}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:75)
                  fd: -1
                  arg_word: {(_tmp/shebang.txt)}
                )
              ]
            )
            (C {(local)} {(Id.Lit_VarLike 'expected_status=') ($ Id.VSub_QMark '$?')})
            (command.Simple
              words: [{($ Id.VSub_DollarName '$OSH')} {(DQ ($ Id.VSub_At '$@'))}]
              redirects: [
                (redir.Redir
                  op: (Token id:Id.Redir_Great val:'>' span_id:92)
                  fd: -1
                  arg_word: {(_tmp/osh.txt)}
                )
              ]
            )
            (C {(local)} {(Id.Lit_VarLike 'osh_status=') ($ Id.VSub_QMark '$?')})
            (C {(Id.KW_Set set)} {(-o)} {(errexit)})
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (command.Pipeline
                          children: [(C {(diff)} {(-u)} {(_tmp/shebang.txt)} {(_tmp/osh.txt)})]
                          negated: T
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:122)
                    )
                  ]
                  action: [
                    (C {(echo)} {(FAIL)})
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:132)
                      arg_word: {(1)}
                    )
                  ]
                  spids: [111 124]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(test)} {($ Id.VSub_DollarName '$expected_status')} 
                          {(Id.KW_Bang '!') (Id.Lit_Equals '=')} {($ Id.VSub_DollarName '$osh_status')}
                        )
                      terminator: (Token id:Id.Op_Semi val:';' span_id:151)
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ('FAIL: Got status ') ($ Id.VSub_DollarName '$osh_status') 
                          (' but expected ') ($ Id.VSub_DollarName '$expected_status')
                        )
                      }
                    )
                    (command.ControlFlow
                      token: (Token id:Id.ControlFlow_Exit val:exit span_id:166)
                      arg_word: {(1)}
                    )
                  ]
                  spids: [141 153]
                )
              ]
            )
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Return val:return span_id:175)
              arg_word: {(0)}
            )
          ]
        )
    )
    (command.ShFunction
      name: version-text
      body: (command.BraceGroup children:[(C {(_compare)} {(test/spec.sh)} {(version-text)})])
    )
    (command.ShFunction
      name: count
      body: 
        (command.BraceGroup
          children: [
            (C {(_compare)} {(scripts/count.sh)} {(all)})
            (C {(_compare)} {(scripts/count.sh)} {(parser)})
            (C {(_compare)} {(scripts/count.sh)} {(parser-port)})
            (C {(_compare)} {(scripts/count.sh)} {(runtime)})
          ]
        )
    )
    (command.ShFunction
      name: one-spec-test
      body: (command.BraceGroup children:[(C {(_compare)} {(test/spec.sh)} {(builtins-special)})])
    )
    (command.ShFunction
      name: html-summary
      body: (command.BraceGroup children:[(C {(_compare)} {(test/spec-runner.sh)} {(html-summary)})])
    )
    (command.ShFunction
      name: gen-module-init
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} 
              {(Id.Lit_VarLike 'modules=') 
                (SQ (Token id:Id.Lit_Chars val:'time datetime' span_id:296))
              }
            )
            (C {(_compare)} {(build/actions.sh)} {(gen-module-init)} {($ Id.VSub_DollarName '$modules')})
          ]
        )
    )
    (command.ShFunction
      name: wild
      body: 
        (command.BraceGroup
          children: [
            (C {(_compare)} {(test/wild.sh)} {(all)} 
              {(SQ (Token id:Id.Lit_Chars val:'^distro/usr-bin' span_id:325))}
            )
          ]
        )
    )
    (command.ShFunction
      name: startup-benchmark
      body: 
        (command.BraceGroup
          children: [(C {(_compare)} {(benchmarks/startup.sh)} {(compare-strace)})]
        )
    )
    (command.ShFunction
      name: configure
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(./configure)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:371)
            )
          ]
        )
    )
    (command.ShFunction
      name: nix
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/nix.sh)} {(isElfSimpleWithStdin)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:386)
            )
          ]
        )
    )
    (command.ShFunction
      name: and-or
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/and-or.sh)} {(test-simple)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:401)
            )
          ]
        )
    )
    (command.ShFunction
      name: comments
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/comments.sh)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:415)
            )
          ]
        )
    )
    (command.ShFunction
      name: readonly_
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/readonly.sh)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:428)
            )
          ]
        )
    )
    (command.ShFunction
      name: export
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/export.sh)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:441)
            )
          ]
        )
    )
    (command.ShFunction
      name: glob
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/glob.sh)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:454)
            )
          ]
        )
    )
    (command.ShFunction
      name: no-op
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(scripts/count.sh)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:467)
            )
          ]
        )
    )
    (command.ShFunction
      name: complex-here-docs
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/complex-here-docs.sh)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:480)
            )
          ]
        )
    )
    (command.ShFunction
      name: strip-op-char-class
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/strip-op-char-class.sh)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:494)
            )
          ]
        )
    )
    (command.ShFunction
      name: echo-e
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/echo-e.sh)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:511)
            )
          ]
        )
    )
    (command.ShFunction
      name: dollar-sq
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/dollar-sq.sh)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:524)
            )
          ]
        )
    )
    (command.ShFunction
      name: word-eval
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/word-eval.sh)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:537)
            )
          ]
        )
    )
    (command.ShFunction
      name: abuild
      body: 
        (command.BraceGroup
          children: [(C {(_compare)} {(gold/abuild.sh)} {(is_function)} {(is_function)})]
        )
    )
    (command.ShFunction
      name: declare
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/declare.sh)} {(demo)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:574)
            )
          ]
        )
    )
    (command.ShFunction
      name: scope
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/scope.sh)})
              terminator: (Token id:Id.Op_Semi val:';' span_id:591)
            )
          ]
        )
    )
    (C {(readonly)} {(-a)} 
      {(Id.Lit_VarLike 'PASSING=') 
        (sh_array_literal
          left: (Token id:Id.Op_LParen val:'(' span_id:602)
          words: [
            {(configure)}
            {(nix)}
            {(and-or)}
            {(comments)}
            {(readonly_)}
            {(export)}
            {(glob)}
            {(no-op)}
            {(complex-here-docs)}
            {(echo-e)}
            {(dollar-sq)}
            {(word-eval)}
            {(strip-op-char-class)}
            {(abuild)}
            {(count)}
            {(one-spec-test)}
            {(html-summary)}
            {(gen-module-init)}
          ]
        )
      }
    )
    (command.ShFunction
      name: all-passing
      body: 
        (command.BraceGroup
          children: [
            (C {(run-all)} 
              {
                (DQ 
                  (braced_var_sub
                    token: (Token id:Id.VSub_Name val:PASSING span_id:707)
                    bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                  )
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: run-for-release
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Id.Lit_VarLike 'out_dir=') (_tmp/gold)})
            (C {(mkdir)} {(-p)} {($ Id.VSub_DollarName '$out_dir')})
            (command.Pipeline
              children: [(C {(all-passing)}) (C {(tee)} {($ Id.VSub_DollarName '$out_dir') (/log.txt)})]
              negated: F
            )
            (C {(echo)} {(DQ ('Wrote ') ($ Id.VSub_DollarName '$out_dir') (/log.txt))})
          ]
        )
    )
    (C {(DQ ($ Id.VSub_At '$@'))})
  ]
)