(command.CommandList
  children: [
    (C {(KW_Set set)} {(-o)} {(nounset)})
    (C {(KW_Set set)} {(-o)} {(pipefail)})
    (C {(KW_Set set)} {(-o)} {(errexit)})
    (C {(source)} {(test/common.sh)})
    (command.ShFunction
      name: _compare
      body: 
        (command.BraceGroup
          children: [
            (C {(KW_Set set)} {(Lit_Other '+') (o)} {(errexit)})
            (command.Simple
              words: [{(DQ ($ VSub_At '$@'))}]
              redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(_tmp/shebang.txt)})]
            )
            (C {(local)} {(Lit_VarLike 'expected_status=') ($ VSub_QMark '$?')})
            (command.Simple
              words: [{($ VSub_DollarName '$OSH')} {(DQ ($ VSub_At '$@'))}]
              redirects: [(redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(_tmp/osh.txt)})]
            )
            (C {(local)} {(Lit_VarLike 'osh_status=') ($ VSub_QMark '$?')})
            (C {(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: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} {(FAIL)})
                    (command.ControlFlow
                      token: <ControlFlow_Exit exit>
                      arg_word: {(1)}
                    )
                  ]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: [
                    (command.Sentence
                      child: 
                        (C {(test)} {($ VSub_DollarName '$expected_status')} 
                          {(KW_Bang '!') (Lit_Equals '=')} {($ VSub_DollarName '$osh_status')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(echo)} 
                      {
                        (DQ ('FAIL: Got status ') ($ VSub_DollarName '$osh_status') (' but expected ') 
                          ($ VSub_DollarName '$expected_status')
                        )
                      }
                    )
                    (command.ControlFlow
                      token: <ControlFlow_Exit exit>
                      arg_word: {(1)}
                    )
                  ]
                )
              ]
            )
            (command.ControlFlow token:<ControlFlow_Return return> 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)} {(Lit_VarLike 'modules=') (SQ <'time datetime'>)})
            (C {(_compare)} {(build/actions.sh)} {(gen-module-init)} {($ VSub_DollarName '$modules')})
          ]
        )
    )
    (command.ShFunction
      name: wild
      body: 
        (command.BraceGroup
          children: [(C {(_compare)} {(test/wild.sh)} {(all)} {(SQ <'^distro/usr-bin'>)})]
        )
    )
    (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: <Op_Semi ';'>
            )
          ]
        )
    )
    (command.ShFunction
      name: nix
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/nix.sh)} {(isElfSimpleWithStdin)})
              terminator: <Op_Semi ';'>
            )
          ]
        )
    )
    (command.ShFunction
      name: and-or
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/and-or.sh)} {(test-simple)})
              terminator: <Op_Semi ';'>
            )
          ]
        )
    )
    (command.ShFunction
      name: comments
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/comments.sh)})
              terminator: <Op_Semi ';'>
            )
          ]
        )
    )
    (command.ShFunction
      name: readonly_
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/readonly.sh)})
              terminator: <Op_Semi ';'>
            )
          ]
        )
    )
    (command.ShFunction
      name: export
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/export.sh)})
              terminator: <Op_Semi ';'>
            )
          ]
        )
    )
    (command.ShFunction
      name: glob
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/glob.sh)})
              terminator: <Op_Semi ';'>
            )
          ]
        )
    )
    (command.ShFunction
      name: no-op
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(scripts/count.sh)})
              terminator: <Op_Semi ';'>
            )
          ]
        )
    )
    (command.ShFunction
      name: complex-here-docs
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/complex-here-docs.sh)})
              terminator: <Op_Semi ';'>
            )
          ]
        )
    )
    (command.ShFunction
      name: strip-op-char-class
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/strip-op-char-class.sh)})
              terminator: <Op_Semi ';'>
            )
          ]
        )
    )
    (command.ShFunction
      name: echo-e
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/echo-e.sh)})
              terminator: <Op_Semi ';'>
            )
          ]
        )
    )
    (command.ShFunction
      name: dollar-sq
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/dollar-sq.sh)})
              terminator: <Op_Semi ';'>
            )
          ]
        )
    )
    (command.ShFunction
      name: word-eval
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/word-eval.sh)})
              terminator: <Op_Semi ';'>
            )
          ]
        )
    )
    (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: <Op_Semi ';'>
            )
          ]
        )
    )
    (command.ShFunction
      name: scope
      body: 
        (command.BraceGroup
          children: [
            (command.Sentence
              child: (C {(_compare)} {(gold/scope.sh)})
              terminator: <Op_Semi ';'>
            )
          ]
        )
    )
    (C {(readonly)} {(-a)} 
      {(Lit_VarLike 'PASSING=') 
        (sh_array_literal
          left: <Op_LParen '('>
          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: <VSub_Name PASSING>
                    bracket_op: (bracket_op.WholeArray op_id:Lit_At)
                  )
                )
              }
            )
          ]
        )
    )
    (command.ShFunction
      name: run-for-release
      body: 
        (command.BraceGroup
          children: [
            (C {(local)} {(Lit_VarLike 'out_dir=') (_tmp/gold)})
            (C {(mkdir)} {(-p)} {($ VSub_DollarName '$out_dir')})
            (command.Pipeline
              children: [(C {(all-passing)}) (C {(tee)} {($ VSub_DollarName '$out_dir') (/log.txt)})]
              negated: F
            )
            (C {(echo)} {(DQ ('Wrote ') ($ VSub_DollarName '$out_dir') (/log.txt))})
          ]
        )
    )
    (C {(DQ ($ VSub_At '$@'))})
  ]
)